Bir Linux kullanıcısının ne yapabileceğini sınırlamak için sınırlı kabuk nasıl kullanılır

Mar 25, 2025
, Linux
Fetmawati Achmad Zaenuri / Shutterstock

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 , veya Satın almak Çevresel değişkenler (ancak mevcut değerleri okuyabilirler).
  • Oku veya değiştir $ Shellopts Kabuk ç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ütmek Kabuk 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ğnemek komuta ve Dosya İzinlerini Değiştirin kullanmak chmod emretmek. 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 kullanamaz ls !

 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 / Bin 
 Sudo LN -s / Bin / Üst / Ev / Minnie / Bin 
 Sudo LN -S / Bin / Uptime / Ana Sayfa / Minnie / Bin 
 Sudo 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.

 Ls 
 Pinky 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ği userdod emretmek.

 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ın 

Kullanmamız gerekiyor chmod ile 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 -R 

Houdini'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.


, Linux - En Popüler Makaleler

Linux'ta SQLite için DB Tarayıcısı Nasıl Kullanılır

, Linux Dec 16, 2024

Fetmawati Achmad Zaenuri / Shutterstock SQLite için DB Tarayıcı Linux'ta SQLite veritabanlarını görüntülemenizi ve düzenlemenizi sağlar. Bu ..


Terminal kullanarak Mac'inizi nasıl kilitlenir

, Linux Feb 16, 2025

Siber güvenliğinin ilk kurallarından biri, bilgisayarınızı her zaman ondan atmadan önce kilitlemektir. En hızlı şekilde olmasa da, Apple Mac'inizi terminal kullanarak kilitleye..


Yeni başlayanlar için Docker: Bilmeniz gereken her şey

, Linux Jun 15, 2025

Liman işçisi Paketlenmiş uygulamaları oluşturur Konteynerler denir. Her konteyner, benzer bir ortam sağlar. sanal makine (Vm). VMS, Docker Konteynerler..


Linux'ta FSCK komutunun nasıl kullanılacağı

, Linux Aug 18, 2025

Pixza Studio / Shutterstock Tüm önemli verilerimiz, bir tür veya başka bir dosya sisteminde oturur ve dosya sistemi sorunları gerçekleşecek. Linux'ta ku..


Linux'ta çekirdekleri nasıl geri alınır

, Linux Sep 30, 2025

Fetmawati Achmad Zaenuri / Shutterstock.com Eğer Linux PC'niz aniden sisteminize bir güncellemeden sonra sorunları varsa, mümkündür. Linux çekir..


Linux çekirdeğinde yeni olanlar 5.14

, Linux Sep 9, 2025

Sean Locke Fotoğrafçılığı / Shutterstock Linux 30 yaşında olduğu gibi, çekirdek 5.14 serbest bırakıldı. Kaput altındaki dahili düzeltmelerin ve ..


Linux süreci bağlantı noktası numarasına göre nasıl öldürülür

, Linux Oct 4, 2025

Bir Linux sürecini öldürmek için kimliğine veya adına ihtiyacınız var. Eğer bildiğiniz tek şey kullandığı bağlantı noktası ise, yine de öldürebilir misiniz? Evet, birkaç far..


7 Hatalar Yeni Linux kullanıcıları (ve bunlardan nasıl kaçınılır)

, Linux Nov 11, 2024

Linux'u öğrenmek, her şeyin küçük bir şeyin bir savaş gibi hissettiği sinir bozucu bir deneyim olabilir. Bu yaygın hatalardan kaçınmak, Linux'un tanıtımını ve benimsenmesini ço..


Kategoriler