Saya mencoba mengubah shell login.
Inilah yang /etc/passwdterlihat seperti baris pertama (pada instalasi Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Ketika saya mencoba masuk sebagai root:
Cannot execute zsh: No such file or directory
Saya tahu zshtersedia:
$ which zsh
/usr/bin/zsh
Oke, sepertinya logis untuk mengganti zshdengan path lengkapnya. Tetapi bagaimana saya bisa melakukannya?
Saya memiliki satu pengguna lain pada sistem ( user), namun tidak memiliki hak akses root dan sudotidak diinstal pada sistem.
Asumsikan bahwa untuk alasan apa pun (enkripsi, akses fisik, ...) Saya tidak dapat mem-boot pada CD langsung untuk memodifikasi file.
Saya tahu, bagaimanapun, kredensial untuk rootakun tersebut.
Pertanyaan saya adalah: Apakah ada cara, bahkan secara terprogram, untuk meluncurkan proses dengan rootakun tanpa meluncurkan shell login terlebih dahulu?
su -c "<commands>") berfungsi ... bisakah kita tidak cukup menggunakan su -c "/bin/bash"untuk menjalankan bash dengan root pengguna ?
-cdijalankan melalui shell login pengguna. -sdapat digunakan untuk menggunakan shell lain ... hanya jika shell login yang ada valid atau invoker adalah root.

su? ataugksu? sesuatu sepertisu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'