Làm thế nào để thêm dùng hiện một nhóm hiện tại?

Tôi muốn thêm người Apache dùng (www-data) đến audio nhóm. Tôi đã đọc các người đàn ông trang cho useradd nhưng tôi không có bất kỳ may mắn. Tôi đang chạy xubuntu 11.10. Đây là những gì tôi đang làm:

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

Nếu tôi rời khỏi -G lựa chọn, bash, bản in những thông tin giúp đỡ cho useradd:

$ sudo useradd  audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR       base directory for the home directory...

Nó không rõ ràng với tôi, người đàn ông, lựa chọn gì tôi nên sử dụng để làm việc này.

Những useradd chỉ huy sẽ cố gắng thêm một người mới. Kể từ khi dùng đã tồn tại đây là không phải những gì anh muốn.

Thay vì: Để sửa đổi một hiện có người sử dụng, như thêm người dùng đó vào một nhóm mới, sử dụng những usermod lệnh.

Thử này:

sudo usermod -a -G groupName userName
  • Những -a (nối) chuyển đổi là điều cần thiết. Nếu không, các người sẽ được lấy ra từ bất kỳ nhóm, không có trong danh sách.

  • Những -G chuyển mất một (dấu phẩy) danh sách của nhóm bổ sung để gán người dùng.

Nói chung (cho GUI, hoặc đã chạy quá trình etc.), các người dùng sẽ cần phải đăng và đăng nhập trở lại để xem mới của họ đã thêm. Cho vỏ hiện tại phiên bạn có thể sử dụng newgrp:

newgrp groupName
  • newgrp thêm nhóm các vỏ hiện tại phiên.

Thêm một dùng một nhóm:

sudo adduser user group

Loại bỏ một người dùng từ một nhóm:

sudo deluser user group

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

usermod -a -G group user  

Anh có thể cần đến đăng xuất và đăng nhập để có được những nhóm quyền từ /etc/group.

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

sudo gpasswd -a myuser mygroup

Tôi đăng này như một câu trả lời, bởi vì tôi không có đủ uy tín để thảo luận. Như @dpendolino của đề cập, cho những ảnh hưởng của lệnh này để tồn tại:

sudo usermod -a -G groupName userName

...bạn cần để thoát/đăng nhập một lần nữa.

Tuy nhiên, nếu cậu cần một tắt để bắt đầu sử dụng mới của thành viên nhóm ngay lập tức (và anh đã đúng ngôi đặc quyền) tôi đã tìm thấy công việc này-xung quanh:

$ sudo su -# su [userName]$ groups

Lời giải thích:

  • sudo su - sẽ cung cấp cho bạn một vỏ gốc
  • su [userName] một vỏ với bạn thân
  • groups khi chạy bây giờ sẽ cho nhóm các bạn thêm vào với usermod -aG lệnh

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

Trước khi:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Sau:

$ groupsuserName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker
sudo usermod -a -G groupName userName

sẽ chỉ làm việc tốt, nhưng tôi đã phải khởi động lại hoàn toàn, chỉ cần đăng và ghi trong một lần nữa không làm việc...

Trên ổ, kể từ khi đăng nhập như root không được kích hoạt người trong sudo nhóm có thể nâng cao quyền hạn chế nhất lệnh. Bất kỳ hạn chế lệnh phải được đằng trước với sudo để nâng cao đặc ân.

sudo usermod -a -G nhóm dùng

sẽ thêm người dùng hiện có user để bổ sung nhóm có tên là group. Các người dùng chính của nhóm sẽ vẫn không thay đổi.

Để permanantely thêm một dùng một nhóm, chạy lệnh này:

sudo usermod -a -G <groupname> <username>

Sau đó thoát ra và ghi trong một lần nữa (hoặc khởi động lại nếu cần thiết).

Lời giải thích:

Những usermod lệnh sẽ thay đổi /etc/group tập tin vào danh sách những quy định tên trong dòng có liên quan đến nhóm đó. Nếu bạn chạy grep <groupname> /etc/group bạn , bạn nên gặp tên trong đầu ra.

Công nhận, mỗi trình này được giao cho một người và nhóm, và bất kỳ đứa trẻ quá trình thừa hưởng dùng, và nhóm của các phụ huynh, trình. Vì vậy, để thay đổi có hiệu ứng và propogate, bạn cần phải đăng và ghi trong một lần nữa (ở thời điểm đó /etc/group là đọc và sử dụng). Trên Quốc, tôi đã tìm thấy một khởi động lại là cần thiết.

Nếu bạn chạy lệnh groups bạn có thể xem nếu quá trình hiện tại đã dự kiến nhóm hay không.