Tên người dùng không có trong tập tin sudoers. Sự cố này sẽ được báo cáo


85

Tôi đang chạy Ubuntu 12.04 trên máy tính xách tay của mình bằng VMware Player. Tôi không chắc tại sao nhưng tôi có một tài khoản gọi là "Tài khoản người dùng" ngoài tài khoản mà tôi thường đăng nhập để sử dụng Ubuntu. Vâng, đó chỉ là một nhận xét phụ nhưng về cơ bản, tất cả những gì tôi đang cố gắng làm là cài đặt thư viện ncurses trên Ubuntu. Tôi đã thử cài đặt ncurses bằng các dòng lệnh sau:

sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-dev

Khi tôi thử cài đặt ncurses hai lần bằng các lệnh trên, tôi nhận được lời nhắc sau trong thiết bị đầu cuối:

[sudo] password for username

Khi tôi nhập mật khẩu, tôi nhận được thông báo sau:

username is not in the sudoers file. This incident will be reported.

Cho đến nay tôi đã thử kích hoạt tài khoản người dùng root ("Siêu người dùng") bằng cách làm theo các hướng dẫn tại liên kết này: https : //help.ub Ubuntu.com/community/RootSudo

Dưới đây là một số điều mà liên kết đề xuất để làm:

Cho phép người dùng khác chạy sudo. Nhập dòng sau vào dòng lệnh:

tên người dùng sudo sudo

Hoặc là

tên người dùng sudo sudo

đăng nhập như một người dùng khác. Nhập dòng sau vào dòng lệnh:

sudo -i -u tên người dùng

Kích hoạt tài khoản root. Nhập dòng sau vào dòng lệnh:

sudo -i

Hoặc là

sudo passwd root

Tôi đã thử tất cả các dòng lệnh trên và sau khi nhập từng lệnh tôi được nhắc nhập mật khẩu. Sau khi tôi nhập mật khẩu, tôi nhận được thông báo giống như khi tôi cố gắng cài đặt ncurses:

fsolano is not in the sudoers file. This incident will be reported.

Tôi không có bình luận nào quá trần trụi với tôi ở đây ... Câu hỏi. fsolano có phải là người dùng đầu tiên bạn thực hiện với bản cài đặt của Ubuntu không? thông thường nên có đặc quyền quản trị viên, nếu bạn thực hiện chức năng quản trị theo nghĩa đồ họa thì nó có hoạt động với bạn không? IE nếu bạn mở GUi để quản lý người dùng và thử làm điều gì đó thì adminy có hoạt động không? hoặc nói với bạn rằng bạn không root

Câu hỏi tương tự cũng được hỏi ở đây? superuser.com/questions/866582/ từ
shubham

Nếu bạn đã có người dùng root với mật khẩu được đặt, bạn có thể đăng nhập root bằng cách sử dụng suvà thêm urself vào nhóm sudo àdduser username sudokhác, bạn sẽ phải khởi động với cd / usb trực tiếp và chroot vào hệ thống đã cài đặt, mặc định nó sẽ đăng nhập vào root , đặt mật khẩu gốc cho các trường hợp tiếp theo passwdvà thêm chính bạn vào sudo từ đó và khởi động lại, bạn sẽ có tên người dùng của mình được thêm vào sudo và bạn cũng sẽ có mật khẩu gốc, trong trường hợp nếu sudo vẫn không hoạt động, bạn có thể xử lý nó ....
Giô-na

Câu trả lời:


57

Khi điều này xảy ra với tôi, tất cả những gì tôi phải làm để khắc phục nó là:

Bước 1. Mở cửa sổ terminal, CTRL+ ALT+ T trên hệ thống của tôi (Debian KDE sau khi thiết lập làm phím nóng)

Bước 2. Đã nhập root bằng lệnh su root

Bước 3. Nhập mật khẩu gốc

Bước 4. Nhập lệnh apt-get install sudo -yđể cài đặtsudo

Bước 5. Thêm người dùng vào tập tin sudoers bằng cách nhập adduser username, đặt tên người dùng của bạn thay chousername

Bước 6. Đặt quyền chính xác cho tệp sudoers bằng cách nhập chmod 0440 /etc/sudoers

Bước 7. Nhập exitvà nhấn Entercho đến khi bạn đóng cửa sổ thiết bị đầu cuối của bạn. Tắt hoàn toàn hệ thống của bạn và khởi động lại.

