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
su(1)
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
su(1)
Câu trả lời:
Người dùng phải có
thực thi quyền cho toàn bộ đường dẫn thư mục ( /root
chỉ ở đây )
thực thi quyền cho tập tin
đọc quyền cho tập tin
Nó có thể là một ý tưởng tốt để bỏ /root
hoang 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 user1
ngườ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 root
làm chủ sở hữu và nhóm, đặt quyền truy cập đơn giản ( chmod
) thành 770
và thêm user1
bằng ACLs ( setfacl
).
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/sudoers
Mụ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 root
ra sudo
lệnh của bạn .
Có %
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.
sudo
lệnh bạn đã viết là gì?