7 - Kullanıcı ve Grup Yönetimi
2026
Linux’ta yetki; kullanıcı, grup ve izin ilişkisi üzerinden belirlenir.
Bu derste bu yapıyı adduser, su, sudo, chmod, chown ve chgrp komutlarıyla inceleyeceğiz.
sudo, ek yönetim yetkileri sağlayabilir.Burada önemli nokta şudur: yönetim yetkisi genel olarak “grup” kavramından değil, ilgili grubun sistemde nasıl tanımlandığından gelir.
sudo Nedir?sudo, bir komutu geçici olarak yönetim yetkisiyle çalıştırmayı sağlar.
Bazı işlemler normal kullanıcı yetkisiyle yapılamaz.
Örneğin:
gibi işlemlerde komutun başına sudo yazarız.
Buradaki amaç sürekli root olarak çalışmak değil, yalnızca gerektiğinde yetkili komut çalıştırmaktır.
adduserYeni bir kullanıcı eklemek için yaygın komut:
Bu işlem sırasında genellikle:
Varsayılan ev dizini çoğunlukla /home/foo olur.
adduser Çıktısıcezmi@server:~$ sudo adduser foo
[sudo] password for cezmi:
Adding user `foo' ...
Adding new group `foo' (1002) ...
Adding new user `foo' (1002) with group `foo' ...
Creating home directory `/home/foo' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for foo
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]Burada dikkat edilmesi gereken nokta, kullanıcı oluşturulurken çoğu zaman aynı isimde bir grubun da açılmasıdır.
Kullanıcılarla ilgili bilgiler temel olarak iki dosyada tutulur:
/etc/passwd/etc/shadowGenel fikir:
/etc/passwd: kullanıcı adı, uid, gid, ev dizini, kabuk gibi bilgiler/etc/shadow: parola özeti ve parola politikaları/etc/passwd herkes tarafından okunabilirken, /etc/shadow dosyasına erişim sınırlıdır.
/etc/passwd ÖrneğiÖrnek satır:
Bu yapı soldan sağa şu alanları içerir:
uid)gid)Bu satır, kullanıcının sistemde nasıl tanımlandığını gösterir.
x Ne Anlama Gelir?/etc/passwd satırındaki x, parolanın doğrudan bu dosyada tutulmadığını gösterir.
Yani:
/etc/passwd içindedir,/etc/shadow içindedir.Bu ayrım, parola bilgisinin daha korumalı bir dosyada tutulmasını sağlar.
/etc/shadow ÖrneğiÖrnek satır:
foo:$6$HMuOU7Ul44s.jQix$YHLn24CkHg3oYTg2TkaiHxvkNvf/3CjGIdof8ZnlQat407uBJr398NeV745s5qmd8odw3lQbg.qT1Tt1djFai/:19088:0:99999:7:::Bu dosyada parola özeti ve parola yaşlandırma bilgileri tutulur.
Bu nedenle:
/etc/passwd daha genel kullanıcı bilgisidir,/etc/shadow ise parola tarafıdır.Parola değiştirme:
Kullanıcıyı silme:
Parolayı kilitleyerek hesabı pasifleştirme:
Yeniden açma:
Burada kilitleme işlemi çoğunlukla parola alanını devre dışı bırakır.
Gruplar, kullanıcıları tek tek yetkilendirmek yerine ortak kümeler hâlinde yönetmeyi sağlar.
Örneğin:
ayrı gruplarda toplanabilir.
Bu yapı, yetki yönetimini daha düzenli hâle getirir.
Yeni grup oluşturma:
Bir kullanıcıyı gruba ekleme:
Aynı işi usermod ile yapmak da mümkündür:
-aG kullanımında -a parametresi önemlidir; mevcut grup üyeliklerini koruyarak ekleme yapar.
Bir kullanıcıya sudo yetkisi vermek için onu uygun gruba ekleyebiliriz:
Bu kullanıcı artık doğrudan root olmaz.
Daha doğru ifade şudur:
sudo ile geçici olarak yetkili komut çalıştırır.Yani sudo, root yetkisinin sürekli olarak kullanıcıya devredilmesi değil, gerektiğinde kullanılabilmesidir.
Kullanıcının grup bilgilerini görüntüleme:
Örnek çıktı:
Gruptan çıkarma:
Grup bilgileri /etc/group dosyasında tutulur.
/etc/groupBiçim:
Bu satır, proje grubunun kimliğini ve üyelerini gösterir.
suGeçici olarak başka bir kullanıcı kimliğiyle kabuk açmak için:
Örnek:
Burada kullanıcı değişir; fakat bulunduğunuz ortam ve dizin her zaman tam olarak yenilenmeyebilir.
su - Ne Yapar?Kullanıcının kendi oturum ortamıyla başlamak için:
Bu kullanımda genellikle:
Bu yüzden su foo ile su - foo aynı şey değildir.
sudo -i ve sudo -uYetkili bir kabuk açmak için:
Belirli bir komutu başka kullanıcı olarak çalıştırmak için:
Örnek düşünelim:
sudo -i size yetkili bir kabuk verir,sudo -u foo ls /home/foo yalnızca tek bir komutu foo olarak çalıştırır.Bu ikinci kullanım özellikle test ve yönetim işlerinde çok kullanışlıdır.
Bir dosya üzerinde işlem yapılırken sistem yalnızca “komut ne?” sorusuna bakmaz.
Aynı zamanda şunları birlikte değerlendirir:
Bu nedenle izinleri okumadan önce kullanıcı ve grup tarafını anlamak gerekir.
Linux’ta temel izinler üç tanedir:
r = okumaw = yazmax = çalıştırma / erişimBu izinler üç ayrı kitle için tanımlanır:
Dolayısıyla her dosya veya dizin için üçlü bir yapı vardır.
ls -lcezmi@server:~$ ls -al
total 24
drwxr-xr-x 3 cezmi cezmi 4096 Mar 30 10:52 .
drwxr-xr-x 4 root root 4096 Mar 24 08:10 ..
-rw-r--r-- 1 cezmi cezmi 220 Mar 24 08:10 .bash_logout
-rw-r--r-- 1 cezmi cezmi 3771 Mar 24 08:10 .bashrc
drwx------ 2 cezmi cezmi 4096 Mar 30 10:52 .cache
-rw-r--r-- 1 cezmi cezmi 807 Mar 24 08:10 .profileİlk sütundaki ifade dosya türünü ve izinleri gösterir.
Örneğin:
-rw-r--r--drwx------Örnek:
Bunu şu şekilde ayırabiliriz:
Anlamı:
İlk karakter için bazı yaygın örnekler:
- normal dosyad dizinl sembolik bağDosyada:
r: içeriği okumaw: içeriği değiştirmex: dosyayı çalıştırmaDizinde:
r: dizin listesini görebilmew: dizin içinde ekleme, silme, yeniden adlandırmax: dizine girebilme ve içeriğe erişebilmeÖzellikle dizinlerde x izni, ilk bakışta en çok karıştırılan noktalardan biridir.
Örnek izin:
Anlamı:
Bir kullanıcı dosyanın sahibi değilse ama dosyanın grubuna üyeyse, ikinci üçlü dikkate alınır.
chmod Komutunun Mantığıchmod komutu iki temel biçimde kullanılır:
Sembolik yöntemde şu harfler kullanılır:
u: sahipg: grupo: diğerleria: herkesİşlemler:
+ ekle- kaldır= tam olarak ayarlachmod Sembolik ÖrneklerBir dosyaya çalıştırma izni eklemek:
Grubun yazma iznini eklemek:
Diğerlerinden okuma iznini kaldırmak:
Bir dizini yalnızca sahibine açmak:
İlk örneklerde daha kontrollü izinler görmek, daha doğru bir alışkanlık kazandırır.
Sayısal yöntemde:
r = 4w = 2x = 1Toplanarak değer bulunur.
Kısa tablo:
| İzin | Değer |
|---|---|
r |
4 |
w |
2 |
x |
1 |
Örnekler:
rw- = 6r-x = 5rwx = 7--- = 0Bu değerler sırasıyla sahip, grup ve diğerleri için yazılır.
Yalnızca sahibi okuyup yazabilsin:
Parçalama:
Hesap:
Komut:
Bir dizinde sahip ve grup tam yetkili olsun, diğerleri erişemesin:
Parçalama:
Hesap:
Komut:
Sembolik karşılığı:
Yeni oluşturulan dosya ve dizinlerin izinleri tamamen rastgele belirlenmez.
Burada umask adı verilen ayar da devreye girer.
Örneğin çoğu sistemde:
644,755gibi görünür.
Bu derste umask ayrıntısına girmiyoruz; ama varsayılan izinlerin arka planında böyle bir mekanizma olduğunu bilmek yeterlidir.
chownBir dosya veya dizinin sahibini, istenirse grubunu değiştirmek için:
Örnek:
cezmi@server:~$ touch benioku
cezmi@server:~$ ls -l benioku
-rw-rw-r-- 1 cezmi cezmi 0 Apr 6 11:46 benioku
cezmi@server:~$ sudo chown foo:foo benioku
cezmi@server:~$ ls -l benioku
-rw-rw-r-- 1 foo foo 0 Apr 6 11:46 beniokuBu komut çoğu durumda sudo gerektirir.
chgrpSadece grup bilgisini değiştirmek için:
Örnek:
cezmi@server:~$ ls -l benioku
-rw-rw-r-- 1 foo foo 0 Apr 6 11:46 benioku
cezmi@server:~$ sudo chgrp proje benioku
cezmi@server:~$ ls -l benioku
-rw-rw-r-- 1 foo proje 0 Apr 6 11:46 beniokuchown ve chgrp, izinlerden farklı olarak “kim adına” kısmını değiştirir.
Bir betiği doğrudan ./dosya_adı biçiminde çalıştırmak için x izni gerekir.
Örnek dosya:
İzin yoksa:
İzin verelim:
Bu durumda dosya doğrudan çalıştırılabilir hâle gelir.
Bu derste şu ilişkiyi kurduk:
su ve sudo bu kimliklerle işlem yapmayı sağlar,chmod, chown ve chgrp bu yapıyı yönetmek için kullanılır.Bu mantık anlaşılınca komutlar tek tek ezberlenmesi gereken parçalar olmaktan çıkar.
foo kullanıcısını oluşturun.proje adında bir grup açın.foo kullanıcısını proje grubuna ekleyin.rapor.txt adlı bir dosya oluşturup sahibini foo yapın.sudo -u foo whoami komutunu çalıştırın.ls -l rapor.txt çıktısına bakıp şu soruya cevap verin: Bu dosyayı aynı gruptaki başka bir kullanıcı okuyabilir mi?