Bước 8. Mở một cửa sổ đầu cuối khác.

Bước 9. Hãy thử bất kỳ lệnh sudo nào để kiểm tra xem tên người dùng của bạn đã được thêm chính xác vào tệp sudoers chưa. Tôi đã sử dụng sudo echo "Hello World!". Nếu tên người dùng của bạn đã được thêm chính xác vào danh sách sudoers thì bạn sẽ nhận được Hello World!như là phản hồi cuối!


15
-1: cd -sẽ không vào thư mục chính mà đến thư mục khác gần đây nhất. sudo -sẽ không hỏi mật khẩu người dùng của bạn mà cho bạn mật khẩu root. Đừng không chỉnh sửa /etc/sudoersbằng tay sử dụng visudocho điều đó. Các hệ thống ubfox điển hình hoàn toàn không có mật khẩu root mà hoàn toàn dựa vào sudo.
michas

@michas Bạn không thể sử dụng visudo mà không có sudo trong Debian. vigiải pháp cũng không thể vì chỉ đọc. Gedit hoạt động trong trường hợp của tôi.
Léo Léopold Hertz

Trong debian 8, bạn có thể sử dụng vi mà không cần sudo là root. Để ghi vào tệp chỉ đọc, sử dụng: wq!
Oracle

Điều này cũng làm việc cho tôi, sự giúp đỡ tuyệt vời thực sự!
Arefe

Cảm ơn câu trả lời của bạn. Nhưng tôi thậm chí không thể chạysu -
Vishal

42

Theo liên kết để đặt lại mật khẩu quản trị viên của bạn [có vẻ như bạn đã đặt tên tài khoản người dùng quản trị viên của mình là 'người dùng' :)]

https://askubfox.com/questions/24006/how-do-i-reset-a-lost-admaster-password

Sau đó, đăng nhập với tư cách người dùng quản trị và thực hiện như sau.

sudo usermod -aG sudo,adm fsolano

Bây giờ bạn có thể đăng nhập với tên 'fsolano' và bạn sẽ có thể chạy lệnh sudo.


1
Xin lỗi tôi đã quên đề cập rằng tôi đã giải quyết vấn đề này từ rất lâu rồi. Đây là giải pháp cho vấn đề tôi gặp phải và có thể bất kỳ ai khác có thể có.
fsolano94

3
Tôi vẫn nhận được tin nhắn sau khi gõ này là tốt adduser NAME sudo. Tôi nghĩ rằng có m, ust là một cái gì đó khác. Tôi đang sử dụng Debian 7.8.
Tomáš Zato

Đây không phải là giải pháp đủ trong Debian 8.5. Đề xuất của ShrikantKhawale với ít bổ sung là chính xác ở đây.
Léo Léopold Hertz

3
@masi Thủ thuật trên không hoạt động trong Debian 8.5 (ít nhất là tại đây), nhưng chỉ sau khi bạn đăng xuất và đăng nhập lại.
jcoppens

@jcoppens cũng đúng, cũng hoạt động với Debian 8.6, chỉ sau khi đăng xuất và đăng nhập
hello_earth

13

/etc/sudoersDanh sách tập tin cấu hình , người được phép chạy lệnh nào với người dùng nào.

Trên Ubuntu, tập tin này chứa một dòng cho phép tất cả người dùng của sudonhóm chạy các lệnh như rootngười dùng.

Để kiểm tra những người dùng nào trong nhóm sudo, bạn có thể nhập getent group sudo. Bạn cũng có thể kiểm tra các nhóm người dùng hiện tại của mình bằng cách nhập id.

Có lẽ người dùng hiện tại của bạn không thuộc nhóm sudo và do đó không được phép sử dụng sudolệnh.

Đăng nhập như một số người dùng kích hoạt sudo nếu bạn muốn chạy sudo.


Vâng, đó chỉ là điều. Tôi sẽ đăng nhập với tư cách quản trị viên hoặc người dùng root nhưng tôi quên mật khẩu khi lần đầu tiên cài đặt Ubuntu trên máy.
fsolano94

sudo: x: 27: user (tôi không chắc x hay 27 là gì nhưng tôi khẳng định rằng người dùng đó là tài khoản người dùng mà tôi không biết / nhớ mật khẩu)
fsolano94

@ fsolano94, khởi động vào một số dạng môi trường cứu hộ (trực tiếp hoặc khởi động từ phương tiện cài đặt) và thay đổi mật khẩu gốc. Hoặc chỉnh sửa /etc/sudoerstập tin (tốt nhất là sử dụng visudo(1)).
vonbrand

