Saya sedang mengotomatisasi pembuatan repositori subversi dan situs web terkait seperti yang dijelaskan dalam posting blog yang saya tulis ini . Saya mengalami masalah di sekitar bagian di mana saya su ke pengguna data-www untuk menjalankan perintah berikut:
svnadmin create /svn/repository
Ada cek di awal skrip yang memastikan skrip berjalan sebagai root atau sudo, dan semuanya setelah itu satu perintah perlu dijalankan sebagai root. Apakah ada cara yang baik untuk menjalankan satu perintah itu sebagai www-data dan kemudian kembali ke root untuk menyelesaikan?
This account is currently not available.
su - www-data -s /bin/bash -c 'your_command'
untuk membuat ini bekerja. Pengguna www-data memiliki shell/usr/sbin/nologin
jadi tanpa-s
parameter itu mengarah ke pesan kesalahan.Dengan 'su' mungkin meminta kata sandi, dan www-data tidak memiliki kata sandi. Saya merekomendasikan perintah
sudo
:Syaratnya adalah bahwa pengguna Anda harus root, atau dikonfigurasi dalam file sudoers
sumber
Gunakan
su
:sumber
2 pendekatan yang mungkin :
1)
sudo
perintah:Dalam kebanyakan kasus, Anda akan memiliki akses ke
sudo
perintah dan solusinya adalah:sudo -u target_user target_command
2)
su
perintah (jika sudo tidak diinstal.Ex. alpine-linux images
):su - target_user -c 'target_command'
Jika Anda menerima kesalahan 'Akun ini saat ini tidak tersedia' , pengguna memiliki kebijakan tidak masuk (akses shell). Jika demikian, pertimbangkan untuk menggunakan:
su - target_user -s /bin/bash -c 'target_command'
(Berdasarkan komentar berharga @Petr tentang
-s
bendera untuk mengakomodasiwww-data
kebijakan tanpa masuk pengguna)sumber