Eksekusi skrip bash secara otomatis di bawah hak pengguna lain

4

Apakah ada cara untuk menjalankan skrip bash di bawah hak pengguna lain (secara otomatis)? Saya pikir "sudo" adalah cara yang benar, tetapi saya tidak tahu bagaimana mengotomatiskan prosesnya.

Misalnya. Saya ingin menjalankan sesuatu seperti ini (pengguna "bla" menjalankan proses di bawah "blub"):

sudo <the user under which i want to run the process> <path to script>
nikeee
sumber

Jawaban:

5

Jadi saya benar.

Pengguna "bla" ingin menjalankan perintah sebagai Pengguna "blub"?

Maka sesuatu seperti ini bisa bekerja:

sudo -u blub /path/to/command

Jika Anda perlu melakukan ini tanpa diminta kata sandi, tambahkan baris follwing ke / etc / sudoers (via perintah visudo):

bla    ALL=(blub) NOPASSWD: /path/to/command
andrekeller
sumber
3

Anda dapat bekerja dengan izin bit SUID dan SGID ( perhatikan bahwa ini mungkin sangat berbahaya )

berikan izin untuk mengeksekusi file ini ke grup yang Anda gunakan untuk mengeksekusi skrip miliknya, dan atur melalui SUID siapa saja yang menjalankan skrip ini untuk menjalankannya sebagai pengguna yang memiliki skrip

sudo chmod 4751 /path/to/my/file
sudo chgrp somegroup /path/to/my/file

Kemudian, Anda hanya perlu menjalankan skrip sebagai userB siapa anggota suatu kelompok dan itu akan dieksekusi dengan userA dan suatu kelompok

ls -l /path/to/my/file
-rwsr-xr-- userA somegroup /path/to/my/file
Thomas
sumber
0

Saya ingin menjalankan skrip dari cgi. Script saya menghasilkan beberapa direktori dan file, dan saya membutuhkannya untuk dimiliki oleh pengguna nagios. Inilah yang saya lakukan:

edit /etc/sudoers using visudo command
apache   ALL=(nagios) NOPASSWD: /usr/local/nagios/libexec/pangoo_lib/change_state_simulation

Dari cgi saya (pengguna apache), skrip dijalankan:

sudo -u nagios /usr/local/nagios/libexec/pangoo_lib/change_state_simulation
Andres NEIRA CORDOVA
sumber