su tidak mengubah pengguna tetapi juga tidak merespons dengan kesalahan

56

Saat masuk karena rootsaya ingin ke supengguna reguler tertentu. Saya menjalankan su usernamedan segera menerima prompt kembali, masih sebagai root. Tidak ada kesalahan yang diberikan. Saya mengetahui masalah lama "pengguna yang Anda coba su tidak memiliki izin untuk folder yang sedang Anda masuki", dan itu tidak terjadi dalam skenario ini. Selain itu, tidak ada kesalahan yang ditampilkan, yang selalu terjadi (sejauh yang saya tahu) ketika masalah izin tertentu ditemukan.

Saya sudah mencoba su - usernamedengan efek yang sama. Perintah diproses, tidak ada kesalahan yang terlihat, dan saya segera menerima konfirmasi.

Apa yang bisa menyebabkan perilaku ini? Bagaimana saya bisa memecahkan masalah ini?

Wesley
sumber
8
Shell apa yang dimiliki pengguna? Apakah itu /bin/false?
camh
4
Anda harus benar-benar menggunakan sudo -u username -s(atau -i) BTW.
Mgorven
2
@camh facepalm Itu dia. Aku bersumpah aku memeriksa /etc/passwdtadi malam dan tidak seperti itu! =) Bisakah Anda menjawabnya? Saya akan menerimanya.
Wesley

Jawaban:

68

Periksa shell yang dimiliki pengguna /etc/passwd. Jika shell adalah /bin/false(shell umum untuk melarang login), maka Anda akan melihat perilaku yang Anda jelaskan. Atau, itu mungkin beberapa program lain yang segera mengakhiri yang memberikan hasil yang efektif sama

camh
sumber
2
Itu dia. Aku bersumpah aku melihat dulu! =)
Wesley
25
Dan jika Anda perlu men-debug sesuatu di bawah pengguna yang memiliki /bin/falsecangkangnya, Anda dapat melakukannya dengan su - user -s /bin/sh.
Marki555
6

Saya sarankan menggunakan strace pada proses su untuk melihat di mana proses gagal.

strace su donaldduck

Seharusnya memberi Anda BANYAK output untuk memilah-milah, tetapi sesuatu di sana harus menunjukkan di mana masalah terjadi.

Magellan
sumber
1
Penurunan harga bodoh ....
Magellan
4

Anda harus memeriksa shell /etc/passwd, dan, tanpa ingin menggurui, periksa output whoamisetelah berjalan su.

Alex Chamberlain
sumber
1
Tidak yakin mengapa itu dianggap menggurui, karena saya pasti tidak akan mengambil jalan itu. Maksud saya, saya bisa jika Anda mau, tetapi itu tidak akan menjadi kecenderungan pertama saya. =) Ngomong-ngomong, ya, saya lupa menyatakan bahwa saya melakukan itu hanya untuk memastikan saya adalah diri saya yang dulu, dan saya masih rootdan bukan pengguna yang saya coba alihkan.
Wesley
0

Periksa log sistem Anda: menggunakan sudo harus mencatat semua tindakan. Jadi jika ada masalah, itu harus ditulis.

Dom
sumber