Chạy script như một người dùng khác từ root [đã đóng]


11

Từ người dùng root, làm cách nào tôi có thể cấp quyền cho người dùng khác để thực thi tệp /root/script.sh?

Ý tưởng là chạy script như sudo -u user1 /root/script.sh


1
Câu hỏi không hoàn toàn rõ ràng: "bạn là root và muốn chạy tập lệnh dưới dạng user1" hay "bạn là user1 và muốn chạy tập lệnh với quyền root"? Nếu đầu tiên là trường hợp, vấn đề với sudolệnh bạn đã viết là gì?
michas

Kiểm trasu(1)
vonbrand

Câu trả lời:


10

Tôi phải nói rằng tôi không bao giờ thích sudo(đặc biệt là cấu hình của nó). Đồng bằng cũ su:

su -c 'command' - user

Được thực thi từ root, nó sẽ không nhắc mật khẩu.


0

Người dùng phải có

  1. thực thi quyền cho toàn bộ đường dẫn thư mục ( /rootchỉ ở đây )

  2. thực thi quyền cho tập tin

  3. đọc quyền cho tập tin

Nó có thể là một ý tưởng tốt để bỏ /roothoang và tạo (hoặc sử dụng) một thư mục khác cho mục đích này (ví dụ /usr/local/bin). Bạn có thể làm cho user1người dùng duy nhất được phép thực thi tập lệnh bằng cách biến nó thành chủ sở hữu của tệp hoặc để lại rootlàm chủ sở hữu và nhóm, đặt quyền truy cập đơn giản ( chmod) thành 770và thêm user1bằng ACLs ( setfacl).


0

Nếu tập lệnh của bạn nằm trong thư mục gốc, thì

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 chỉ có thể là root.

/etc/sudoersMục nhập của bạn sẽ giống như

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

Bạn thường sẽ chỉnh sửa tập tin với visudo

Sau đó, bạn cũng không cần phải đưa -u rootra sudolệnh của bạn .

%nghĩa là nhóm người dùng. Khi bạn bỏ nó đi thì chỉ người dùng mới được phép thực thi lệnh. Nếu bạn muốn một nhóm người dùng thực thi nó, thì hãy để nguyên như vậy.

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.