Điểm:2

Làm cách nào tôi có thể thêm người dùng hiện có vào id nhóm hiện có (không phải tên nhóm)?

lá cờ cn

Tôi muốn thêm một người dùng hiện có, foo, cho một nhóm hiện có, người đóng tàu. Vấn đề là máy của tôi có hai nhóm có cùng tên người đóng tàu, một cái có id 131 và cái còn lại là 999. Tôi muốn thêm foo vào nhóm docker 999. Lệnh sau chỉ thêm foo vào 131 người đóng tàu tập đoàn:

sudo usermod -aG docker foo

Làm thế nào tôi có thể thêm vào người đóng tàu thay vào đó là nhóm có id 999?

Cập nhật: sau khi xem xét kỹ hơn, tôi nhận ra rằng chỉ có người đóng tàu 131 nhóm được liệt kê dưới /etc/nhóm:

$ con mèo/etc/nhóm | docker grep
docker:x:131:Steve,Mark,Emmy,user1,foo

Tôi không biết docker 999 đến từ đâu, nhưng người dùng sau có thể chạy docker mà không cần sudo:

$ id người dùng1
uid=260800(user1) gid=5000(student) groups=5001(sudoaccess),999(docker),27(sudo),124(sambashare),13010(eestaff),131(docker)

trong khi foo người dùng không thể:

