Làm cách nào tôi có thể thêm người dùng mới dưới dạng sudoer bằng dòng lệnh?


821

Sau khi tôi thêm người dùng bằng cách sử dụng adduser, tôi không thể thấy nó qua Hệ thống> Quản trị> Người dùng và Nhóm trừ khi tôi đăng xuất và sau đó đăng nhập lại. Điều đó có bình thường không?

Ngoài ra, tôi có thể đặt người dùng mới được thêm vào dưới dạng sudoer hay tôi phải thay đổi điều đó chỉ sau khi thêm nó? Làm thế nào tôi có thể làm điều đó thông qua vỏ?

Cuối cùng, tôi có thể xóa người dùng ban đầu được tạo khi cài đặt Ubuntu lần đầu không, hay người dùng này bằng cách nào đó 'đặc biệt'?

Câu trả lời:


1025

Chỉ cần thêm người dùng vào sudonhóm :

sudo adduser <username> sudo

Thay đổi sẽ có hiệu lực vào lần tiếp theo người dùng đăng nhập.

Điều này hoạt động vì /etc/sudoersđược định cấu hình trước để cấp quyền cho tất cả các thành viên của nhóm này (Bạn không cần phải thực hiện bất kỳ thay đổi nào đối với điều này):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Miễn là bạn có quyền truy cập vào một người dùng trong cùng nhóm với người dùng "gốc" của mình, bạn có thể xóa người dùng cũ.


Trên thực tế, cũng có những nhóm khác mà người dùng mới của bạn nên là thành viên của. Nếu bạn đặt loại Tài khoản của người dùng thành Quản trị viên trong Cài đặt người dùng, nó sẽ được đặt trong ít nhất tất cả các nhóm sau:

adm sudo lpadmin sambashare

Vì cấu hình hệ thống của bạn có thể thay đổi, tôi khuyên bạn nên xem kết quả đầu ra groups <username>để xem những nhóm nào thường được sử dụng.


1
@Dziamid Tôi không chắc sudonhóm này dùng để làm gì. Hãy cùng tìm hiểu.
ændrük

7
Xin lưu ý rằng adminnhóm không tồn tại trong 12.04 LTS.
Ryan

18
Câu hỏi là về một người dùng hiện có, nhưng nếu nó dành cho người dùng mới thì "sudo adduser <username> sudo" sẽ phải được đi trước bởi "sudo adduser <username>" . Nếu không, người ta nhận được thông báo lỗi "Người dùng <tên người dùng> không tồn tại".
Peter Mortensen

9
điều này đã không làm việc cho tôi. vẫn không thể sử dụng sudo.
chovy

10
Phải đăng nhập lại để nó hoạt động.
PeterM

193

tôi đã làm

sudo usermod -a -G sudo <username>

như đề nghị ở đây .


28
nhóm sudo không tồn tại
Aaron Esau

Giải pháp làm việc duy nhất ở đây. Ubuntu 16
Makan Tayebi

5
Đối với người dùng hiện tại, đây là giải pháp chính xác. Nó nên được đánh dấu là câu trả lời.
Yokai

3
Đừng quên -acờ hoặc bạn sẽ xóa người dùng khỏi tất cả các nhóm ngoại trừsudo
RousseauAlexandre

@RousseauAlexandre hoàn toàn! quan trọng nhất, đặc biệt là nếu bạn đang cố gắng thêm mình vào một nhóm không sudo và bạn là người duy nhất trên máy có đặc quyền sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart

79

Mở tệp sudoers: sudo visudosẽ mở /etc/sudoerstệp trong trình chỉnh sửa được xác định trong $EDITOR(có thể là GNU nano - đặt biến nếu đó không phải là điều bạn muốn, ví dụ: export EDITOR="nano"thử sudo visudolại).