6

Tôi gặp vấn đề tương tự với Kali bất cứ lúc nào tôi muốn thêm newuser vào nhóm sudo bằng cách gõ lệnh sau:

usermod -aG sudo newuser

và chỉnh sửa phần bên phải trong /etc/sudoers. Tất cả tào lao!

Cách khắc phục của tôi cho điều vô nghĩa này là sao chép dòng cho root bên dưới nó và thay đổi root thành newuser:

# User privilege specification
root    ALL=(ALL:ALL) ALL

newuser ALL=(ALL:ALL) ALL

Tôi nhớ phương pháp thông thường với usermod được sử dụng để làm việc nhưng nó có phải là một lỗi trong vài năm qua không? nó thực sự vô nghĩa. Dù sao đi nữa, nếu ai đó có câu trả lời tốt hơn, hãy chia sẻ nó :)


Vấn đề tương tự trên debian thường xuyên (9); chỉnh sửa thủ công /etc/sudoersđã thực hiện thủ thuật
Zoe chuyển giới vào

4

Làm điều này để thiết lập lại mật khẩu cho người dùng quản trị của bạn.

https://help.ubfox.com/community/LostPassword

Sau đó, bạn sẽ có thể cấp quyền sudo cho người dùng thông thường của bạn với

sudo adduser username sudo

như bạn đã đăng trong câu hỏi ban đầu của bạn.

Nhân tiện: tại sao bạn cài đặt ncurses? Bạn đang biên dịch một cái gì đó?


Tôi đang lập trình Tetris bằng C và đang sử dụng các lời nguyền như một nền tảng chéo cho giao diện người dùng đồ họa. Và yup tôi sẽ theo liên kết
fsolano94

1

Bạn cũng có thể thêm người dùng vào nhóm sudo cho tất cả quyền truy cập bằng cách:

  1. Chuyển đến người dùng thư mục gốc của bạn bằng cách sudo su(ubfox 16.04 LTS)
  2. Sau đó nhập mật khẩu người dùng hiện tại của bạn
  3. nhập sudo adduser <username> sudotên người dùng là tên của người dùng bạn muốn thêm vào danh sách sudoers
  4. Để kiểm tra xem người dùng yêu cầu của bạn có được thêm loại thành getent group sudocông hay không sẽ hiển thị danh sách người dùng sudo

Xin chào, chào mừng bạn đến với Unix SE và chúc mừng cho câu trả lời đầu tiên tốt. Tôi đã sửa định dạng của bạn một chút, bạn có thể tìm hiểu thêm về điều đó bằng cách nhấp vào "trợ giúp cú pháp" khi viết bài.
GnP

1
Đây không phải là một câu trả lời tốt. (1) Câu hỏi nêu rõ rằng sudonó không hoạt động cho người dùng. (2) Câu trả lời sudo adduser <username> sudođã được đưa ra.
G-Man

0

Nếu bạn có bất kỳ người dùng root / admin nào khác ngoài 'fsolano', thì đó không phải là trong tập tin sudoers. Sự cố này sẽ được báo cáo:

check sudo enabled users (groups)
# getent group sudo 
sudo:x:27:xyz,abc 

vì người dùng 'fsolano' được thay đổi thành người dùng chuẩn và nếu bạn có bất kỳ người dùng đặc quyền gốc nào khác, hãy đăng nhập qua thư mục gốc và thay đổi 'fsolano' thành quản trị viên bằng "Tài khoản người dùng".


-1

Cách đơn giản nhất để thêm người dùng vào sudoerstệp là chạy lệnh dưới đây khi người dùng có quyền thực thi gpasswd:

sudo gpasswd -a username sudo

Điều này không hoạt động trong Debian 8.5.
Léo Léopold Hertz

-1

1.Bạn có thể kiểm tra xem bạn có phải là một phần của nhóm sudo hay không bằng cách sử dụng lệnh bên dưới

groups username ===> it will lists the groups for which he belongs too

Chúng tôi cũng có thể kiểm tra theo kịch bản bên dưới

h=`groups username| awk -F ":" '{print $2}'| grep -io 'sudo'`
if [[ $h == "sudo" ]]
then
echo "user praveen is part of group sudo"
else
echo "Need to add user to group sudo"
echo "Swictch to root and add user"
fi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.