Làm cách nào để thêm người dùng hiện tại vào một nhóm hiện có?


669

Tôi muốn thêm người dùng Apache ( www-data) vào audionhóm. Tôi đã đọc trang người đàn ông cho useradd, nhưng tôi không gặp may mắn. Tôi đang chạy xubfox 11.10. Đây là những gì tôi đang làm:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

Nếu tôi bỏ -Gtùy chọn, bash, in thông tin trợ giúp cho useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

Tôi không rõ ràng từ trang người đàn ông nên sử dụng tùy chọn nào để thực hiện công việc này.

Câu trả lời:


1040

Các useraddlệnh sẽ cố gắng thêm một người dùng mới. Vì người dùng của bạn đã tồn tại nên đây không phải là điều bạn muốn.

Thay vào đó: Để sửa đổi người dùng hiện tại, như thêm người dùng đó vào một nhóm mới, hãy sử dụng usermodlệnh.

Thử đi:

sudo usermod -a -G groupName userName

Người dùng sẽ cần phải đăng xuất và đăng nhập lại để xem nhóm mới của họ được thêm vào.

  • Việc -achuyển đổi (chắp thêm) là cần thiết. Nếu không, người dùng sẽ bị xóa khỏi bất kỳ nhóm nào, không có trong danh sách.

  • Công -Gtắc có một danh sách (được phân tách bằng dấu phẩy) của các nhóm bổ sung để gán người dùng.


71
sudo usermod -a -G [group-name] [user-name]: Chỉ là một gợi ý cho những người chỉ lướt qua câu trả lời sau khi đọc tiêu đề
Chương trình

36
Tôi nghĩ rằng cách ưa thích bây giờ là sudo adduser user group. Nó là cú pháp đơn giản và sạch sẽ hơn. Xem phản hồi từ @Bai.
ctbrown

3
@wilhil :: man usermod" -a, --append - Thêm người dùng vào (các) nhóm bổ sung. Chỉ sử dụng với tùy chọn -G .; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Nếu người dùng hiện là thành viên của một nhóm không được liệt kê, người dùng sẽ bị xóa khỏi nhóm. Hành vi này có thể được thay đổi thông qua tùy chọn -a, bổ sung người dùng vào phần bổ sung hiện tại danh sách nhóm. "
Adam Michalik

18
Có cách nào để vượt qua phần "đăng xuất và quay lại" không? Một số loại lệnh nhóm cập nhật, có thể?
con-f-use

14
@ con-f-use, nếu bạn có thể chạy sudo login -f YOURUSERNAME, nó sẽ bắt đầu một phiên shell mới. Sử dụng idlệnh để xác minh rằng phiên mới nằm trong nhóm chính xác. Tuy nhiên, đây không phải là "toàn cầu" - nó không áp dụng cho các thiết bị đầu cuối đã mở. Vì vậy, thực sự, đăng xuất là lựa chọn tốt nhất, nếu có thể
Aaron McDaid

222

Thêm người dùng vào một nhóm:

sudo adduser user group

Xóa người dùng khỏi một nhóm:

sudo deluser user group

3
không chính xác những gì câu hỏi này được yêu cầu
Tejendra

11
Nhận xét của @ Tejendra dường như giả định rằng việc sử dụng useradd là mong muốn / bắt buộc để trả lời câu hỏi của OP; Có lẽ câu trả lời này chỉ là những từ còn thiếu để chỉ ra rằng adduser / deluser là một lựa chọn tốt hơn.
hiền nhân

12
Đối với tôi giao diện đơn giản hơn là tốt hơn, đó là lý do tại sao tôi thích giao diện này.
Betlista

4
Đây chính xác là câu hỏi đang được hỏi. @knocte, vâng, tôi nghĩ đó là cụ thể của Debian
Auspex

3
@Auspex Tôi có thể xác nhận rằng nó không hoạt động trên Red Hat.
Stibu

54

Sau khi thêm vào một người dùng hiện có:

usermod -a -G group user  

Bạn có thể cần phải đăng xuất và đăng nhập để có được quyền của nhóm /etc/group.


21
Vui lòng biến nó thành phần "cần đăng xuất và đăng nhập" đậm.
Jin Kwon

FYI: Tôi nghĩ rằng idlệnh sẽ cho biết bạn đã được thêm vào nhóm mà không cần phải thoát. id myuser
ficuscr

5
Đăng xuất và đăng nhập trở lại là bắt buộc đối với tôi trên Ubuntu 14.10.
A.Danischewski

26

Tôi thường sử dụng

sudo gpasswd -a myuser mygroup

3
usermod không có sẵn trên hệ thống của tôi ubfox 14.04. Điều này đã làm việc tuyệt vời!
Drew

Điều này cũng hoạt động rất tốt trên Debian Stretch, nơi usermodchưa được cài đặt.
Josh Habdas

8

Tôi đang đăng bài này như một câu trả lời vì tôi không đủ danh tiếng để bình luận. Như @ dpendolino đã đề cập, các tác động của lệnh này vẫn tồn tại:

sudo usermod -a -G groupName userName

... bạn cần đăng xuất / đăng nhập lại.

Tuy nhiên, nếu bạn cần một phím tắt để bắt đầu sử dụng thành viên nhóm mới của mình ngay lập tức (và bạn có các đặc quyền sudo chính xác ) Tôi đã tìm thấy giải pháp này:

$ sudo su -
# su [userName]
$ groups

Giải trình:

  • sudo su - sẽ cung cấp cho bạn một vỏ gốc
  • su [userName] trả bạn về một vỏ với người dùng của bạn
  • groupsKhi chạy bây giờ sẽ hiển thị nhóm bạn đã thêm bằng usermod -aGlệnh

Trong trường hợp của tôi, tôi đã cố gắng thêm nhóm 'docker' vào người dùng của mình

Trước:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Sau:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

5

Trên Ubuntu, vì đăng nhập như rootkhông được kích hoạt , người dùng trong sudonhóm có thể nâng cao đặc quyền cho các lệnh bị hạn chế nhất định. Bất kỳ lệnh bị hạn chế phải được chuẩn bị sudođể nâng cao đặc quyền.

sudo usermod -a -G group user

sẽ thêm người dùng hiện tại uservào một nhóm bổ sung có tên group. Nhóm chính của người dùng sẽ không thay đổi.


1
sudo usermod -a -G groupName userName

sẽ hoạt động tốt, nhưng tôi phải khởi động lại hoàn toàn, chỉ cần đăng xuất và đăng nhập lại không làm được việc ...

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.