Có phải khởi động lại để làm mới quyền sau khi thêm người dùng vào một nhóm mới không?


26

Trên máy chủ Ubuntu, tôi đã nhận thấy hơn một lần rằng sau khi thêm người dùng vào một nhóm mà người dùng không có quyền nhóm cho đến khi tôi khởi động lại hệ thống. Ví dụ:

Người dùng 'hudson' cần quyền đọc thư mục 'root: Shadow / etc / Shadow' Vì vậy, tôi thêm hudson vào nhóm bóng. hudson vẫn không thể đọc. Vì vậy, tôi đã tắt máy -h -r ngay bây giờ 'và khi hệ thống xuất hiện trở lại, người dùng hudson có thể đọc.

Yêu cầu khởi động lại hoặc có cách nào tốt hơn để có được quyền áp dụng sau khi thêm người dùng vào nhóm không?


để tham khảo trong tương lai, tôi đã thêm một giải pháp thực tế dưới đây. Tôi đã rất ngạc nhiên khi đây là một vấn đề. Mong rằng sẽ giúp.
TryTryAgain

Câu trả lời:


25

Tôi đang tìm kiếm một giải pháp, đã xem qua bài đăng này, và sau đó tìm thấy một giải pháp!

Tôi nghĩ rằng tôi thực sự cung cấp một giải pháp để những người khác có thể hưởng lợi. Đăng nhập và đăng xuất là như vậy năm 1995.

Được lấy từ:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

Vì vậy, nếu bạn cần có quyền cho cdromnhóm bạn vừa thêm người dùng của mình vào:

newgrp cdrom 

ví dụ

Vì vậy, các bước sẽ là:

#adduser my_user cdrom

và sau đó

$newgrp cdrom

Tôi đã xác nhận rằng nó hoạt động.

Một $groupskiểm tra đơn giản từ CLI cho thấy người dùng đang ở trong nhóm. Và một thực thi nhanh chóng với các đặc quyền cần thiết từ nhóm đó hoạt động.

Không cần phải giết các cửa sổ của bạn và đăng nhập và đăng xuất! Mong rằng sẽ giúp đỡ người khác!

Thông tin bổ sung (dựa trên nhận xét hữu ích của jytou): "Giải pháp [Điều này] sẽ chỉ hoạt động cho trình bao mở hiện tại. Nếu bạn có một trình bao khác mở, bạn sẽ cần sử dụng cùng một lệnh để tính đến các thay đổi."


1
Thật tuyệt, nó thực sự hiệu quả !!! : D
Dadexix86

3
Lưu ý rằng giải pháp của TryTryAgain sẽ chỉ hoạt động đối với trình bao mở hiện tại. Nếu bạn mở một shell khác, bạn sẽ cần sử dụng cùng một lệnh để đưa các thay đổi vào tài khoản.
jytou

Dù sao để làm điều đó cho Sesssion chạy?
artfulrobot

@artfulrobot xin lỗi, tôi không chắc chính xác ý bạn là gì. Bạn có thể muốn mở một câu hỏi mới và tham khảo bài đăng này và giải pháp để được giúp đỡ tốt nhất.
TryTryAgain

19

Khi thêm người dùng vào một nhóm mới, người dùng phải đăng xuất và đăng nhập lại để có ảnh hưởng. Mặc dù khởi động lại sẽ thực hiện điều đó, nhưng nó không cần thiết.


Làm cách nào để tôi đăng xuất người dùng được tạo bởi aptitude khi cài đặt gói?
Michael Prescott

Gói nào tạo ra hudsonngười dùng?
womble

Khi Justin trả lời, hãy thử dừng lại và bắt đầu dịch vụ.
Scott Pack

Đây là những gì tôi làm. Đơn giản chỉ cần đăng xuất và đăng nhập lại.
Trent Scott

Bạn thực sự không cần phải đăng xuất và đăng nhập, rất may. Tôi đã cung cấp một giải pháp làm việc dưới đây. Đã thử nghiệm, và HẠNH PHÚC!
TryTryAgain

8

Thêm người dùng vào một nhóm không có hiệu lực hiện đang đăng nhập người dùng.

Trong trường hợp của một daemon, bạn cần khởi động lại nó để áp dụng các nhóm mới.

Hơn nữa, khởi động lại daemon bằng một tùy chọn trong daemon sẽ không hoạt động vì điều đó sẽ kế thừa môi trường hiện tại.

Cách dễ nhất để làm cho nó hoạt động là dừng hoàn toàn daemon và khởi động lại, như trong ..

/etc/init.d/foo stop ; /etc/init.d/foo start

4

đó là dễ dàng hơn nhiều, bạn có thể kiểm tra mức độ truy cập hiện tại của mình bằng cách nhập:

id

để tải lại các nhóm của bạn, bạn chỉ cần:

su - $USER

sau đó kiểm tra lại cấp độ truy cập:

id

và bạn sẽ thấy nhóm mới hiện đang hoạt động.


1

Có một chế độ thất bại khác nhau cũng cần được giải quyết ở đây.

Nếu quản trị viên cập nhật /etc/groupnhưng không cập nhật /etc/gshadow(trên các hệ thống có thiết lập này), đăng xuất và đăng nhập lại sẽ không thực sự gán bạn cho nhóm mới.

Một cách khó hiểu, groupssẽ cho bạn thấy tình hình thực tế, hiện tại, trong khi đó idsẽ in sai đầu ra cho thấy bạn thành viên chính xác của nhóm.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

Tôi không thể sử dụng newgrpvì nó yêu cầu mật khẩu và tôi không có mật khẩu, chỉ xác thực khóa công khai SSH.

Giải pháp sẽ là cho quản trị viên hoàn nguyên chỉnh sửa thủ công /etc/groupsvà sau đó thực hiện lại với sudo gpasswd -a tripleee adm; hoặc cách khác, để sử dụng grpconvđể hợp nhất các thay đổi (mà tôi đã chọn từ https://serverfault.com/a/389719/98333 )


Trên thực tế, hóa ra vấn đề thực sự là tôi đã sử dụng lại phiên chủ SSH . Việc ngắt kết nối bằng cách loại bỏ ổ cắm ControlPath và đăng nhập lại đã giải quyết được vấn đề.
tripleee
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.