Có cách nào trong Linux để cập nhật các thuộc tính người dùng / nhóm mà không phải đăng nhập lại không?


24

Sau khi tôi chỉnh sửa / etc / group và tôi thêm người dùng vào các nhóm mà nó không thuộc về, người dùng sẽ không thể sử dụng các đặc quyền mới có được trừ khi bắt đầu một phiên mới.

Có một lệnh để làm mới các thuộc tính người dùng / nhóm trong một phiên đang diễn ra không?


1
Có lý do gì bạn chỉnh sửa tệp bằng tay thay vì sử dụng useradd -G groupname usernamekhông?
Bobby

4
@ BOB: điều này sẽ không có sự khác biệt.
niXar

Bạn có thể xem câu trả lời này .
Pablo A

Câu trả lời:


16

Ở cấp độ kernel, thành viên nhóm là một thuộc tính của mỗi quá trình. Trừ khi nó có khả năng phù hợp (CAP_SETGID nếu tôi không nhầm), tức là quyền root cho tất cả ý định và mục đích, một quy trình không thể thuộc về một nhóm mới.

Một người dùng không tồn tại như một đối tượng ở cấp hạt nhân; chỉ các quá trình (và tập tin) làm. Một quy trình có uid (hiệu quả và không có gì) và một danh sách các id nhóm.

Khi bạn thêm người dùng vào một nhóm, kernel không biết ý nghĩa của nó là gì. Nó chỉ biết, một cách gián tiếp, lần sau / bin / đăng nhập hoặc / usr / bin / newgrp được chạy một quy trình với id người dùng đó sẽ có id nhóm mới trong danh sách của nó.

Vì vậy, để trả lời câu hỏi của bạn, nếu bạn đang nói về phiên Gnome hoặc KDE, bạn phải khởi động lại nó thực sự. Hoặc nếu bạn chỉ quan tâm đến kết quả của một lệnh liên quan đến nhóm mới đó, bạn có thể sử dụng newgrp mà tôi vừa đề cập. Nó sẽ bắt đầu một shell mới với nhóm mới được thêm vào.


5

Tôi đã đọc trước đó rằng lệnh newgrp thực hiện điều này, nhưng chỉ với trình bao hiện tại. Dường như không có sự thay thế nào tốt hơn là đăng xuất và đăng nhập lại.


3
Những gì newgrp làm là thực sự bắt đầu một vỏ mới. Vì vậy, nếu bạn ^ D từ nó, bạn trở lại vỏ cũ của bạn. Tôi thường chỉ đơn giản là làm 'exec newgrp'
niXar
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.