Kami memiliki beberapa akun pengguna yang kami buat untuk tugas otomatis yang memerlukan izin berbutir halus, seperti transfer file lintas sistem, pemantauan, dll.
Bagaimana kami mengunci akun pengguna ini sehingga "pengguna" ini tidak memiliki shell dan tidak dapat masuk? Kami ingin mencegah kemungkinan seseorang dapat menggunakan SSH sebagai salah satu akun pengguna ini.
/bin/false
tampaknya lebih umum daripada/bin/true
.nologin
sebenarnya dapat ditemukan di/usr/sbin/nologin
nologin
/usr/local/bin/maybe
yang/dev/urandom
memilih antara keduanya. Mungkin saya harus menggunakannya: DMengubah shell login tidak selalu mencegah pengguna melakukan otentikasi (kecuali di beberapa layanan yang memeriksa apakah shell pengguna disebutkan dalam
/etc/shells
).Orang mungkin masih dapat mengautentikasi ke berbagai layanan yang disediakan sistem Anda untuk pengguna unix, dan mungkin masih diizinkan untuk melakukan beberapa tindakan meskipun mungkin tidak menjalankan perintah sewenang-wenang secara langsung.
Mengubah shell ke
/bin/false
atau/usr/sbin/nologin
hanya akan mencegah mereka menjalankan perintah pada layanan-layanan yang dapat digunakan untuk menjalankan perintah (login konsol, ssh, telnet, rlogin, rexec ...), sehingga memengaruhi otorisasi untuk beberapa layanan saja.Untuk
ssh
misalnya, yang masih memungkinkan mereka untuk melakukan port forwarding.passwd -l
akan menonaktifkan otentikasi kata sandi, tetapi pengguna mungkin masih diizinkan untuk menggunakan metode otentikasi lainnya (sepertiauthorized_keys
denganssh
).Dengan
pam
di Linux setidaknya, Anda dapat menggunakanpam_shells
modul untuk membatasi otentikasi atau otorisasi kepada pengguna dengan shell yang diizinkan (yang disebutkan dalam/etc/shells
). Untukssh
, Anda ingin melakukannya diaccount
tingkat otorisasi ( ) seperti untuksshd
penggunaan otentikasipam
selain metode otentikasi lainnya (sepertiauthorized_keys
), atau Anda dapat melakukannya dengansshd_config
arahan dalam/etc/ssh/sshd_config
(sukaAllowUsers
dan teman).Namun berhati-hatilah bahwa menambahkan beberapa batasan dalam otorisasi pam global akan berpotensi mencegah
cron
pekerjaan yang berjalan sebagai pengguna tersebut.sumber
:|
Anda mengedit
/etc/passwd
file dan mengubah shell pengguna dari/bin/bash
, atau/bin/sh
ke/sbin/nologin
sumber
vipw
yang mencegah kesalahan semacam itu.Pertama, nonaktifkan kata sandi, gunakan
passwd -l username
.Perhatikan juga di
man
halamanpasswd
untuk opsi-l
:sumber
Anda dapat menggunakan perintah chsh:
Masukkan detail shell baru saat diminta:
Atau versi lebih pendek:
sumber
Untuk mencegah pengguna masuk dan bahkan otentikasi lebih dari ssh yang memungkinkan penerusan port (seperti dijelaskan di sini Stephane), saya memodifikasi pengguna agar mirip dengan
nobody
pengguna sistem :/etc/shadow
(dengan*
atau!!
pada bidang yang tepat)/etc/passwd
(mis./sbin/nologin
pada bidang yang tepat)/etc/passwd
(mis./
pada bidang yang tepat)sumber