Jalankan perintah sebagai pengguna “sistem” Linux (shell = / bin / false)

29

Saya membuat pengguna "sistem" di Ubuntu 11.04 ( adduser --system) untuk menjalankan pekerjaan cron tertentu, tetapi kadang-kadang saya ingin menguji hal-hal dengan menjalankan perintah secara manual sebagai pengguna itu. Apa cara termudah untuk melakukan ini?

sutidak berfungsi, karena pengguna memiliki /bin/falsecangkangnya (yang baik untuk cron). Saya telah secara manual mengubah shell untuk /bin/bashmelakukan pengujian dan kemudian mengubahnya kembali, tapi saya ingin tahu apakah ada cara yang lebih mudah?

EMP
sumber

Jawaban:

41

Saya menggunakan su - targetuser -s /bin/bashdari shell root.

Untuk penggunaan eksekusi perintah langsung -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
dmourati
sumber
Itu berhasil, terima kasih! Bagaimana saya melewatkan opsi -s?
EMP
3
Anda juga dapat menggunakan opsi -c "your_command_here" untuk memberikan perintah yang ingin Anda jalankan versus menunggu shell dan kemudian mengetiknya di prompt baru.
dmourati
2

Gunakan sudo. Ini akan berfungsi bahkan jika pengguna tidak memiliki shell nyata.

eirescot
sumber