Bayangkan skenario ini. Anda ingin mengizinkan pengguna untuk hanya melakukan tugas tertentu dan menjalankan perintah tertentu. Pengguna tidak boleh mengubah variabel/jalur lingkungan. Dia tidak dapat mengunjungi direktori lain kecuali direktori home-nya dan tidak dapat beralih ke pengguna lain dll. Pengguna hanya dapat menjalankan beberapa perintah yang diberikan oleh administrator sistem. Apakah itu mungkin? Ya! Di sinilah Cangkang Terbatas datang membantu. Menggunakan Restricted Shell, kita dapat dengan mudah membatasi akses pengguna ke sistem Linux. Setelah Anda menempatkan pengguna dalam mode shell terbatas, mereka hanya diizinkan untuk menjalankan serangkaian perintah terbatas. Dalam tutorial singkat ini, kita akan berbicara tentang bagaimana melakukan ini di Linux. Saya menguji panduan ini di server minimal CentOS 7. Namun, Ini akan bekerja pada sebagian besar distribusi mirip Unix.
Apa itu Cangkang Terbatas?
Pertama, izinkan saya menjelaskan apa sebenarnya Restricted Shell itu. Ini bukan shell terpisah seperti Bash, Korn Shell dll. Jika Anda memulai shell yang ada menggunakan opsi "rbash", "--restricted", "-r", maka shell tersebut akan menjadi Restricted shell. Misalnya, shell Bourne dapat dimulai sebagai shell terbatas dengan perintah bsh -r , dan kulit Korn dengan perintah ksh -r .
Shell yang Dibatasi akan membatasi pengguna dari menjalankan sebagian besar perintah dan dari mengubah direktori kerja saat ini. Shell yang Dibatasi akan memberlakukan pembatasan berikut kepada pengguna:
- Ini tidak akan memungkinkan Anda untuk mengeksekusi cd memerintah. Jadi tidak bisa kemana-mana. Anda cukup tinggal di direktori kerja saat ini.
- Ini tidak akan memungkinkan Anda untuk mengubah nilai dari $PATH , $SHELL , $BASH_ENV atau $ENV variabel lingkungan.
- Ini tidak akan memungkinkan Anda untuk menjalankan program yang berisi karakter /(garis miring). Misalnya, Anda tidak dapat menjalankan /usr/bin/uname atau ./uname memerintah. Namun Anda dapat menjalankan perintah uname. Dengan kata lain, Anda diizinkan untuk menjalankan perintah di jalur saat ini saja.
- Anda tidak dapat mengarahkan ulang output menggunakan ‘ > ’, ‘ >| ’, ‘ ’, ‘ >& ’, ‘ &> ’, dan ‘ >> ’ operator pengalihan.
- Ini tidak akan memungkinkan Anda untuk keluar dari mode shell terbatas dalam skrip.
- Ini tidak akan memungkinkan Anda untuk mematikan mode shell terbatas dengan 'set +r' atau 'setel +o dibatasi' .
Ini bisa sangat berguna ketika sejumlah besar pengguna menggunakan sistem bersama. Jadi, Jika Anda ingin mengizinkan pengguna untuk menjalankan hanya perintah tertentu, Cangkang Terbatas adalah salah satu cara untuk melakukan ini.
Batasi Akses Pengguna Ke Sistem Linux Menggunakan Shell Terbatas
Pertama, buat symlink bernama rbash dari Bash seperti yang ditunjukkan di bawah ini. Perintah berikut harus dijalankan sebagai root pengguna.
# ln -s /bin/bash /bin/rbash
Selanjutnya, buat pengguna bernama "ostechnix" dengan bash sebagai shell login defaultnya.
# useradd ostechnix -s /bin/rbash
Setel sandi untuk pengguna baru.
# passwd ostechnix
Buat tempat sampah direktori di dalam folder beranda pengguna baru.
# mkdir /home/ostechnix/bin
Sekarang, kita perlu menentukan perintah mana yang dapat dijalankan pengguna.
Di sini, saya akan membiarkan pengguna menjalankan hanya "ls" , "mkdir" , dan "ping" perintah. Anda dapat menetapkan perintah apa pun pilihan Anda.
Untuk melakukannya, jalankan perintah berikut:
# ln -s /bin/ls /home/ostechnix/bin/ls
# ln -s /bin/mkdir /home/ostechnix/bin/mkdir
# ln -s /bin/ping /home/ostechnix/bin/ping
Sekarang, Anda mengerti mengapa kami membuat direktori "bin" pada langkah sebelumnya. Pengguna tidak dapat menjalankan perintah apa pun kecuali tiga perintah di atas.
Selanjutnya, cegah pengguna mengubah .bash_profile .
# chown root. /home/ostechnix/.bash_profile
# chmod 755 /home/ostechnix/.bash_profile
Edit /home/ostechnix/.bash_profile berkas:
# vi /home/ostechnix/.bash_profile
Ubah variabel PATH seperti di bawah ini.
[...] PATH=$HOME/bin [...]
Tekan ESC kunci dan ketik :wq untuk menyimpan dan menutup file.
Sekarang ketika pengguna masuk, shell terbatas (rbash) akan berjalan sebagai shell login default dan membaca .bash_profile , yang akan menyetel PATH ke $HOME/bin sehingga pengguna hanya dapat menjalankan ls , mkdir dan ping perintah. Shell yang dibatasi tidak akan mengizinkan pengguna untuk mengubah PATH , dan izin pada .bash_profile tidak akan mengizinkan pengguna untuk mengubah lingkungan untuk melewati batasan selama sesi login berikutnya.
Memverifikasi Rbash
Sekarang, keluar dari pengguna root dan masuk kembali dengan pengguna yang baru dibuat yaitu ostechnix dalam kasus kami.
Kemudian, jalankan beberapa perintah untuk memeriksa apakah itu berfungsi atau tidak. Misalnya, saya ingin menghapus Terminal.
Untuk melakukannya, saya menjalankan:
$ clear
Contoh keluaran:
-rbash: clear: command not found
Anda tidak dapat menggunakan cd perintah untuk mengubah ke direktori yang berbeda.
$ cd /root
Contoh keluaran:
-rbash: cd: restricted
Anda juga tidak dapat mengalihkan output menggunakan > operator.
$ cat > file.txt
Contoh keluaran:
-rbash: file.txt: restricted: cannot redirect output
Pengguna "ostechnix" hanya diperbolehkan menggunakan perintah yang diberikan oleh Anda (admin sistem, tentu saja). Dalam kasus kami, pengguna dapat menjalankan perintah ls, mkdir dan ping.
$ ls
$ mkdir ostechnix
$ ping -c 3 google.com
Terlepas dari tiga perintah ini, pengguna tidak dapat melakukan apa pun. S/Dia sepenuhnya di bawah kendali Anda.
Bacaan yang disarankan:
- Cara Memantau Aktivitas Pengguna di Linux
Izinkan perintah baru untuk pengguna
Jika Anda ingin menetapkan lebih banyak perintah ke pengguna, keluar dari pengguna saat ini dan kembali ke root pengguna lagi dan tetapkan perintah seperti yang ditunjukkan di bawah ini.
Misalnya, untuk mengizinkan pengguna (yaitu ostechnix) untuk mengeksekusi rm perintah, jalankan perintah berikut sebagai root pengguna.
# ln -s /bin/rm /home/ostechnix/bin/rm
Sekarang pengguna dapat menggunakan perintah "rm".
Untuk detail lebih lanjut, lihat halaman manual di tautan yang diberikan di bawah ini.
- Halaman manual Rbash