- Kullanıcı, grup ve izin modeli nasıl işler?
- Kullanıcı ve grup oluşturma, değiştirme, silme
- chmod ve chown ile izinleri değiştirmek
- Paylaşılan klasörler: setgid, sticky bit ve umask
- Adım adım örnek: ekip paylaşım dizini kurmak
- Sık hatalar ve kontrol listesi
- Bu beceriyi Mindset programlarında nerede çalışırsınız?
- Sık sorulan sorular
Linux'ta kullanıcı, grup ve izinler nasıl yönetilir
useradd, usermod, chmod, chown, setgid ve umask ile Linux'ta kullanıcı, grup ve izinleri adım adım yönetin; sık hataları ve kontrol listesini görün.
Kullanıcı, grup ve izin modeli nasıl işler?
Linux'ta her dosyanın bir sahibi, bir sahip grubu ve herkes için ayrı tanımlı okuma, yazma ve çalıştırma izinleri vardır. Bir süreç dosyaya eriştiğinde çekirdek sırayla bakar: süreç dosyanın sahibi mi, sahip grubun üyesi mi, değilse "diğerleri" kategorisine girer. İlk eşleşen kategorinin izni uygulanır; yani sahibin izni kısıtlıysa grubun geniş izni sahibe yardımcı olmaz.
Hesap bilgileri /etc/passwd, /etc/shadow ve /etc/group dosyalarında tutulur. Parola özetleri yalnızca yetkili kullanıcının okuyabildiği shadow dosyasındadır. Bu dosyaları elle düzenlemek yerine useradd, usermod, userdel ve groupadd gibi araçları kullanmak hem tutarlılığı korur hem de ev dizini, grup üyeliği ve parola yaşlandırma ayarlarını doğru bağlar.
Kimin kim olduğunu görmek için id komutunu kullanın: kullanıcı kimliğini, birincil grubu ve ek grupları gösterir. Yetki sorunlarında ilk bakılacak yer çoğu zaman budur; çünkü grup üyeliği oturum açıldığında alınır ve sonradan eklenen grup yeni oturum açılana kadar etkisini göstermez.
Kullanıcı ve grup oluşturma, değiştirme, silme
Temel akış şöyledir. Yeni bir kullanıcı ev dizini ile birlikte oluşturulur, parolası belirlenir ve gerekli gruplara eklenir:
- useradd -m ayse
- passwd ayse
- groupadd muhasebe
- usermod -aG muhasebe ayse
Burada kritik detay -aG bayrağıdır. Yalnızca -G yazarsanız kullanıcının ek grup listesi verdiğiniz değerle değiştirilir ve önceki üyelikler silinir. -a (append) eklemeyi sağlar. Bu hata, bir yöneticinin yanlışlıkla kendi sudo yetkisini düşüren gruptan çıkarılmasına yol açabilir.
Kullanıcıyı kaldırırken userdel kullanılır; ev dizinini ve posta kutusunu da silmek için -r eklenir. Silmeden önce hesabı kilitlemek (usermod -L) daha güvenli bir ilk adımdır: kullanıcı oturum açamaz ama dosyaları ve sahiplikleri yerinde kalır. Parola yaşlandırma ve hesap sona erme ayarlarını chage ile görüntüleyip değiştirirsiniz; chage -l kullanıcı adı çıktısı mevcut politikayı gösterir.
Yönetici yetkisi için kullanıcıyı doğrudan root yapmak yerine sudo kullanın. Red Hat tabanlı sistemlerde wheel grubuna eklemek, sudo yetkisi vermenin yaygın yoludur. Ayrıntılı kurallar için visudo ile düzenleme yapın; bu araç sözdizimini kaydetmeden önce denetler.
chmod ve chown ile izinleri değiştirmek
ls -l çıktısındaki ilk sütun izinleri gösterir: dosya türünü belirten bir karakter, ardından sahip, grup ve diğerleri için okuma, yazma, çalıştırma üçlüleri. İzinleri iki biçimde değiştirebilirsiniz.
Sembolik biçim neyi değiştirdiğinizi anlaşılır kılar: chmod g+w rapor.txt gruba yazma ekler, chmod o-rwx rapor.txt diğerlerinden tüm izinleri kaldırır, chmod u+x betik.sh sahibe çalıştırma verir. Sekizlik biçim ise tüm izin kümesini tek seferde yazar: okuma dört, yazma iki, çalıştırma bir değerindedir ve toplanarak her kategori için tek rakam oluşur. Örneğin chmod 640 rapor.txt sahibe okuma ve yazma, gruba okuma, diğerlerine hiçbir şey verir.
Sahiplik için chown kullanılır: chown ayse:muhasebe rapor.txt sahibi ve grubu birlikte değiştirir; dizin ağacında -R ile özyinelemeli çalışır. Özyinelemeli komutları çalıştırmadan önce yolun doğruluğunu yeniden kontrol edin; yanlış dizinde chown -R sistem dosyalarını bozabilir.
Dizinlerde izinlerin anlamı farklıdır: okuma dizinin içeriğini listelemeyi, yazma içinde dosya oluşturup silmeyi, çalıştırma ise dizine girmeyi ve içindeki dosyalara adıyla erişmeyi sağlar. Bir dizinde çalıştırma izni yoksa içindeki dosyalara okuma izniniz olsa bile ulaşamazsınız. Bu, "izinler doğru ama erişemiyorum" şikâyetlerinin sık bir nedenidir.
Paylaşılan klasörler: setgid, sticky bit ve umask
Bir ekibin ortak çalıştığı dizinde yeni dosyaların doğru gruba ait olması gerekir. Varsayılan olarak yeni dosya, oluşturan kullanıcının birincil grubuna ait olur. Dizine setgid biti koyarsanız (chmod g+s /srv/muhasebe) içinde oluşturulan her dosya dizinin grubunu devralır. Böylece paylaşım dizinleri için ayrı betikler yazmaya gerek kalmaz.
Sticky bit, herkesin yazabildiği ama yalnızca sahibin silebileceği dizinler içindir (chmod +t). /tmp bunun klasik örneğidir; başka kullanıcının dosyasını silmenizi engeller.
Yeni dosyaların varsayılan izinlerini umask belirler. Umask, çıkarılacak izinleri ifade eder; örneğin umask 027 yeni dosyalarda grubun yazma iznini ve diğerlerinin tüm izinlerini kapatır. Kalıcı olarak ayarlamak için kabuk profil dosyalarını ya da sistem genelinde ilgili yapılandırmayı kullanırsınız.
Daha ince ayrım gerektiğinde klasik üçlü izin modeli yetmez: bir dosyaya yalnızca belirli bir kullanıcıya ek izin vermek için erişim denetim listeleri (ACL) kullanılır. setfacl -m u:ahmet:r rapor.txt ile tek kullanıcıya okuma verir, getfacl ile mevcut kuralları görürsünüz. ACL'yi en az gerektiği kadar kullanın; çok sayıda istisna zamanla izlenemez hale gelir.
Adım adım örnek: ekip paylaşım dizini kurmak
Örneğin muhasebe ekibi için ortak bir dizin kurmanız isteniyor. İstenen sonuç: ekip üyeleri dosyaları okuyup yazsın, başkaları göremesin, yeni dosyalar otomatik olarak ekibin grubuna ait olsun.
Önce grubu oluşturun ve üyeleri ekleyin. Sonra dizini yaratın, grubunu ayarlayın ve izinlerini verin: • mkdir /srv/muhasebe • chgrp muhasebe /srv/muhasebe • chmod 2770 /srv/muhasebe
Sekizlik değerin başındaki rakam setgid bitini temsil eder; geri kalanı sahibe ve gruba tam yetki verir, diğerlerini dışarıda bırakır. Sonra bir ekip üyesi olarak giriş yapıp dosya oluşturun ve ls -l ile sahibin ve grubun beklendiği gibi olduğunu doğrulayın. Ekip dışı bir hesapla dizine girmeyi deneyin: erişim reddedilmelidir.
Doğrulama adımı, uygulamayı bitirmenin parçasıdır. Çalışıyor gibi görünen izin ayarları, ilk gerçek kullanıcı denemesinde sıklıkla boşluk gösterir; bu nedenle farklı bir hesapla her zaman test edin.
Sık hatalar ve kontrol listesi
En tehlikeli alışkanlık, bir izin sorunu çıktığında dosyayı hızlıca herkese açmaktır. Geniş izin sorunu gizler, çözmez ve güvenlik riski bırakır. Önce id ile kimlik ve grupları, ls -ld ile dizin zincirinin izinlerini kontrol edin; erişimi engelleyen genelde bir üst dizindedir.
Diğer sık hatalar: usermod -G ile üyelikleri ezmek, chown -R'ı yanlış yolda çalıştırmak, yeni eklenen grup üyeliğinin hemen etkili olacağını varsaymak, SELinux bağlamlarını izinlerle karıştırmak. SELinux etkin sistemlerde klasik izinler doğru olsa da bağlam uyuşmazlığı erişimi reddedebilir; bu durumda ls -Z ve ilgili denetim kayıtlarına bakın.
Kontrol listesi: • Kullanıcının grupları beklenen mi (id)? • Hedef dosyanın ve tüm üst dizinlerin izinleri uygun mu? • Paylaşım dizininde setgid var mı? • Umask yeni dosyalarda beklenen sonucu veriyor mu? • Değişiklik farklı bir hesapla test edildi mi?
Bu beceriyi Mindset programlarında nerede çalışırsınız?
RHCSA Sertifikasyon Hazırlık programında "Kullanıcı, Grup ve İzin Yönetimi" modülü bu konuyu sistem yöneticisi bakışıyla ele alır; aynı programın Güvenlik: SELinux ve Güvenlik Duvarı modülü bağlam tabanlı erişim denetimini tamamlar. Kali Linux ile Linux Temelleri Eğitimi ise Kullanıcı ve Grup Yönetimi dersini yeni başlayanlar için Linux'un genel yapısı içinde sunar.
Bir ekibe yeni sistem yöneticisi katılıyorsa temel için ikinci program, sınav odaklı ve yönetilen sunucular üzerinde çalışma hedefi varsa ilk program uygun bir çıkış noktasıdır.
İlgili Mindset programı
RHCSA Sertifikasyon Hazırlık
Sık sorulan sorular
Sekizlik izin değerleri nasıl hesaplanır?
Her kategori (sahip, grup, diğerleri) için okuma dört, yazma iki, çalıştırma bir değer taşır ve istenenler toplanır. Okuma ile yazma isteyen bir kategori için değer altıdır. Rakamlar sırayla sahip, grup ve diğerleri için yazılır; örneğin 640 yazmak sahibe okuma-yazma, gruba okuma verir.
usermod -G ile -aG arasındaki fark nedir?
-G kullanıcının ek gruplarını verdiğiniz listeyle değiştirir, öncekileri siler. -aG ise listeyi mevcut üyeliklere ekler. Yöneticiler kullanıcıyı yanlışlıkla sudo ya da wheel grubundan çıkarmamak için ek grup verirken neredeyse her zaman -aG kullanmalıdır.
Yeni eklediğim grup üyeliği neden hemen çalışmıyor?
Linux grup üyeliklerini oturum açıldığında okur. Üyeliği sonradan eklediğinizde mevcut oturum eski grup listesiyle devam eder. Kullanıcının çıkış yapıp tekrar girmesi ya da newgrp ile yeni grup bağlamında kabuk açması gerekir. id çıktısı oturumun güncel gruplarını gösterir.
ACL ne zaman kullanılmalı?
Klasik izin modeli tek sahip, tek grup ve diğerlerini ayırabilir. Bir dosyaya belirli bir kullanıcıya ya da ikinci bir gruba ek izin vermek gerektiğinde ACL kullanılır. Yine de istisnaları azaltmak için önce grup tasarımını gözden geçirmek, yalnızca gerçekten gerekli durumlarda setfacl'e başvurmak daha sürdürülebilirdir.
İlgili rehberler
İlgili eğitimler
Kategori: DevOps ve Bulut Teknolojileri