Gunakan perintah sudo dalam skrip.
Dalam bentuk:
sudo -u username command
perintah sudo menjalankan perintah sebagai pengguna nama pengguna .
Jika skrip dijalankan sebagai root, saya rasa itu tidak akan meminta kata sandi. Jika tidak, artikel ini membahas cara menggunakan sudo dengan kata sandi dalam satu baris perintah?, dan artikel ini membahas cara menggunakan sudo tanpa kata sandi?
Jawaban ini bagus, tetapi saran serverfault sedikit berbahaya - akan memungkinkan siapa pun menjalankan apa pun sebagai root! Jadi saya memposting di sini karena saya tidak dapat memformat komentar.
Saya akan merekomendasikan menggunakan visudo untuk memberikan izin yang Anda butuhkan setepat mungkin. Ketik visudo
dan tambahkan baris seperti:
username hostname = NOPASSWD: /full/path/to/command1, full/path/to/command2
Jika Anda perlu menjalankan hal yang sama ini di banyak host, Anda dapat membukanya dengan:
username ALL = NOPASSWD: /full/path/to/command1, full/path/to/command2
Tapi saya **tidak* akan menggunakan:
username ALL=(ALL) NOPASSWD: ALL
atau nama pengguna nama host =SEMUA
Halaman manual sudoer memiliki banyak detail mengerikan
# Saya=suka:
#test if running bash as a different user works
sudo -u nobody bash -c : && RUNAS="sudo -u nobody"
echo 1: $USER
#Runs bash with commands between '_' as nobody if possible
$RUNAS bash<<_
echo 2: \$USER
_
echo 3: $USER
# ./run
1: root
2: nobody
3: root