Acemi bir Linux kullanıcısı olarak, dosya ve dizinlerle ilişkili izinleri ve sahipliği öğrenirsiniz. Linux/Unix benzeri işletim sistemleri, diğer kullanıcıların gereksiz dosya/dizin erişimini önlemek için dokuz bitlik bir izin kombinasyonu ayarlamanıza izin verir. Bunlara benzer şekilde set UID, set GID ve yapışkan bitler olarak bilinen yürütülebilir dosyalar için özel izinler vardır.
Özel izinleri anlamak, hevesli Linux yöneticileri için biraz bunaltıcı olabilir. Burada normal dosya izinleri hakkında biraz bilgi edinecek ve özel izinlerden nasıl farklı olduklarını açıklayacaksınız. Kapsamlı bir anlayış için örneklerle SetID, GetID ve yapışkan bit işlevlerini de gösteriyoruz.
Normal Linux Dosya İzinleri
Linux kullanır chmod komutu okuma atamak/değiştirmek için (r=4), yazı yazmak (w=2) ve yürütün (x=1) dosya ve klasörlerdeki izinler. Yani, yukarıda bahsedilen dokuz bit, izin gruplarının üç ana kategorisi için geçerlidir. İlk üçü dosyanın sahibi olan kullanıcı içindir, ikinci grup dosya/dizine atanan grup içindir ve son üçü diğer tüm kullanıcıları temsil eder.
Örneğin, normal bir dosya, tüm kullanıcı kategorileri için tüm izin türleri -rwxrwxrwx olarak görünecektir. Harflerin yerine - ise bu iznin bulunmadığını gösterir. Şimdi chmod komutu, izinleri aşağıdaki gibi değiştirmek için sayıları ve harfleri kullanır:
sudo chmod 755 dosyası # rwxr-xr-x için
sudo chmod 644 dosyası #rw-r--r-- için
sudo chmod a-w dosyası #r-xr-xr-x için
sudo chmod a+x dosyası #for --x--x--x
Özel Linux Dosya İzinleri
bu setuid bit, sahibinin yetkisiyle diğer kullanıcılar tarafından çalıştırılabilen yürütülebilir bir dosya üzerindeki izni temsil eder. Örneğin, kullanıcı ne zaman maksimum kullanıcı olarak vi komutunu çalıştırır John, okuma/yazma izinlerine sahip olacaksınız. John.
Setuid ile dosyaları tanımlamak için ls komut verin ve arayın s yürütülebilir bit yerine bit x, aşağıdaki gibi.
UID Bitini Ayarla
bu setuid bit, sahibinin yetkisiyle diğer kullanıcılar tarafından çalıştırılabilen yürütülebilir bir dosya üzerindeki izni temsil eder. Örneğin, kullanıcı ne zaman maksimum vi komutunu şu şekilde çalıştırır: kök, okuma/yazma izinlerine sahip olacaktır. kök. Setuid ile dosyaları tanımlamak için ls komut verin ve arayın s yürütme bitinin yerine bit x, aşağıdaki gibi:
ls -la /etc/passwd
-rwsr-xr-x 1 kök kök 88464 14 Aralık 12:46 passwd
Diğer bazı örnekler şunlardır:
ls -la /bin/gpasswd
-rwsr-xr-x 1 kök kök 88464 14 Temmuz 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 kök kök 67816 21 Tem 2020 su
ls -la /newgrp
-rwsr-xr-x 1 kök kök 44784 14 Temmuz 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 kök kök 166056 19 Ocak 2021 sudo
Yürütülebilir dosyalar için setuid bitini ayarlamak için chmod komutunu aşağıdaki gibi kullanın:
chmod u+s /etc/passwd
Kök olmayan kullanıcılardan veya sahiplerden dosyaları yürütme iznini kaldırmak için:
chmod u-s /etc/passwd
GID Bitini Ayarla
Tartışıldığı gibi, set uid biti diğer kullanıcılara dosya erişimini kontrol ederken setgid (GID) biti ortak dizinler oluşturur. Bu, o dizinde oluşturulan herhangi bir dosyaya dizinin grubu tarafından erişilebilir olduğu anlamına gelir. Bu nedenle, tüm grup üyelerinin, sahibinin ayrıcalıkları olmadan yürütülebilir dosyaları çalıştırmasına izin verir ve bunları diğer kullanıcılardan korur.
Linux sisteminizde ortak bir dizin oluşturmak için şu adımları izleyin:
kullanarak bir grup oluşturun. grup ekle işbirliği için grup kimliği 415 olan komut:
groupadd -g 415 yöneticiler
eklemek için usermod komutunu kullanın. Johndosya erişimi/yürütme için gruba.
usermod -aG yöneticileri john
Kullan mkdir bir dizin oluşturma komutu:
mkdir /tmp/collaborative_dir
Kullan chgrp dizine atama komutu yöneticiler grup:
chgrp yöneticileri /tmp/collaborative_dir
Kullan chmod dizin iznini 2775 olarak değiştirme komutu. 2 bit, kullanıcıya ve gruba tam rwx atamak için set gid'i açar, 7, diğerleri için 5 (r-w).
chmod 2775 /tmp/collaborative_dir
Son olarak, kullanıcı hesabınızı şu şekilde değiştirin: John ve dosya oluştur dosya izinlerini kontrol etmek için ortak dizinde.
su - john
/tmp/collaborative_dir/file.txt öğesine dokunun
su komutu size bir kimlik doğrulama hatası verebilir. Bu durumda, şunu yazın sudo su köke geçme ve yeniden çalıştırma komutu su - john kullanıcı hesabını değiştirmek için
Şimdi dizin ve yeni oluşturulan dosya için ayarlanan GID bit(ler)ini kontrol etmek için izinleri listeleyin.
ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/file.txt
Tipik bir senaryoda, john tarafından oluşturulan bir dosyaya atanmış bir john grubu olacaktır. Dosyayı belirli bir GID bit dizini içinde oluşturduğunuz için, dosyaya izinler atar. yöneticiler grup, gruba ait olan herkes, kullanıcı gibi Chris, buna erişimi olacak.İlişkili: Dokunma Kullanarak Linux'ta Yeni Dosyalar Nasıl Oluşturulur
Yapışkan Uçlar
SID ve GID bitlerinin aksine, yapışkan bitler, dosyaları ve dizinleri diğer kullanıcılar tarafından yeniden adlandırılmaya ve silinmeye karşı koruduğu için işlevsellik açısından farklılık gösterir. Normal dosya izni, yazma erişimi olan herhangi bir kullanıcının dosyayı silmesine veya yeniden adlandırmasına izin verir. Yapışkan bit seti ile dosyanın kök kullanıcısı veya sahibi değilseniz bu mümkün değildir.
Yapışkan bitleri kullanmak için ideal durum senaryosu, dosya oluşturma için tüm kullanıcıların erişebildiği dizindir. Örneğin, ls -ld kontrol etmek için komut \tmp dizin izinleri aşağıdaki gibidir:
Yapışkan bit olduğunu fark edebilirsiniz. T yürütme bitini değiştirir x. Kısıtlı bir silme dizini oluşturmak için verilen talimatları izleyin:
Şimdi başka bir dizin oluşturun /tmp Klasör:
mkdir /tmp/yeni_dir
Dosya izinlerini şu şekilde değiştirin: 1777 yapışkan biti ayarlamak için (T) ve tam dizin erişimi:
chmod 1777 /tmp/new_dir
Şimdi herhangi bir dosyayı kopyalayın /etc klasör /tmp/new_dir ve izinlerini şu şekilde değiştir 666:
cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/hizmetler
İzinleri görüntülemek için dizini ve tüm içeriğini listeleyin:
ls -ld /tmp/new_dir /tmp/new_dir/services
Yürütme biti yerine yapışkan biti fark edebilirsiniz; bu, dosya yapışkan bit dizininin içinde olduğu için yalnızca kök veya kullanıcı john'un dosyayı sebileceği anlamına gelir.
Linux'ta Özel Dosya İzinlerini Anlama
Makale, paylaşılan dosyalar ve dizinler üzerinde işbirliğini geliştirmek ve bunları yetkisiz erişime, yürütmeye ve silmeye karşı korumak için bu bitlerin nasıl ayarlanacağını gösterir. Bu bitlerle dosya/dizin oluşturmasanız bile, özel dosya izinlerini anlamak, özellikle sorun gidermede veya sistem yöneticisi olarak birçok durumda yardımcı olur. Oysa bu bitlerin akılsızca kullanılması çeşitli güvenlik açıklarına neden olabilir.
Linux'ta dosya kopyalarken dosya izinlerini korumak ister misiniz? Bunu cp ve rsync kullanarak nasıl yapacağınız aşağıda açıklanmıştır.
Sonrakini Oku
- Linux
- Dosya yönetimi
- Linux
Rumaisa, MUO'da serbest yazar. Bir Matematikçiden bir Bilgi Güvenliği meraklısına kadar uzun bir yol kat etti ve bir SOC Analisti olarak çalışıyor. İlgi alanları arasında yeni teknolojiler, Linux dağıtımları ve Bilgi Güvenliği ile ilgili her şey hakkında okuma ve yazma yer almaktadır.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın