Debian

Debian 10'da chroot Nasıl Kullanılır

Debian 10'da chroot Nasıl Kullanılır
Bir test ortamında, sistemin geri kalanına zarar vermelerini veya gözetlemelerini önlemek için genellikle belirli uygulamaları korumalı alana almamız gerekir. VirtualBox, VMware, Xen, KVM, vb. gibi, bir programı sandboxing yapmak ve sistemin geri kalanını etkilemesini önlemek için kullanılabilecek farklı araçlar vardır. Ancak, yalnızca bir veya birkaç uygulama için, tüm işletim sistemini korumalı alana almak pratik görünmüyor.

Linux işletim sistemi için, bir uygulamayı korumalı alana almanın daha kolay ve daha hızlı bir yolunu sağlayan chroot olarak bilinen bir araç mevcuttur. Chroot ile sistemin geri kalanını etkilemeden herhangi bir uygulamayı yükleyebilir ve test edebilirsiniz.

Bu makale, birkaç örnekle birlikte Debian 10 Buster'da chroot'un nasıl kullanılacağını açıklayacaktır. Açıklama için, bash ve “ls”, “ip” ve “pwd” komutları gibi bazı komutlar için bir chroot ortamı oluşturacağız.

chroot Nedir??

Chroot aracı, Linux'ta bir uygulamanın kök dizinini başka bir dizine değiştiren bir komuttur. Bu yeni kök dizinde çalışan işlemler, bunun dışındaki dosyalara erişemez. Bu nedenle, uygulamaların işlemlerini sistemin geri kalanından izole eder.

chroot Nasıl Çalışır??

Chroot, uygulamayı ve tüm yürütülebilir dosyalarını ve bağımlılıklarını alternatif kök dizine kopyalayarak çalışır. Daha sonra uygulamayı bu alternatif kök dizinden çalıştırarak uygulamanın onu orijinal kök dizin olarak kabul etmesine neden olur. Kök dizin, hiyerarşide en üstteki dizindir ve hiçbir uygulama bu dizinden daha yükseğe ulaşamaz, bu nedenle chroot, uygulamayı sistemin geri kalanından bu şekilde yalıtır.

Kullanım Durumları

Sözdizimi

Aşağıdaki, chroot komutunun temel sözdizimidir:

$ chroot komut

Bir chroot ortamı kurmak üzere Debian'da chroot komutunu kullanmak için aşağıdaki adımları izleyin.

1. Alternatif Bir Kök Dizin Oluşturun

İlk olarak, chroot ortamı için kullanılacak alternatif bir kök dizini oluşturun.

$ sudo mkdir ~/new_root

Yukarıdaki komut, new_root altındaki dizin Ev chroot ortamında kök dizin olarak kullanılacak dizin.

2. Temel Dizinler Ekle

altında “bin”, “lib” ve “lib64” dizinlerini oluşturun ~/yeni_kök dizin:

$ sudo mkdir -p ~/new_root/bin,lib,lib64

3. Program İkili Dosyalarını Kopyala

Bir uygulamayı chroot ortamında çalıştırmak için gereken her şeyin alternatif kök dizinde olması gerekir. Bu yazıda, bash ve “ls”, “ip” ve “pwd” komutları dahil bazı komutlar için bir chroot ortamı oluşturacağız. Bu nedenle, ikili dosyaları kopyalayacağız /çöp Kutusu alternatif dizine ~/yeni_kök/bin dizin. Komutların ikili dosyalarını bulmak için hangi komutu kullanın:

$ hangi bash ls ip pwd

Ardından, komutların ikili dosyalarını kopyalayın ~/yeni_kök/bin dizin.

$ sudo cp -v /bin/bash,ls,ip,pwd  ~/new_root/bin

4. Program Bağımlılıklarını Kopyala

Ayrıca programımızın hangi bağımlılıklara ihtiyacı olduğunu bulmamız gerekecek. İlk önce, bu bağımlılıkların ne olduğunu bulmamız gerekecek ve sonra onları kopyalayacağız ~/new_root/lib dizini.

Bash için Bağımlılıkları Kopyalama

İlk olarak, bash programının bağımlılıklarını bulun:

$ ldd /bin/bash

Ardından, bu bağımlılıkları kopyalayın ~/new_root/lib dizin.

$ cp -v /lib/x86_64-linux-gnu/libtinfo.yani.6,libdl.yani.2,libc.yani.6 ~/new_root/lib

/lib64 dosyaları için, bunları klasöre kopyalayın ~/new_root/lib64 dizin.

$ cp -v /lib64/ld-linux-x86-64.yani.2 ~/new_root/lib64

ls Komutu için Bağımlılıkları Kopyala

İlk önce, ls komutunun bağımlılıklarını bulun:

$ ldd /bin/ls

Ardından, bu bağımlılıkları kopyalayın ~/new_root/lib dizin.

$ sudo cp -v /lib/x86_64-linux-gnu/libselinux.yani.1,libc.yani.6, libpcre.yani.3,
libdl.yani.2,libpthread.yani.0 /lib64/ld-linux-x86-64.yani.2 ~/new_root/lib

/lib64 dosyaları için, bunları klasöre kopyalayın ~/new_root/lib64 dizin.

$ sudo cp -v /lib64/ld-linux-x86-64.yani.2 ~/new_root/lib64

ip Komutu için Bağımlılıkları Kopyala

İlk olarak, ip komutunun bağımlılıklarını bulun:

$ ldd /bin/ip

Ardından, bu bağımlılıkları kopyalayın ~/new_root/lib dizin.

$ cp -v /lib/x86_64-linux
gnu/libselinux.yani.1, özgürlük.yani.1,libmnl.yani.0,libcap.yani.2,libdl.yani.2,libc.yani.6,
libpcre.yani.3,libz.yani.1,libp iş parçacığı.yani.0 ~/new_root/lib

/lib64 dosyaları için, bunları klasöre kopyalayın ~/new_root/lib64 dizin.

$ sudo cp -v /lib64/ld-linux-x86-64.yani.2 ~/new_root/lib64

pwd Komutu için Bağımlılıkları Kopyala

İlk olarak, pwd komutunun bağımlılıklarını bulun:

$ ldd /bin/pwd

Ardından, bu bağımlılıkları kopyalayın ~/new_root/lib dizin.

$ sudo cp -v /lib/x86_64-linux-gnu/libc.yani.6  ~/new_root/lib

/lib64 dosyaları için, bunları klasöre kopyalayın ~/new_root/lib64 dizin.

$ sudo cp -v /lib64/ld-linux-x86-64.yani.2 ~/new_root/lib64

Alternatif kök dizindeki tüm dizinleri görüntülemek için aşağıdaki komutu kullanın:

$ ls -R

5. Alternatif Kök Dizine Geç

Artık nihayet yeni chroot ortamımıza geçmeye hazırız. Kök dizini değiştirmek için kabukta aşağıdaki komutu kök ayrıcalıklarıyla çalıştırın:

$ sudo chroot ~/new_root /bin/bash

Nerede ~/yeni_kök alternatif kök dizinimizdir ve /bin/bash chroot ortamını kurmak için kullandığımız uygulamadır.

Yukarıdaki komutu çalıştırdıktan sonra, bash isteminin değiştiğini göreceksiniz bash-x.y bizim durumumuzda olan bash-5.0 (nerede 5.0, bash sürüm numarasıdır).

Not: benim yaptığım gibi chroot komutunu çalıştırdıktan sonra aşağıdaki hatayla karşılaşabilirsiniz:

Bu hata oluşursa, gerekli programla ilgili tüm kitaplıkları ve yürütülebilir dosyaları yeni kök dizine eklediğinizden emin olun.

Chroot ortamına girdikten sonra sadece içindeki dosyaya erişebileceksiniz. Bazı yerleşik komutlar da dahil olmak üzere chroot ortamınız için kurduğunuz komutları çalıştırmayı deneyin. Çalıştırarak yerleşik komutları bulabilirsiniz Yardım kabuktaki komut.

Görüyorsunuz, “ls”, “pw” ve “ip” komutlarını denedik ve hepsi başarılı oldu. Bu üç komut ve yerleşik komutlar dışında herhangi bir komut çalıştırırsak, chroot ortamı için ayarlamadığımız için komut başarısız olacaktır. Aşağıdaki ekran görüntüsünde görebileceğiniz gibi, “touch”, “ping” ve “clear” komutlarını çalıştırmayı denedik ve hepsi başarısız oldu.

6. chroot'tan çık

chroot ortamından çıkmak için çıkış komut.

Sonuç

Bu yazıda chroot'un ne olduğunu ve Linux'ta nasıl çalıştığını öğrendiniz. Bu makale, bash ve diğer komutlar için bir chroot ortamı oluşturmak için Debian 10 Buster'da chroot'un nasıl kullanılacağını adım adım gösterdi. Şimdi, bir işlemin kök dizinini ve alt işlemlerini değiştirmek ve bunları sistemin geri kalanından izole etmek için chroot komutunu rahatça kullanabilirsiniz.

Linux için En İyi Gamepad Eşleme Uygulamaları
Tipik bir klavye ve fare giriş sistemi yerine bir gamepad ile Linux'ta oyun oynamayı seviyorsanız, sizin için bazı faydalı uygulamalar var. Çoğu PC oy...
Linux Oyuncuları için Faydalı Araçlar
Linux'ta oyun oynamayı seviyorsanız, oyun deneyimini geliştirmek için Wine, Lutris ve OBS Studio gibi uygulamaları ve yardımcı programları kullanmış o...
Daha Önce Bir Linux Sürümü Olmayan Linux için HD Remastered Oyunlar
Birçok oyun geliştiricisi ve yayıncısı, franchise'ın ömrünü uzatmak için eski oyunların HD remaster'ı ile geliyor, lütfen modern donanımla uyumluluk i...