Saya memiliki script.sh yang harus dijalankan sebagai user2. Namun, skrip ini hanya dapat dijalankan di bawah user1 di aplikasi saya.
Saya ingin menjalankan perintah berikut:
su user2 -C script.sh
tetapi dapat berjalan tanpa kata sandi.
Saya juga ingin ini sangat membatasi, karena di user1 hanya dapat menjalankan script.sh di bawah user2 dan tidak ada yang lain.
Saya sudah mencoba melakukan ini dengan file sudoers dan baru saja bingung tanpa henti setelah berjam-jam mencoba.
Jika seseorang dapat memberikan contoh eksplisit tentang bagaimana hal ini dapat dicapai (bukan sesuatu yang umum seperti menggunakan sudoers), itu akan sangat dihargai.
Jawaban:
Panggil
visudo
dan tambahkan ini:Jalur perintah harus absolut ! Kemudian telepon
sudo -u user2 /home/user2/bin/test.sh
dariuser1
shell. Selesaisumber
coba jalankan:
Ini akan menjalankan perintah sebagai nama pengguna mengingat Anda memiliki izin untuk sudo sebagai pengguna itu.
sumber
sudo su -c "Your command right here" -s /bin/sh otheruser
su username -c "command"
.screen
sebagai pengguna lain maka ini mungkin bisa membantu - linuxquestions.org/questions/linux-software-2/…username
(atau dalam pertanyaan,user2
) memiliki kata sandi itu sendiri, ini tidak akan memungkinkan untuk melewatkan prompt untuk itu. jawaban yang lain adalah: tidak perlu kata sandi, baik user1 dan user2.Perintah di atas benar, tetapi pada Red Hat jika selinux memberlakukannya tidak akan mengizinkan cron untuk mengeksekusi skrip sebagai pengguna lain. contoh;
execl: couldn't exec /bin/sh execl: Permission denied
Saya harus menginstal setroubleshoot dan setools dan menjalankan yang berikut untuk mengizinkannya:
sumber