Bagaimana Anda mengizinkan pengguna untuk masuk menggunakan " su -
pengguna " tetapi mencegah pengguna dari masuk menggunakan SSH?
Saya mencoba mengatur shell /bin/false
tetapi ketika saya mencoba su
tidak berhasil.
Apakah ada beberapa cara untuk hanya mengizinkan login su
?
Apakah SSH adalah AllowUser
cara untuk pergi? (Bagaimana saya melakukan ini jika itu cara untuk pergi)
su - -s /bin/bash user
Jika Anda masih ingin su bekerja, Anda dapat menggunakan
sudo -u [username]
atau meneruskan-s /bin/bash
su sebagai shell sementara. Mereka berdua melakukan hal yang sama tanpa adanya shell/etc/passwd
.sumber
Jika sebuah akun tidak memiliki kata sandi ( passwd -d nama pengguna ), mereka tidak dapat masuk secara interaktif (konsol, SSH, dll.). Jika mereka memiliki shell yang valid, su masih akan berfungsi. Perhatikan "secara interaktif,"; jika seseorang memutuskan untuk mengatur keypair SSH untuk akun tersebut, itu akan berhasil!
sumber
Dalam sshd_config tambahkan baris
DenyUser [username]
Perhatikan bahwa ini tidak akan mencegah pengguna untuk masuk melalui konsol.
sumber
DenyUsers
, dengan 's'.Selain apa yang telah disebutkan di atas (menonaktifkan dan / atau tidak mengatur kata sandi pengguna), modul pam_access (mencari halaman manual pada pam_access dan access.conf) dapat digunakan untuk mengontrol akses login.
sumber
seperti yang orang lain katakan;
DenyUser username
atauDenyGroup groupname
disshd_config
akan mencegah login keypair / kata sandi melalui ssh.meskipun saya biasanya melakukan sesuatu seperti
AllowGroup ssh
atau sesuatu di sepanjang garis itu, dan secara eksplisit menambahkan orang yang membutuhkan akses ssh ke grup itu.kemudian, Anda dapat melakukan apa yang dikatakan orang lain:
passwd -d username
untuk mengosongkan kata sandi pengguna, sehingga mereka tidak dapat masuk di konsol, atau dengan cara lain. atau lebih baik lagipasswd -l username
untuk 'mengunci' akun. mungkin ssh akan menolak akses ke akun yang terkunci, bahkan dengan kunci, tapi saya tidak positif.sumber
Seperti yang saya sebutkan dalam komentar, saya pikir Anda masih dapat masuk ke akun dengan shell yang tidak valid. Jadi jika Anda mengatur shell pengguna ke / dev / null atau apa pun shell bin itu, Anda harus tetap su ke pengguna itu ... tetapi setiap upaya untuk masuk dengan cara apa pun akan menghentikan Anda kembali ...
sumber
edit / etc / shadow dengan menambahkan! ke awal kata sandi.
Ketika mengamankan instalasi baru, ini adalah hal pertama yang saya lakukan setelah menginstal sudo, jadi tidak ada yang dapat menggunakan pengguna root untuk login atau ssh ke dalam sistem, pengguna sudo masih dapat mengeksekusi sebagai pengguna root.
sumber
Jangan tentukan kata sandi untuk pengguna yang tidak diizinkan masuk atau menghapusnya.
sumber
Dengan asumsi Anda hanya ingin su pengguna dari akun root, dan nonaktifkan semua akses lainnya:
Gunakan ini (jalankan sebagai root):
Ini menonaktifkan login kata sandi (seperti yang disarankan oleh banyak jawaban lain), tetapi akun ini juga kedaluwarsa . Anda tidak dapat masuk ke akun yang kadaluarsa, misalnya dengan kunci SSH. Anda masih bisa
su user
, meskipun itu akan menampilkan pemberitahuan bahwa akun telah kedaluwarsa.sumber
Mengetahui mekanisme mana yang terbaik tergantung pada persyaratan. Jika Anda mengetahui persyaratannya, Anda dapat memilih mekanisme yang sesuai. Semua jawaban di atas valid untuk beberapa set persyaratan.
Apakah Anda hanya ingin membatasi akses SSH? Apakah Anda memerlukan akses untuk metode surat atau ssh? Apakah akses hanya dari root?
su - user
akan membutuhkan kata sandi untuk pengguna jika dijalankan menjadi pengguna selain root. Namun,sudo -u user -i
tidak memerlukan kata sandi untuk pengguna.sumber