Apa itu / bin / rbash?

14

Saya belajar tentang program shell umum .

Ketika saya berlari cat /etc/shells, ini menunjukkan:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Ada apa /bin/rbashdisini Apakah ini digunakan dalam skrip?

bunga aster
sumber
6
Bagian mana man rbashyang tidak jelas?
Stig Hemmer
1
@StigHemmer. Saya tidak melakukannya. man rbashjuga memberi saya informasi detail. Terima kasih.
Daisy
3
Membaca halaman manual harus selalu menjadi upaya pertama Anda untuk memahami alat. Anda juga harus membacanya di mesin di mana ia muncul untuk memastikan Anda membaca tentang versi yang benar.

Jawaban:

16

Dari wikipedia

Shell terbatas adalah shell Unix yang membatasi beberapa kemampuan yang tersedia untuk sesi pengguna interaktif, atau skrip shell, berjalan di dalamnya. Ini dimaksudkan untuk memberikan lapisan keamanan tambahan, tetapi tidak cukup untuk memungkinkan eksekusi perangkat lunak yang sepenuhnya tidak dipercaya. Operasi mode terbatas ditemukan di cangkang Bourne asli [1] dan bash lawannya kemudian, [2] dan di cangkang Korn. [3] Dalam beberapa kasus shell terbatas digunakan bersama dengan chroot jail, dalam upaya lebih lanjut untuk membatasi akses ke sistem secara keseluruhan.

Lihat jawaban Soren A untuk batasan yang berlaku untuk cangkang terbatas.

Anda dapat menjalankan bashdalam mode terbatas

bash -r
bash --restricted

Di sistem saya:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

Jadi jika saya berlari /bin/rbash, saya berlaribash

TAPI

Cukuplah untuk membuat tautan bernama rbash yang menunjuk langsung ke bash. Meskipun ini memanggil bash secara langsung, tanpa opsi -ratau --restricted, bash mengenali bahwa itu dipanggil melalui rbash dan muncul sebagai shell yang dibatasi.

Karena Anda dapat dengan mudah menguji:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted
Zanna
sumber
1
Tampak banyak batasan. Lalu bagaimana ini membantu? Apakah itu digunakan dalam skrip?
Daisy
3
Ini dapat ditetapkan sebagai shell default untuk pengguna yang ingin Anda jebak di direktori tertentu, misalnya @passa
Zanna
2
@passa yang bukan skrip, dan shell terbatas tidak berguna untuk skrip. Karena Anda tahu, atau dapat menentukan, tindakan apa yang dilakukan dalam skrip, tidak ada gunanya menggunakan shell yang dibatasi untuk skrip.
muru
@uru Oke. Jadi ini bisa digunakan untuk tujuan yang dikatakan zanna dalam komentarnya.
Daisy
1
Ini bermanfaat bagi administrator sistem karena dapat mencegah pengguna lain melakukan tugas berbahaya. Ini agak kurang bermanfaat bagi pengguna akhir.
17

rbash adalah versi terbatas dari bash bash. Lihat artikel ini: https://en.wikipedia.org/wiki/Restricted_shell

Dari artikel:

Operasi berikut tidak diizinkan dalam shell terbatas:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

bash menambahkan batasan lebih lanjut, termasuk:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

Pembatasan dalam shell Korn terbatas hampir sama dengan yang ada di shell Bourne terbatas.

Soren A
sumber