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?

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" 

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.