Kısıtlı bir kabuk, bir kullanıcı hesabının Linux'ta yapabileceğini sınırlar. Kısıtlı bir kullanıcı rehberlerini değiştiremez ve hangi komutlara eriştiklerini kontrol edersiniz. İşte Linux'ta kısıtlı bir kabuk oluşturulur.
Kısıtlı Kabuklar
Kısıtlı bir kabuk farklı bir kabuk değildir. Bu farklı bir mod standart bir kabuk . NS Basıntı , Korn , Balık ve diğer kabukların hepsi sınırlı kabuk modunda başlayabilir. Bu makalede bash kullanacağız, ancak aynı ilkeler diğer kabukları için geçerlidir.
Sınırlı kabukları standart kabuğunuzu kullanmanın bir başka yolu olduğundan, kurulumu kolaydır. Yüklenecek bir şey yok ve Linux'un olduğu her yerde mevcutlar.
Sınırlı kabuklar, komut dosyalarına da uygulanabilir. Bu, yanlış yazılmışlarsa, kısıtlı dünyalarının sınırlarıyla sınırlıdır ve tüm bilgisayarınıza erişemeyeceklerini sağlar.
Bununla birlikte, kısıtlı kabukların tamamen kaçış korumasız olmasa da farkında olun. Yeterince bilgiye sahip biri kısıtlı bir kabuğa kaçabilir. Günlük bir kullanıcıya güvenli sınırlar koymak için harika, ancak bir üretim sisteminde herhangi bir gerçek dünya güvenliği için kısıtlı kabuklara güvenmeyin.
İLGİLİ: Bash, ZSH ve diğer Linux kabukları arasındaki fark nedir?
Sınırlı bash
Bash'i kısıtlı bir kabuk olarak çalıştırdığınızda, kullanıcının onlardan kaldırılmış bazı yeteneklere sahiptir. Özellikle kullanıcı yapamam :
-
Kullanmak
CDÇalışma dizinini değiştirmek için. -
Değerlerini değiştirmek
$ Yolu,$ Kabuk,$ Bash_env, veyaSatın almakÇevresel değişkenler (ancak mevcut değerleri okuyabilirler). -
Oku veya değiştir
$ ShelloptsKabuk çevre seçenekleri. - Bir komutun çıkışını yönlendirin.
-
Onları bulmak için bir yol gerektiren komutları çağırmak. Yani, bir veya daha fazla ileri eğik çizgi olan bir komut veremezsiniz "
/" içinde. -
Çağırmak
yürütmekKabuk için farklı bir işlemi yerine koymak için. - Sınırlı özelliklerden herhangi birini bir komut dosyasında kullanın.
Kısıtlı bir bash kabuğunu kullanarak değiştirebilirsiniz.
-r
(Sınırlı) seçeneği. Çalışma dizinini değiştirmek gibi basit bir görev yapmaya çalışmak yasaktır. TERSE mesajı size bunu söyler
CD
kısıtlıdır.
Bash -R
CD belgeleri
Bash kabuğu, "bash" yerine "rbash" kullanılarak da çağrıldığını da tespit edebilir. Bu, kısıtlı bir kabuk olarak da başlamasına neden olur. Bu, yakında kullanacağımız belirli bir kullanıcı için varsayılan kabuğunu ayarlamak için uygun bir yol sağlar.
Eğer kullanırsak
nerede
ubuntu için komuta
rahip
Dosyalar, yürütülebilir dosyanın "usr / bin" dizininde olduğunu göreceğiz. Adam sayfası "/ usr / share / man / man1" dizinindedir.
Kullanmak
ls
ile komut
-l
(uzun) seçeneği ortaya koyuyor
rahip
NS
aslında sembolik bir bağlantı
ile
basıntı
.
burada rbash
LS -L / USR / Bin / Rbash
Manjaro ve Fedora'da,
rahip
Sembolik link yaratılmalıdır. Bu her iki dağıtımda da çalışır:
burada rbash
Sudo LN -S / Bin / Bash / Bin / Rbash
burada rbash
İkinci kez kullanıyoruz
nerede
komut, bulur
rahip
"/ usr / bin" dizininde.
Bir kullanıcıyı kısıtlama
Haydi
Yeni bir kullanıcı hesabı oluştur
"Minnie" adında. Kabuğunu kullanarak kısıtlı kabuk olmasını sağlayacağız.
-s
(kabuk) seçeneği
useradd
emretmek. Ayrıca da
Hesabın şifresini ayarlayın
kullanmak
parola
Komut, ve onlar için bir ana klasör oluşturacağız.
NS
-P
(ebeveynler) bayrağı
mkdir
emir anlatıyor
mkdir
Hedef dizini ve oluşturması gereken herhangi bir ebeveyn dizinini oluşturmak için. Bu yüzden "/ Ana Sayfa / Minnie / Bin" dizinini oluşturarak, aynı anda "/ Ana / Minnie" dizini oluştururuz.
Sudo UserAdd Minnie -s / Bin / Rbash
Sudo Passwd Minnie
Sudo MKDIR -P / Home / Minnie / Bin
Minnie giriş yaptığında, kısıtlı bir kabukta çalışıyor olacak.
CD
Bir ileri çizgi eklemek için gereken komutları çağıramaz "
/
":
/ USR / Bin / ping
Ancak, yolda bulunan komutları hala uygulayabilir.
ping
Beklediğiniz davranış bu değil ve kesinlikle istediğimiz şey değil. Kısıtlamaları daha da sıkmak için, Minnie'nin kabuğunun komutları aramak için kullanacağı yolu değiştirmemiz gerekir.
Kısıtlamaları sıkılaştırma
Minnie'nin ana dizinini "/ ev / minnie" yarattığımızda, bir "/ ev / minnie / bin" dizini oluşturduk. Bu, bu dizinin çalındığı yer burasıdır.
Minnie'nin ".bash_profile" dosyasını düzenleyeceğiz ve yalnızca bu dizine işaret etmesini sağlayacağız. Ayrıca Minnie'nin ".bash_profile" dosyasını da kısıtlayacağız, böylece sadece kök onu düzenleyebilir. Bu, başka bir kullanıcının bu dosyayı düzenleyemeyeceği ve yolunu değiştirmediği anlamına gelir.
sudo gedit /home/minnie/.bash_profileLГ102]
![]()
Var olan "yolunu =" düzenleyin veya aşağıdaki satırı ekleyin:
PATH = $ HOME / BIN
![]()
Dosya 'yı kaydet. İyi Dosyanın sahibini değiştirin kullanarak kök
çiğnemekkomuta ve Dosya İzinlerini Değiştirin kullanmakchmodemretmek. Sadece kök kullanıcısı dosyayı düzenleyebilecektir.Sudo Chown Root: Root /home/minnie/.Bash_ProfileLГ102]Sudo chmod 755 /home/minnie/.bash_profileLГ102]ls -l /home/minnie/.bash_profileLГ102]
![]()
Bir sonraki kullanıcı Minnie giriş yaparken, yolu tek bir klasöre işaret ediyor.
![]()
Kısıtlı Kullanıcı Minnie, yalnızca BASH dahili komutları kullanabilir.
Eko,taksi, veçıkış Yap. Hatta kullanamazls!Ls
![]()
Hiç yararlı bir şey yapabilmelerini istiyorsak, Stranglehold'umuzu biraz gevşetmemiz gerekecek. Minnie'nin "bin" dizininden minnie'nin kullanabilmesini istediğimiz komutlara bazı sembolik bağlantılar oluşturacağız.
Sudo LN -S / Bin / LS / Home / Minnie / BinSudo LN -s / Bin / Üst / Ev / Minnie / BinSudo LN -S / Bin / Uptime / Ana Sayfa / Minnie / BinSudo LN -S / Bin / Pinky / Ana Sayfa / Minnie / Bin
![]()
Minnie Sonraki oturum açtığında, BASH dahili komutları ve bağlantılı olan komutları kullanabileceğini bulacaktır.
LsPinky DaveÇalışma süresi
![]()
Mevcut kullanıcıları kısıtlamak
Minnie'yi yeni bir kullanıcı olarak yarattık. NS Mevcut bir kabuğunu değiştirin kullanıcı, kullanabiliriz
-s(kabuk) seçeneğiuserdodemretmek.Sudo Userd -s / Bin / Rbash Mary
![]()
Kullanabilirsiniz
az"/ etc / passwd" dosyasındaki komut, kullanıcının varsayılan kabuğu olarak hangi kabuğun ayarlandığını hızlıca görüntüleyin.Daha az / etc / passwd
![]()
Kullanıcı Mary'nin bir sonraki oturum açtığında kısıtlı kabuğu kullanacağını görebiliriz.
![]()
Kısıtlamak için diğer değişiklikleri uygulamayı unutmayın.
$ YoluÇevre değişkeni ve kullanıcının mary'nin çalıştırılmasını istediğiniz komutları ayarlamak için.Scriptlerin Kısıtlanması
Düzenli, sınırsız bir kullanıcı, kısıtlı bir kabukta yürütülen komut dosyalarını başlatabilir. Aşağıdaki satırları kopyalayın ve bunları bir editöre yapıştırın. Dosyayı "Restrited.Sh" olarak kaydedin ve editörü kapatın.
#! / Bin / bash # Script normal bash kabuğunda başlar echo "## sınırsız modda! ##" Eko echo "Geçerli dizin:` pwd` " echo "dizini değiştirme" CD / USR / Paylaş Echo "şimdi dizinde:` pwd` " Echo "Giriş Dizini Değiştirme" cd ~ Echo "şimdi dizinde:` pwd` " # Ayar Sınırlı Mod set -r Eko echo "## sınırlı modda! ##" Eko echo "Geçerli dizin:` pwd` " echo "Dizin / Ana Sayfa /" CD / HOME echo "hala dizinde:` pwd` " Eko yankı "başka bir kabuğa başlamaya çalışıyor" / bin / bash Eko yankı "Komutu çıktısını yönlendirmeye çalışıyor" ls -L $ ev & gt; my_files.txt cat my_files.txt Eko 0'dan çıkınKullanmamız gerekiyor
chmodile komut+ x(Execute) Bayrağı komut dosyasını çalıştırılabilir hale getirmek için.chmod + x sınırlı.sh
![]()
Komut dosyasının ilk kısmı normal bir kabuğa geçer.
./ kısıtlı.sh
![]()
Script'in ikinci kısmı, "SET -R" satırından sonra biti sınırlı bir kabukta çalışır.
![]()
Denenme işlemlerinin hiçbiri, komut dosyasının sınırlı kısmında başarılı olmaz.
Tüm bir komut dosyası, ekleyerek sınırlı bir kabuğun içinde çalışacak şekilde yapılabilir.
-rİlk satıra:! # / Bin / Bash -RHoudini'yi hatırla
Sınırlı kabuklar kullanışlıdır, ancak tamamen yanılmaz değildir. Yeterince yetenekli bir kullanıcı onlardan kaçabilir. Ancak, adli kullanıldığında, belirli bir hesap için bir dizi sınırlama oluşturmanın faydalı bir yoludur.