mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Linux pdv1 4.4.8-1-pve #1 SMP Tue May 17 16:14:08 CEST 2016 x86_64
Last login: Wed Aug 24 12:05:28 2016 from xxx
root@pdv1:~#
Bagaimana Anda tahusshd cek untuk UID 0? Anda tidak menggunakan argumentasi apa pun untuk mendukung pernyataan Anda.
mtak
2
Unix mendefinisikan superuser dengan UID = 0. Sebagai contoh lain dapat menjadi kode sumber dari openssh.
Jakuje
Kernel melakukannya, tetapi Anda mengasumsikan OpenSSH juga melakukannya. Misalnya, otentikasi dasar Apache juga tidak mengizinkan login root, bukan? Terima kasih atas tautannya, saya telah memodifikasi jawaban Anda untuk memasukkannya.
mtak
1
Jika itu dilakukan dengan cara lain, itu akan menjadi risiko keamanan potensial.
Jakuje
3
@ Bakuriu dan mengapa itu akan menciptakan pwkonteks dari sesuatu yang lain. The opensshkode open source dan pembaca yang tertarik dapat pergi melalui seluruh kode. Konstruksi serupa ada di seluruh kode untuk setiap metode otentikasi. Jika Anda grepmelalui kode, Anda tidak akan pernah menemukan strcmp('root', pw->pw_name), jika itu akan membuatnya lebih dapat diandalkan untuk Anda.
root@pdv1
di shellSaya menghargai pendekatan @mtak dalam jawaban lain, tetapi jawabannya jelas bahkan tanpa uji coba ini.
Ini didasarkan pada
UID
, seperti yang Anda lihat dalam kode sumber openssh:Juga setiap metode otentikasi menunjukkan sesuatu seperti
grep
-lebih jauh dalam kode, Anda mungkin memperhatikan, tidak adastrcmp('root', pw->pw_name)
atau beberapa alternatif, jika itu akan cukup untuk Anda.sumber
sshd
cek untuk UID 0? Anda tidak menggunakan argumentasi apa pun untuk mendukung pernyataan Anda.openssh
.pw
konteks dari sesuatu yang lain. Theopenssh
kode open source dan pembaca yang tertarik dapat pergi melalui seluruh kode. Konstruksi serupa ada di seluruh kode untuk setiap metode otentikasi. Jika Andagrep
melalui kode, Anda tidak akan pernah menemukanstrcmp('root', pw->pw_name)
, jika itu akan membuatnya lebih dapat diandalkan untuk Anda.