Yang perlu saya lakukan adalah menjalankan skrip tertentu sebagai pengguna tertentu yang memiliki nologin/false
shell yang ditunjukkan /etc/passwd
.
Saya akan menjalankan skrip sebagai root dan ini harus dijalankan sebagai pengguna lain. Berlari:
~# su -c "/bin/touch /tmp/test" testuser
akan bekerja, tetapi saya perlu shell yang valid untuk penguji. Saya tahu saya dapat menonaktifkan kata sandi dengan passwd -d testuser
dan membiarkan shell dengan /bin/bash
cara ini akan sedikit aman tetapi saya harus memiliki nologin/false
shell.
Pada dasarnya yang saya butuhkan adalah apa yang crontab
dilakukan ketika kita menetapkan pekerjaan yang akan dijalankan sebagai pengguna tertentu, terlepas dari yang ini memiliki nologin/false
shell.
ps Saya menemukan utas ini Melaksanakan perintah sebagai pengguna nologin , tapi saya tidak tahu bagaimana concatenate
perintah su -s /bin/sh $user
ke skrip yang perlu saya jalankan.
root:root -rwsr-x---
?su -s /bin/bash -c 'exec /path/to/your/script &' test
runuser
, saya ingin menunjukkan bahwasu -s SHELL
parameter membuat perintah runuser cukup berguna :) Terima kasih Jan!Anda dapat melakukannya dengan
sudo -u
menginstalnya:sumber
sudo -u apache whoami
?sudo -u
mungkin bukan ide yang baik untuk menjalankan perintah sebagai pengguna nologin, karena mengeksposSUDO_USER
di lingkungan siapa yang sebenarnya memanggil perintah. Mungkin saya hanya terlalu memikirkannya.Dengan menyediakan skrip sebagai argumen untuk dieksekusi ke / bin / sh:
sumber
baru sadar :
su -s "/ bin / bash" -c "/ bin / touch / tmp / testuser" testuser "
mungkin ada cara yang lebih baik ?!
sumber
sebenarnya, cara terbaik untuk melakukan ini adalah melalui runuser
lihat halaman manual untuk detailnya
alat ini digunakan untuk menghadapi situasi seperti yang dikatakan pengembang di bolg-nya
Setiap kali layanan berjalan sebagai root dan ingin mengubah UID menggunakan shell itu harus menggunakan runuser.
http://danwalsh.livejournal.com/55588.html
Saya sudah mengirim jawaban ini di banyak istana, maafkan saya jika Anda menemukan ini menjengkelkan
sumber
Gunakan sudo -u untuk menentukan pengguna. Juga gunakan flag -i untuk mengatur variabel lingkungan dari pengguna target juga.
sumber
This account is currently not available.
Gunakan perintah su dengan perintah shell -s dan -c. Seperti yang ditunjukkan di bawah ini
sumber