GNU/Linux >> Belajar Linux >  >> Linux

Mengapa pengguna 'bin' memerlukan shell login?

Seorang pengguna yang memiliki shell yang valid dan tanpa kata sandi masih dapat masuk dengan metode berbasis non-kata sandi, yang paling umum adalah kunci ssh. Shell yang valid diperlukan untuk menjalankan tugas cron. Shell yang valid juga diperlukan untuk su bin -c 'wibble' untuk bekerja (setidaknya di Linux, su bin -s /bin/sh -c 'wibble' juga akan berfungsi).

Dalam kasus bin , sebagian besar sistem tidak pernah menjalankan perintah sebagai bin dalam operasi normal, jadi setel shell ke /bin/false akan baik-baik saja.

Tidak ada risiko serangan langsung yang mengizinkan bin untuk masuk melalui SSH, karena itu memerlukan pembuatan /bin/.ssh/authorized_keys sebagai pengguna bin atau sebagai akar. Dengan kata lain, satu-satunya cara untuk masuk adalah dengan masuk. Namun, memiliki shell yang valid memang meningkatkan risiko kesalahan konfigurasi. Itu juga dapat mengizinkan beberapa serangan jarak jauh dengan layanan selain SSH; misalnya pengguna melaporkan bahwa penyerang dapat menyetel kata sandi untuk daemon jarak jauh melalui Samba, lalu gunakan kata sandi itu untuk masuk melalui SSH.

Anda dapat memasang lubang SSH dengan mencantumkan nama pengguna sistem dalam DenyUsers direktif dalam /etc/ssh/sshd_config (sayangnya, Anda tidak dapat menggunakan rentang numerik). Atau, sebaliknya, Anda dapat memasukkan AllowGroups direktif dan hanya mengizinkan grup yang berisi pengguna fisik (mis. users jika Anda memberikan keanggotaan grup tersebut kepada semua pengguna fisik Anda).

Ada bug yang diajukan atas masalah ini di Debian (#274229, #330882, #581899), saat ini terbuka dan diklasifikasikan sebagai “wishlist”. Saya cenderung setuju bahwa ini adalah bug dan pengguna sistem harus memiliki /bin/false sebagai cangkang mereka kecuali tampaknya perlu untuk melakukan sebaliknya.


Anda tidak perlu khawatir tentang mereka sebagai pengguna. Mereka adalah "pengguna" dalam arti grup keamanan, bukan pengguna dalam arti "masuk dan gunakan" orang. Jika Anda melihat di "/etc/shadow", Anda akan melihat bahwa semua "pengguna" ini tidak memiliki kata sandi (baik "x" atau "!" alih-alih hash asin yang panjang). Artinya, pengguna tersebut tidak dapat masuk, apa pun yang terjadi.

Karena itu, saya tidak tahu apakah sebaiknya mengubah "/ bin/sh" menjadi "/ bin/false" untuk semua pengguna ini. Karena program berjalan di bawah grup ini, mungkin tidak memungkinkan mereka untuk menjalankan perintah yang mereka perlukan. Saya akan membiarkannya sebagai "/bin/sh".

Anda tidak perlu khawatir tentang pengguna ini. Hanya khawatirkan pengguna yang Anda buat (dan yang memiliki hash di "/etc/shadow")


Linux
  1. Mengapa Pengguna Root Membutuhkan Izin Sudo?

  2. Jika Proses Mewarisi Lingkungan Induk, Mengapa Kita Perlu Ekspor?

  3. Linux – Mengapa Archlinux Menyimpan Beberapa Pengguna/grup Setelah Penghapusan Paket?

  1. Mengapa Regex Di Bash Hanya Bekerja Jika Itu Adalah Variabel Dan Tidak Secara Langsung??

  2. Apakah Mengubah Swappiness Perlu Reboot?

  3. Mengapa /bin/sh Menunjuk Ke /bin/dash Dan Bukan /bin/bash??

  1. CentOS / RHEL :Cara Mengubah shell login pengguna

  2. Mengapa Anda perlu meletakkan #!/bin/bash di awal file skrip?

  3. Apa perintah *nix untuk melihat shell login default pengguna