Chạy tập lệnh với sự cho phép của người dùng siêu


1

Tôi cần tạo một tập lệnh để sửa đổi một số dữ liệu, đòi hỏi phải có sự cho phép của siêu người dùng. Có cách nào để tự động hóa quá trình này thông qua shell script trên Mac 10 không?

Kịch bản mẫu:

sed s/Hello/World/g /usr/local/opt/test.xml 

Để chạy tập lệnh này, người dùng cần có quyền siêu người dùng, có cách nào để cung cấp thông tin gốc trong tập lệnh và thực thi không?


điều này cần phải được chạy theo yêu cầu, hoặc nó có thể được chạy hàng giờ bởi cron?
PurplePilot

Câu trả lời:


1

Bạn có thể thay đổi các quyền trên tệp shell shell để tự động làm cho nó chạy như root.

Từ trang chmod:

4000    (the set-user-ID-on-execution bit) Executable files with
        this bit set will run with effective uid set to the uid of
        the file owner.  Directories with the set-user-id bit set
        will force all files and sub-directories created in them to
        be owned by the directory owner and not by the uid of the
        creating process, if the underlying file system supports
        this feature: see chmod(2) and the suiddir option to
        mount(8).

Một lệnh mẫu có thể trông giống như:

sudo chown root:root file.sh
sudo chmod 4755 file.sh

Tôi đang chạy này thông qua shell script. Tôi đã sử dụng mong đợi để giải quyết điều này! cảm ơn :)
Santosh M

Tôi tin rằng việc sử dụng bit thực thi ID người dùng đã đặt sẽ không hoạt động trên tập lệnh shell. Nó phải là một chương trình biên dịch.
Gordolio
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.