7 - Kullanıcı ve Grup Yönetimi
2025
Sunucuda farklı işleri yönetmek için farklı kullanıcılar bulunmakta ve istendiği takdirde yeni kullanıcılar eklenebilmektedir.
Kullanıcıların yetkilerini toplu bir şekilde yönetebilmek için gruplar oluşturulmuştur.
Örneğin grup yapısı, sisteme “root” kullanıcısı ile giriş yapmasanız bile yönetici gibi işlem yapabilmeyi mümkün kılar.
Yeni bir kullanıcı eklemek için adduser komutu kullanılır.
foo isminde bir kullanıcı oluşturmak için sudo adduser foo komutu verilir./home/foo olarak ayarlanır.addusercezmi@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]/etc/passwd ve /etc/shadow dosyalarında tutulur./etc/passwd dosyasında parola dışındaki, kullanıcı adı, id, grup id, kullandığı kabuk, ev dizini gibi tanımlamalar bulunur./etc/shadow dosyasında tutulmaktadır./etc/passwd dosyasını kullanıcılar okuyabiliyorken /etc/shadow dosyasına sadece root kullanıcısı erişebilmektedir.Örnek /etc/passwd satırı:
Örnek /etc/shadow satırı:
deluser komutu ile silinebilir.Örnek: deluser --remove-home foo
Parola değiştirme işlemleri passwd komutu ile gerçekleştirilir.
Giriş yapılan kullanıcının parolasını değiştirmek için yalnızca passwd komutu çalıştırılır.
Yönetici olarak başka bir kullanıcının parolasını değiştirmek için sudo passwd kullanıcı_adı komutu çalıştırılır.
Kullanıcının giriş yapmasını engellemek için yani pasifleştirmek için aşağıdaki komutlardan biri verilebilir.
Bu işlem /etc/shadow dosyasındaki parola alanının başına ! karakterini ekler. Bu işlemi elle de yapabilirdik.
foo:!$6$HMuOU7Ul44s.jQix$...
Pasif kullanıcıyı yeniden aktifleştirmek için aşağıdaki komut kullanılır:
groupadd komutuyla yapılır.Örnek: yeni isminde bir grup eklemek.
gpasswd)Bu işlem gpasswd komutuyla yapılabilir.
Kullanım: sudo gpasswd -a kullanıcı_adı grup_adı
Örnek: foo kullanıcısını yeni grubuna ekleme
Not: Kullanıcıya yönetici hakları vermek için kullanıcıyı sudo grubuna ekleyebilirsiniz.
usermod)Kullanıcıyı gruba eklemek için usermod komutu da kullanılabilir.
Örneğin cezmi kullanıcısına yönetici haklarını vermek için aşağıdaki komutla onu sudo grubuna ekleyebiliriz.
-a: Ekle (Append) - Mevcut grupları koruyarak yenisini ekler.-G: İkincil grup(lar) (Groups).Kullanım: sudo gpasswd -d kullanıcı_adı grup_adı
Örnek: foo kullanıcısını yeni grubundan çıkarma.
Kullanıcının gruplarını ve grupların id’lerini sorgulamak için id komutunu kullanabilirsiniz.
Kullanım: id kullanıcı_adı
Örnek:
Not: groups komutu da kullanıcıların gruplarını gösterir ancak grup id’lerini göstermez.
Gruplar üzerinde yapılan işlemler /etc/group dosyasına işlenir.
Örnek /etc/group satırı (yeni grubu ve üyesi foo):
Biçim: grup_adı:parola_yeri:grup_id:üyeler
su)Giriş yaptığınız kullanıcıdan çıkış yapmadan farklı bir kullanıcıyla kabuk açmak istiyorsanız su kullanıcı_adı komutunu kullanabilirsiniz.
Örnek: foo kullanıcısına geçiş
cezmi@server:~$ su foo
Password: # foo kullanıcısının parolası istenir
foo@server:/home/cezmi$ whoami
foo- veya -l):CTRL + D kombinasyonunu ya da exit komutunu verebilirsiniz.su ve sudo)root kullanıcısına geçiş yapmak için (root parolası gerekir):
sudo ile root parolası girmeden (kendi parolanızla) root olmak için:
Araştırma Sorusu: /etc/sudoers dosyası nedir ne işe yarar?
sudo -u)Başka bir kullanıcı olarak (genellikle) parola girmeden komut çalıştırmak için sudo komutu kullanılabilir.
Kullanım: sudo -u kullanıcı_adı komut
Örnek: foo kullanıcısı olarak whoami komutunu çalıştırma
Linux sistemlerinin güvenlik yapısı gereği, dosya ve dizinlere ait birçok kısıtlama ve yetkilendirme ayarları vardır. Bu yetkilerin hepsine sahip olan tek kullanıcı ise root kullanıcısıdır.
Bir kullanıcının dosya ve dizinler üzerinde yapabileceği 3 temel işlem vardır:
cd komutu).ls -lls -l komutu çıktısının ilk sütunu izinleri gösterir:
cezmi@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-rw-r--r-- ve drwxr-xr-x gibi ifadeler izinleri ve dosya türünü belirtir.
d rwx r-x r-x örneği üzerinden:
-: Normal dosyad: Dizin (Directory)l: Sembolik bağlantı (Link)s: Soketp: Pipe (FIFO)b: Blok cihaz dosyasıc: Karakter cihaz dosyasırwx).
rwx r-x r-x izinlerini açıklayalım:
rwx (Sahip): Dosyanın sahibi okuyabilir (r), yazabilir (w), çalıştırabilir/erişebilir (x).r-x (Grup): Dosyanın grubu ile aynı gruptaki kullanıcılar okuyabilir (r), çalıştırabilir/erişebilir (x), fakat yazamaz (-).r-x (Diğerleri): Diğer tüm kullanıcılar okuyabilir (r), çalıştırabilir/erişebilir (x), fakat yazamaz (-).chmod)Dosya/dizin izinleri chmod komutu ile değiştirilir. İki temel yöntem vardır: Sembolik ve Sayısal.
Sembolik Yöntem Parametreleri:
u: Sahip (User)g: Grup (Group)o: Diğerleri (Others)a: Herkes (All = ugo)+: İzin ekle-: İzin çıkar=: İzinleri tam olarak ayarla (diğerlerini kaldırır)r: Okumaw: Yazmax: Çalıştırma/Erişimchmod Sembolik ÖrneklerBir dosyaya herkesin yazma izni eklemek için:
Bir dosyayı herkesin çalıştırabilmesi için (izin ekle):
Bir dosyadan çalıştırma yetkisini (herkesten) almak için:
Dosyanın grubundan okuma yetkisini almak için:
Bir dizine yalnızca sahibi girebilsin (x) ve okuyabilsin (r), grup ve diğerleri hiçbir şey yapamasın:
Bir dosyayı kimse okuyamasın iznini nasıl ayarlarız?
Bir dosyayı yalnızca sahibi ve grubu okuyabilsin (diğerleri okuyamasın) iznini nasıl ayarlarız?
Bir dosya herkes tarafından okunabilsin ve yazılabilsin?
chmod Sayısal (Oktal) Yöntemİzinler r, w, x harflerinin sayısal (oktal) karşılıklarının toplamı ile de ifade edilebilir.
r (okuma) = 4w (yazma) = 2x (çalıştırma) = 1- (izin yok) = 0Her üçlü grup (sahip, grup, diğerleri) için bu değerler toplanır.
Bir dosyanın yalnızca sahibi tarafından okunup (r), yazılmasını (w) istiyoruz. Diğerleri hiçbir şey yapamasın.
İstenen izin görünümü: -rw-------
Üçlü gruplar: rw- --- ---
Sayısal değer: 600
Komut:
Bu chmod u=rw,g=,o= dosya_adı ile aynıdır.
Bir dizine yalnızca sahibi ve grubu tarafından çalıştırma (x), okuma (r) ve yazma (w) hakkı verilmek isteniyor. Diğerleri hiçbir şey yapamasın.
İstenen izin görünümü (dizin olduğu için ‘d’ ile başlar): drwxrwx---
Üçlü gruplar: rwx rwx ---
Sayısal değer: 770
Komut:
Sembolik olarak: chmod u=rwx,g=rwx,o= dizin_adı
chownchown yeni_sahip[:yeni_grup] dosya/dizin-R (Recursive): Belirtilen dizin ve içindekilerin (alt dizinler, dosyalar) sahipliğini değiştirir. (Dikkatli kullanılmalı!)sudo gerektirir.Örnek: benioku dosyasının sahibini foo, grubunu da foo yapma.
chgrpchgrp yeni_grup dosya/dizinchown gibi -R parametresi kullanılabilir.sudo veya dosya sahibi olma ve hedef grubun üyesi olma hakkı gerektirir.Örnek: benioku dosyasının grubunu cezmi yapma (sahibi foo idi).
Yazdığınız bir betiği (script) veya derlediğiniz bir programı doğrudan ./dosya_adı şeklinde çalıştırabilmek için çalıştırma iznine (x) sahip olmanız gerekir.
Örneğin, merhaba isimli dosya içeriği:
Çalıştırma denemesi (başlangıçta x izni yoksa):
Çalıştırma izni verme (chmod +x) ve çalıştırma: