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.adduser
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]
/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 -l
ls -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ı
chown
chown 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.
chgrp
chgrp yeni_grup dosya/dizin
chown
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: