Làm cách nào để thay đổi nhóm mặc định của người dùng trong Linux?


41

Là người mới đối với quản trị Linux, tôi hơi bối rối về các lệnh sau:

useradd
usermod
groupadd
groupmod

Tôi vừa đọc xong cuốn sách quản trị người dùng trong cẩm nang của Quản trị viên Linux / Unix, nhưng một số điều vẫn còn hơi mơ hồ.

Về cơ bản useradddường như đủ thẳng về phía trước:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Tôi có thể thêm "David Hilbert" với tên người dùng hilbert, đặt thư mục, shell và nhóm mặc định của anh ấy. Và tôi nghĩ đó -glà nhóm chính / mặc định -Gcủa anh ấy và là nhóm khác của anh ấy.

Vì vậy, đây là những câu hỏi tiếp theo của tôi:

  1. Lệnh này vẫn hoạt động nếu các nhóm facultyfamouskhông tồn tại? Nó sẽ chỉ tạo ra chúng?
  2. Nếu không, tôi sử dụng lệnh nào để tạo nhóm mới?
  3. Nếu tôi xóa người dùng hilbertvà không có người dùng nào khác trong các nhóm đó, liệu họ có còn tồn tại không? Tôi có nên loại bỏ chúng?
  4. Sau khi tôi chạy useraddlệnh ở trên, làm cách nào để loại bỏ David khỏi famousnhóm và gán lại nhóm chính của nó cho nhóm hilbertchưa tồn tại?

Câu trả lời:


27

Các usermodlệnh sẽ cho phép bạn thay đổi nhóm chính của người dùng, nhóm bổ sung hoặc một số thuộc tính khác. Công -gtắc điều khiển nhóm chính.

Đối với các câu hỏi khác của bạn ...

  1. Nếu bạn chỉ định một nhóm, groupnamekhông tồn tại trong useraddgiai đoạn đó, bạn sẽ gặp lỗi - useradd: tên nhóm không xác định

  2. Các groupaddlệnh tạo nhóm mới.

  3. Nhóm sẽ vẫn còn nếu bạn xóa tất cả người dùng trong đó. Bạn không nhất thiết phải xóa nhóm trống.

  4. Tạo hilbertnhóm thông qua groupadd hilbert. Sau đó di chuyển nhóm chính của David bằng cách sử dụng usermod -g hilbert hilbert. (Xin lưu ý rằng tên đầu tiên hilbertlà tên nhóm và thứ hai hilbertlà tên người dùng. Điều này rất quan trọng trong trường hợp bạn chuyển người dùng sang một nhóm có tên khác)

Bạn có thể đang làm phức tạp mọi thứ một chút ở đây, mặc dù. Trong nhiều bản phân phối Linux, một đơn giản useradd hilbertsẽ tạo ra người dùng hilbertvà một nhóm cùng tên với tên chính. Tôi sẽ thêm các nhóm bổ sung được chỉ định cùng nhau bằng cách sử dụng -Gchuyển đổi.


1
cảm ơn. nếu tôi làm điều đó usermod -g hilbert hilbertsẽ loại bỏ các nhóm khác của hilbert? Nếu vậy, làm thế nào tôi giữ các nhóm khác? Nếu không, wow tôi sẽ loại anh ta khỏi các nhóm khác của mình?
cwd

Kiểm tra nó ra và xem cho môi trường cụ thể của bạn.
ewwhite

Câu trả lời của @ MIck nhận được sự ủng hộ của tôi bởi vì anh ấy chỉ ra rằng bạn cần sử dụng -a với -G (nếu không, bất kỳ nhóm nào bạn rời khỏi sẽ bị xóa )
Jeff

9

Bạn cần đọc phần man usermodgiải thích những gì xảy ra với các tùy chọn khác nhau:

usermod -g hilder hilder

sẽ thay thế nhóm đăng nhập của bạn từ 'giảng viên' thành 'hilder', miễn là nhóm 'hilder' tồn tại. Nếu nó không tồn tại thì trước tiên bạn cần tạo nó với groupadd.

Khi bạn sử dụng -Gtùy chọn, bạn cũng nên sử dụng -atùy chọn để nối các nhóm mới vào danh sách các nhóm bổ sung hiện tại mà người dùng 'hilder' thuộc về. Nếu không có -atùy chọn, bạn sẽ thay thế các nhóm bổ sung hiện tại bằng một nhóm mới. Do đó sử dụng một cách thận trọng.


5

Để thay đổi nhóm chính của người dùng trong Linux:

  • usermod -g new_group user_name
  • chấm dứt tất cả các phiên hoạt động của user_name

Để kiểm tra các thay đổi của bạn chạy idvà xem giá trị củagid=

Nếu lệnh chạy không có lỗi nhưng gid không thay đổi, bạn đã bỏ qua phần in đậm của bước 2.


1

câu trả lời số 1 là tốt, bạn vẫn có thể chọn đưa ra những điều sau đây để thêm một nhóm mới:

# nano /etc/group

Nhược điểm của chỉnh sửa /etc/grouptrực tiếp là bạn sẽ phải đưa ra một GID không sử dụng (số ID nhóm).

Sau đây sẽ cho phép bạn thay đổi nhóm chính của người dùng. # nano /etc/passwd

Bạn xác định vị trí dòng của người dùng và thay đổi GID (số nhóm, tra cứu /etc/group), hãy nhớ rằng cú pháp như sau:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Không có nhược điểm tôi có thể nghĩ đến phương pháp này (với điều kiện bạn biết GID), đó là những gì tôi thường xuyên sử dụng cho người dùng địa phương, chủ yếu là bởi vì tôi sử dụng nhiều hệ thống UNIX khác nhau với khác nhau usermod, adduseruseraddtùy chọn lệnh.

Đó là một chút thủ công, tuy nhiên công việc. Lưu ý rằng bạn có thể sử dụng viiso nanođể chỉnh sửa các tệp, nếu bạn biết vi.


0

Để thay đổi vĩnh viễn nhóm chính của người dùng thực thi:

  • lệnh tên người dùng usermod -g tên nhóm

Hoặc bạn có thể sử dụng newgrpcho môi trường nhỏ và tình huống tạm thời.

Tạo một người dùng mới bob và một nhóm mới dodo.

useradd bob

Vì vậy, trong RedHat / Centos, chúng ta có UID = (ID_number) bob; Theo mặc định, GID = (ID_number) là nhóm chính

groupadd dodo

Thêm người dùng bob vào dodonhóm:

usermod -aG dodo bob -make sure to use "a"

Sử dụng tiếp theo newgrpđể thay đổi quyền sở hữu:

newgrp dodo

Hãy cẩn thận với tài khoản của bạn để có mật khẩu và là thành viên của nhóm chính trong tương lai. Và newgrp mở ra một vỏ mới; miễn là người dùng ở trong lớp vỏ đó, nhóm chính sẽ không thay đổi. Để chuyển nhóm chính trở lại ban đầu, bạn có thể rời khỏi shell mới bằng cách chạy lệnh exit.

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.