$ id foo
uid=305800(foo) gid=5000(sinh viên) nhóm=27(sudo),131(docker)
sudodus avatar
lá cờ jp
1. Sao có 2 nhóm trùng tên vậy? 2. Bạn có thể thử bằng cách tạo một bản sao dự phòng của tệp `/etc/group`, rồi chỉnh sửa (với quyền truy cập sudo) để thêm người dùng vào nhóm mong muốn (sau dấu hai chấm cuối cùng hoặc nếu đã có một số người dùng ở đó, viết dấu phẩy và sau đó thêm người dùng.. Bạn sẽ thấy mẫu trong các dòng cho một số nhóm khác.
Tu Bui avatar
lá cờ cn
@sudodus thật kỳ lạ ```/etc/group``` chỉ có nhóm docker 131 (câu hỏi được cập nhật).
sudodus avatar
lá cờ jp
Làm thế nào để bạn biết rằng bạn có một người dùng với id số 999? Id số đó được sử dụng cho người dùng mặc định trong các hệ thống trực tiếp. Và làm cách nào bạn có được số đó được chọn cho id người dùng? Bạn đã cài đặt một số gói chương trình đặc biệt? Bạn đang chạy phiên bản Ubuntu nào (20.04 LTS hoặc một số phiên bản khác)? Và nó là một hệ thống trực tiếp hay một hệ thống được cài đặt?
sudodus avatar
lá cờ jp
Có lẽ 999 chỉ được đưa vào danh sách đó để làm cho nó hoạt động cho người dùng mặc định trong các hệ thống trực tiếp. Đầu ra của `grep 131 /etc/group` là gì; Vui lòng chỉnh sửa câu hỏi ban đầu của bạn và hiển thị đầu ra dưới dạng `code`
sudodus avatar
lá cờ jp
Tôi thấy các chỉnh sửa của bạn. Nó có hoạt động ngay bây giờ (hoặc sau khi đăng xuất/đăng nhập hoặc khởi động lại) để sử dụng docker với người dùng mới 'foo' không?
sudodus avatar
lá cờ jp
Tôi thấy trong một nhận xét rằng bạn đang chạy 16.04, phát hành vào tháng 4 năm 2016, kết thúc hỗ trợ vào tháng 4 năm 2021, vì vậy thực sự đã đến lúc chuyển sang phiên bản được hỗ trợ.
Điểm:4
lá cờ hr

Vì vậy, điều này hóa ra là một vấn đề XY

  1. vấn đề như đã nêu (X) "Làm cách nào để thêm người dùng hiện có vào id nhóm hiện có (không phải tên nhóm)?"

  2. vấn đề thực tế (Y) "Tôi nên làm gì nếu /etc/nhóm/etc/gshadow các tệp không đồng ý về GID số của một nhóm?"


X. Làm cách nào để thêm người dùng hiện có vào id nhóm hiện có (không phải tên nhóm)?

Nó không rõ ràng trong trang người đàn ông, nhưng người dùng sẽ chấp nhận một GID số làm đối số cho cả -g (nhóm chính) và -G (nhóm phụ), ít nhất là như đã thử nghiệm trên Ubuntu 18.04.

Bán tại. được cho

người kiểm tra $ nhóm
testuser : nhân viên testuser

$ getent nhóm ftp
ftp:x:134:

sau đó

$ sudo usermod -aG 134 người kiểm tra

người kiểm tra $ nhóm
người kiểm tra : nhân viên người kiểm tra ftp

Y. Tôi nên làm gì nếu /etc/nhóm/etc/gshadow tập tin không đồng ý về GID số của một nhóm?

Có một công cụ dòng lệnh cho việc đó, được cung cấp như một phần của mật khẩu bưu kiện:

TÊN
       grpck - xác minh tính toàn vẹn của các tệp nhóm

TÓM TẮT
       grpck [tùy chọn] [nhóm [ bóng ]]

SỰ MIÊU TẢ
       Lệnh grpck xác minh tính toàn vẹn của thông tin nhóm. Nó
       kiểm tra xem tất cả các mục trong /etc/group và /etc/gshadow có đúng không
       định dạng và chứa dữ liệu hợp lệ. Người dùng được nhắc xóa các mục nhập
       được định dạng không đúng hoặc có các lỗi không thể sửa khác.

       Kiểm tra được thực hiện để xác minh rằng mỗi mục có:

       · số lượng trường chính xác

       · một tên nhóm duy nhất và hợp lệ

       · một mã định danh nhóm hợp lệ (chỉ /etc/group)

       · danh sách thành viên và quản trị viên hợp lệ

       · một mục tương ứng trong tệp /etc/gshadow (tương ứng
           /etc/group để kiểm tra gshadow)

Để kiểm tra sự không nhất quán, trước tiên hãy chạy ở chế độ chỉ đọc:

Sudo grpck -r

(đặc quyền nâng cao được yêu cầu ngay cả ở đây vì /etc/gshadow chỉ có thể đọc được bằng root).Sau đó, khi bạn đã xác định được sự cố, hãy chạy lại một cách tương tác để khắc phục sự cố:

sudo grpck

Có tiện ích tương tự pwck để đảm bảo tính thống nhất giữa /etc/passwd/etc/shadow.

Tu Bui avatar
lá cờ cn
Thật không may, nó không hoạt động trong trường hợp của tôi (Ubuntu 16.04).Tôi nghĩ rằng nó có liên quan đến ```999``` docker không có trong ```/etc/group```. Tôi đã cập nhật câu hỏi với nhiều thông tin hơn.
lá cờ hr
@TuBui Có thể GID cho docker nhóm không nhất quán giữa `/etc/group` và `/etc/gshadow` - vui lòng chạy `sudo pwck -r` và thêm đầu ra vào câu hỏi của bạn
lá cờ hr
xin lỗi ý tôi là `Sudo grpck -r` tất nhiên rồi
Điểm:1
lá cờ cn

TL;DR để trả lời câu hỏi tiêu đề, vui lòng theo dõi bài đăng @steeldriver aka. người dùng cũng hoạt động với ID nhóm. Giải pháp bên dưới dành riêng cho sự cố được mô tả trong phần nội dung của OP.

Rõ ràng vấn đề được giải quyết bằng cách chỉnh sửa /etc/nhóm và thay đổi id nhóm docker 131 đến 999. Sau khi đăng xuất và đăng nhập lại, tôi chỉ còn lại một nhóm docker - nhóm 999 tập đoàn.

$ id foo
uid=305800(foo) gid=5000(sinh viên) nhóm=27(sudo),999(docker)

Tôi rất mong thay đổi /etc/nhóm sẽ không dẫn đến bất kỳ hành vi kỳ lạ nào. Nguyên nhân của vấn đề vẫn chưa được biết (việc đăng nhập máy chủ cũng được quản lý theo hệ thống LDAP nên có lẽ cả hai can thiệp lẫn nhau).

lá cờ hr
Trong tương lai, tôi khuyên bạn nên sử dụng `grpck` để làm việc này cho bạn, thay vì trực tiếp chỉnh sửa (các) tệp theo cách thủ công
sudodus avatar
lá cờ jp
+1 cho nhận xét của Steeldriver và nỗi sợ hãi của chính bạn: thay đổi số id nhóm của 'docker` thành 999 có thể gây ra một số hành vi kỳ lạ. - Dù sao, bạn luôn có thể đặt lại `/etc/group`, nếu cần thiết cho một số ứng dụng khác, chúc may mắn :-)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.