LShell atau Limited Shell ditulis dalam python untuk membatasi pengguna untuk serangkaian perintah dan direktori tertentu. Anda dapat membuat lingkungan pengguna dengan akses terbatas, Anda juga dapat mengaktifkan perintah penonaktifan melalui akses SSH.
Instal Shell Terbatas
Gunakan perintah berikut untuk menginstal paket LShell pada sistem berbasis Debian Anda. Untuk sistem operasi lain, Anda perlu Google untuk paket lshell untuk distribusi Anda.
$ sudo apt-get install lshell
Ganti Pengguna ke LShell
Sekarang atur LShell sebagai shell default untuk pengguna yang Anda perlukan. Misalnya untuk mengganti shell user sarah.
$sudo chsh sarah Changing the login shell for sarah Enter the new value, or press ENTER for the default Login Shell [/bin/lshell]:/usr/bin/lshell
Anda juga dapat mengatur lshell sebagai shell default untuk pengguna selama pembuatan akun pengguna sebagai berikut.
$ sudo adduser --shell /usr/bin/lshell raj
Konfigurasikan LShell
Sekarang mulai dengan konfigurasi lshell. Edit file konfigurasi lshell /etc/lshell.conf . Ada 4 bagian dasar dalam file konfigurasi.
[global] : Di bagian ini kami mendefinisikan pengaturan yang diterapkan secara global. Misalnya log.[bawaan] : Di bagian ini kami menetapkan nilai default yang diterapkan semua pengguna dan grup. Pengaturan bagian ini dapat diganti dengan pengaturan khusus pengguna dan grup. [NAMA PENGGUNA] : Di bagian ini kami menentukan pengaturan khusus pengguna. Setelan bagian ini hanya berlaku untuk pengguna [grp:GROUPNAME] : Di bagian ini kami menentukan pengaturan khusus grup. Setelan bagian ini berlaku untuk semua pengguna grup
A [bawaan] profile diterapkan untuk semua pengguna yang menggunakan lshell. Anda dapat membuat [nama pengguna] bagian atau grup [grp:groupname] bagian untuk menyesuaikan pengguna dan preferensi khusus grup.
Urutan prioritas adalah Pengguna>> Grup>> Bawaan . Bagian pengguna memiliki prioritas tertinggi dan Default memiliki prioritas terendah.
[global] logpath : /var/log/lshell/ loglevel : 2[default] allowed : ['ls','pwd','cd','cat','cp'] forbidden : [';', '&', '|','`','>','<', '$(', '${'] sudo_commands : ['ls', 'more'] warning_counter : 2 aliases : {'ll':'ls -l', 'vim':'rvim'} prompt : "%[email protected]%h" timer : 0 path : ['/home', '/usr'] env_path : ':/usr/bin/usr/local/bin' env_vars : {'foo':1, 'bar':'helloworld'} scp : 1 # or 0 sftp : 1 # or 0 overssh : ['rsync','ls'] strict : 0 history_file : "/home/%u/.lshell_history"[grp:wheel] warning_counter : 5 overssh : - ['ls'][raj] allowed : 'all' - ['su','rm','mv'] path : ['/etc', '/usr'] - ['/usr/local'] home_path : '/home/raj'[sarah] allowed : + ['ping'] - ['ls'] path : - ['/usr/local'] strict : 1 scpforce : '/home/sarah/uploads/'
Misalnya Pengguna 'rja' dan pengguna 'sarah' keduanya termasuk dalam grup UNIX 'roda':
Roda grup:
- Pengguna grup roda memiliki penghitung peringatan yang disetel ke 5
- Pengguna grup roda tidak diperbolehkan menggunakan perintah 'ls'.
Raj pengguna:
- Dapat mengakses /etc dan /var tetapi tidak /usr/local
- Dapat mengakses semua perintah dalam perintah eksecpt PATH – su, rm, vm
- memiliki penghitung peringatan yang disetel ke 5 [default]
- jalur rumahnya disetel ke '/home/raj'
Sarah pengguna:
- Dapat mengakses /home dan /usr tetapi tidak /usr/local
- diizinkan perintah default 'ping' tetapi tidak 'ls'
- ketat diatur ke 1 (dia tidak diperbolehkan mengetik perintah yang tidak dikenal)
Nama opsi | Penjelasan |
---|---|
direktori log (default /var/log/lshell/ ) | |
setel level log ke 0, 1, 2, 3 atau 4 (0:tidak ada log, 1:paling tidak verbose, 4:log semua perintah) | |
mengonfigurasi nama file log (defaultnya adalah %u yaitu nama pengguna.log) | |
daftar perintah yang diizinkan atau 'semua' untuk mengizinkan semua perintah di PATH pengguna | |
daftar karakter atau perintah terlarang — tolak vim, karena memungkinkan untuk keluar dari lshell | |
daftar perintah yang diizinkan untuk digunakan dengan sudo(8) | |
jumlah peringatan saat pengguna memasukkan nilai terlarang sebelum keluar dari lshell, setel ke -1 untuk menonaktifkan. | |
daftar alias perintah (mirip dengan perintah alias bash) | |
teks pengantar untuk dicetak (saat memasukkan lshell) | |
konfigurasikan promt Anda menggunakan %u atau %h (default:nama pengguna) | |
setel perintah sortir pembaruan direktori saat ini (default:0) | |
nilai dalam detik untuk pengatur waktu sesi | |
daftar jalur untuk membatasi pengguna “secara geografis” | |
setel folder beranda pengguna Anda | |
mengatur variabel lingkungan $PATH pengguna | |
daftar jalur; semua file yang dapat dieksekusi di dalam jalur ini akan diizinkan | |
tambahkan variabel lingkungan | |
mengizinkan atau melarang penggunaan scp (set ke 1 atau 0) | |
larang upload scp | |
larang download scp | |
bolehkan melarang penggunaan sftp (set ke 1 atau 0) | |
daftar perintah yang diizinkan untuk dieksekusi melalui ssh | |
keketatan pencatatan. 1 untuk perintah yang tidak dikenal dianggap sebagai terlarang dan 0 sebagai tidak diketahui | |
memaksa file yang dikirim melalui scp ke direktori tertentu | |
ukuran maksimum file riwayat | |
setel nama file riwayat (defaultnya adalah /home/%u/.lhistory) | |
menentukan skrip yang akan dijalankan saat pengguna masuk |