Thêm dòng dưới đây vào cuối tập tin.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Sau đó thực hiện WriteOut với Ctrl+ O. Trình chỉnh sửa sẽ yêu cầu bạn nhập tên tệp. Mặc định sẽ là một tệp tạm thời được sử dụng visudođể kiểm tra lỗi cú pháp trước khi lưu vào sudoerstệp thực tế . Nhấn Enterđể chấp nhận nó. Thoát khỏi trình chỉnh sửa nano với Ctrl+ X.

Làm xong!


9
Sẽ không thể chấp nhận được việc thêm một người dùng vào tệp sudoers một cách rõ ràng thay vì chỉ thêm người dùng đó vào nhóm thích hợp sudo.
Kzqai

3
với sudo visudo, bạn có thể xuất ra /etc/sudoers.tmp, khi rời khỏi trình chỉnh sửa, nó sẽ tự ghi đè / etc / sudoers
Climbatize

1
và visudo sẽ xác minh cú pháp để đảm bảo không có lỗi
mchid

lỗi cú pháp nếu sử dụng này.
jheriko

2
Các giải pháp khác hoạt động tốt cho các HĐH có sudonhóm tích hợp, nhưng đối với hệ thống không thường xuyên không có sudonhóm chuyên dụng , giải pháp này hoạt động. Lời khuyên duy nhất tôi có là bạn có thể muốn tránh sudotự đưa mình vào quy trình, vì nó có thể chưa được thiết lập! Dễ dàng giải quyết bằng cách làm su -và sau đó đơn giản visudio. Điều này hoạt động trên Gentoo.
tresf

30

Một điều tôi phải nói thêm rằng tôi chắc chắn rất nhiều người không hiểu:

Khi bạn đã thực hiện xong adduser "username", bạn vẫn có thể quay lại và thực hiện adduser "username" sudo, và sau đó nó sẽ thêm người dùng đó vào nhóm đúng cách.

Nó thực sự sẽ không hoạt động lần đầu tiên như thế nào sudo adduser username sudo. Nó sẽ cung cấp cho bạn một lỗi. Tóm lại, điều đó có nghĩa là trước tiên bạn phải tạo tài khoản người dùng trước khi bạn có thể thêm chúng vào một nhóm.


11

Tất cả các thành viên của nhóm admin, mặc định trong Ubuntu được phép sử dụng sudo, vì vậy cách dễ nhất là thêm tài khoản người dùng vào adminnhóm.

Nếu bạn không muốn cấp cho tài khoản người dùng quyền truy cập root đầy đủ, bạn cần chỉnh sửa tệp / etc / sudoer bằng visudo (đảm bảo rằng bạn không có bất kỳ lỗi cú pháp nào trong tệp và mất khả năng sudo hoàn toàn) theo cách rằng bạn chỉ định lệnh nào mà người dùng này (hoặc một nhóm mới) có thể thực thi với quyền root.

Các nhãn hiệu sudoer sẽ cung cấp cho bạn thêm thông tin về việc này. Bạn có thể chỉ định những lệnh nào được cho phép bởi một người dùng / nhóm cụ thể được thực thi dưới dạng root.


1
Tôi nghĩ đó là những gì wheelnhóm đã làm?
Marco Ceppi

@Marco Tôi không quen với điều đó. Bạn có thể giải thích thêm một chút?
ændrük

@MarcoCeppi, nhóm bánh xe đã được sử dụng trên một số hệ thống để hạn chế những gì người dùng có thể sử dụng su. Ubuntu sử dụng sudovà nhóm quản trị viên.
psusi


10

Đoạn mã sau cấp quyền truy cập root vào tên người dùng mà không cần đăng nhập rõ ràng bằng root.

Hãy chắc chắn rằng người dùng được thêm vào nhóm sudo trước. Đã thử nghiệm trên Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"

cái này có hoạt động trên Ubuntu không?
jowan sebastian

1
Có kiểm tra trên Ubuntu 16.04
Sandeep

3
tại sao không trong một dòng:useradd -m username --groups sudo
Aidan Melen
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.