Menjalankan perintah sebagai pengguna nologin

43

Saya baru-baru ini mengatur server saya sehingga pengguna 'virtual' suPHP saya tidak dapat login dengan menggunakan artikel ini

Masalah saya sekarang adalah bahwa sebelumnya ketika saya menjalankan rakeperintah untuk aplikasi Ruby on Rails saya berjalan di server, saya biasanya sumasuk www-datadan menjalankan perintah dari sana - jelas saya tidak bisa melakukan itu lagi karena nologin.

Jadi sebagai pengguna root, bagaimana saya bisa menjalankan perintah sebagai pengguna lain, bahkan jika mereka nologin?

Pembuat tabir
sumber
Salah satu caranya adalah meluncurkan shell untuk pengguna itu (secara eksplisit menentukan shell): sudo -u www-data bashjalankan perintah dan logout Anda
cyberx86
@ cyberx86 Solusi Anda berhasil, bisakah Anda mengirimkannya sebagai jawaban untuk saya?

Jawaban:

50

Salah satu caranya adalah meluncurkan shell untuk pengguna tersebut (secara spesifik menentukan shell):

sudo -u www-data bash 

Ini akan meluncurkan shell (bash) sebagai pengguna yang ditentukan. Anda kemudian dapat menjalankan perintah dan logout (untuk kembali ke shell sebelumnya)

cyberx86
sumber
39

Sebagai root, Anda dapat menggunakan su -s /bin/sh $user - -sopsi menimpa shell yang dikonfigurasi untuk pengguna.

Sergey Vlasov
sumber
1
Ini sepertinya selalu salah bagi saya.
Bekerja bagus untukku, tidak pernah punya masalah. Saat menjalankan skrip dengan sintaks bash, perlu / bin / bash daripada / bin / sh
ekerner