chsh thực sự thay đổi dòng liên quan đến người dùng trong / etc / passwd, mặc dù người dùng chỉ có thể thay đổi 'dòng' của chính họ trong / etc / passwd. Do đó, nếu bạn muốn thay đổi shell cho người dùng khác, bạn cần mật khẩu của anh ấy / cô ấy.
Nếu bạn thực sự muốn làm điều đó (đưa ra những lo ngại trong bài của Lorenzo và những lo ngại về bảo mật có thể xảy ra) thì đây là cách người ta có thể làm điều này:
#visudo
Điều này đòi hỏi quyền root.
Giả sử bạn hiện đang chạy dưới dạng "alice" và muốn thay đổi trình bao "bob's" mà không cần mật khẩu;
Thêm vào tập tin:
Cmnd_Alias SHELL = /usr/bin/chsh
Runas_Alias SH = Bob
alice ALL = (SH) NOPASSWD: SHELL
Điều này đảm bảo 'alice' có thể chạy trên tất cả các máy chủ với tư cách là người dùng trong nhóm SH mà không cần mật khẩu nhóm các lệnh trong SHELL.
Có lẽ hơi xa để làm theo cách này, nhưng nó có thể.
Hãy chắc chắn đọc "man sudoers" trước khi thay đổi tệp sudores bằng 'visudo', đặc biệt là các tin nhắn liên quan đến bảo mật!