Linux'da Yeni Kullanıcılar Oluşturma ve Silme
- Murat Akpınar
- Linux öğrenme yolculuğu
- 29 Ekim 2023
İçindekiler
Linux’ta kullanıcı oluşturmanın iki komutu vardır ve ikisi aynı şeyi yapmaz: useradd size hiçbir şey sormaz ve varsayılanlarla yetinir — çoğu dağıtımda ev dizini bile açmaz, parola belirlenmediği için hesap kilitli kalır. adduser ise soru sorar ve işi tamamlar. Yanlış olanı seçtiğinizde hata almazsınız; kullanıcının oturum açamadığını bir hafta sonra fark edersiniz.
Bu yazıda iki komutun farkını, hangisinin ne zaman doğru olduğunu ve silerken nelerin geride kaldığını göreceksiniz.
Kullanıcı Oluşturma: useradd mı, adduser mı?
Her iki komut da root yetkisi ister, yani sudo ile çalıştırılır. Fark ikisinin sizden ne beklediğindedir.
useradd: Soru Sormaz, Varsayılanla Yetinir
useradd iki komutun daha temel olanıdır. Kullanıcı kimlik numarası (UID), ana dizin (home directory) ve kabuk (shell) gibi ayarları elle vermeniz gerekir; vermediğinizde /etc/default/useradd ve /etc/login.defs dosyalarındaki varsayılanlar geçerli olur. Betikle otomatik kullanıcı açarken doğru komut budur, çünkü hiçbir soru sormaz.
useradd -m -s /bin/bash murat
-mev dizinini oluşturur ve/etc/skeliçeriğini kopyalar. Debian ve türevlerinde-myazmazsanız ev dizini oluşturulmaz, kullanıcı oturum açtığında/dizinine düşer. (RHEL ailesinde varsayılan tersidir, ev dizini kendiliğinden açılır.)-skabuğu belirler. Debian’da varsayılan/bin/sh‘tir;bashistiyorsanız açıkça yazmanız gerekir.-Gek grupları verir ve yazdığınız grupların önceden var olması gerekir:useradd -G sudo,proje murat. Var olmayan bir grup yazarsanız komutuseradd: group 'proje' does not existdiyerek durur, kullanıcı oluşmaz.
Kullanıcının birincil grubu ayrıca belirtilmezse çoğu dağıtımda kullanıcı adıyla aynı adda otomatik oluşturulur. Grup mantığının tamamı için: Gruplar ve kullanıcıları gruplara ekleme/çıkarma.
useradd ile açılan hesap kilitlidir. Parola belirlenmediği sürece /etc/shadow alanında ! durur ve kullanıcı parolayla oturum açamaz. Oluşturduktan sonra parolayı siz vermelisiniz:
passwd murat
adduser: Soru Sorar, İşi Tamamlar
adduser aynı işi etkileşimli olarak yapar: grubu oluşturur, ev dizinini açar, /etc/skel dosyalarını kopyalar ve parolayı sorar. Elle tek bir kullanıcı açarken atlanan adım bırakmadığı için doğru seçim odur.
Önemli bir sınır: adduser, Debian ailesine özgü bir betiktir (Perl ile yazılmıştır ve arka planda useradd çağırır). RHEL, Rocky, AlmaLinux ve Fedora’da adduser yalnızca useradd‘a giden bir sembolik linktir — aynı adı yazarsınız ama hiçbir soru sorulmaz. Dağıtımlar arası çalışan bir betik yazıyorsanız useradd kullanın.
Debian’daki etkileşimli akış şöyle görünür:
root@debian:~# adduser lehisa
Adding user `lehisa' ...
Adding new group `lehisa' (1002) ...
Adding new user `lehisa' (1002) with group `lehisa' ...
Creating home directory `/home/lehisa' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for lehisa
Enter the new value, or press ENTER for the default
Full Name []: Leyla Hisar
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
Görüldüğü gibi tek komut grubu oluşturdu, ev dizinini açtı, /etc/skel dosyalarını kopyaladı ve parolayı sordu — useradd ile bunların hepsini ayrı ayrı vermeniz gerekirdi.
Ad alanına Türkçe karakter yazarsanız
chfn: name with non-ASCII charactersuyarısı alırsınız. İşlem yine tamamlanır; uyarı, bu alanın eskifingerprotokolünden gelen ASCII beklentisiyle ilgilidir.
Silme: userdel Ev Dizinini Yerinde Bırakır
Kullanıcı silmek dikkat ister, çünkü varsayılan davranış çoğu kişinin beklediği gibi değildir: userdel yalnızca hesabı kaldırır, kullanıcının ev dizinini ve dosyalarını yerinde bırakır.
sudo userdel kullanici_adi # hesap gider, /home/kullanici_adi kalır
sudo userdel -r kullanici_adi # hesap ve ev dizini birlikte gider
Bilmeniz gereken üç ayrıntı:
-rbile her şeyi silmez. Yalnızca ev dizinini ve posta kuyruğunu kaldırır. Kullanıcının/srv,/optya da/var/wwwaltında bıraktığı dosyalar yerinde kalır ve artık sahipsizdir;ls -lçıktısında sahip adı yerine çıplak UID görürsünüz. Silmeden önce şu komutla arayın:find / -uid $(id -u kullanici_adi) 2>/dev/null- Oturumu açık kullanıcı silinmez. Kullanıcının çalışan bir süreci varsa
userdelreddeder. Önce süreçleri sonlandırın;-file zorlamak sistemi tutarsız bırakabilir. - Geri dönüşü yoktur. Ev dizinini silmeden önce arşivlemek, sonradan “şu dosya lazımmış” dendiğinde tek kurtarıcınızdır:
tar czf /yedek/kullanici_adi.tar.gz /home/kullanici_adi
Sonuç
useraddveadduseraynı komut değildir.useraddhiçbir şey sormaz, Debian’da-myazmazsanız ev dizini bile açmaz ve hesabı parolasız — yani kilitli — bırakır. Betikteuseradd, elle işlemdeadduserdoğru seçimdir.adduserher dağıtımda yok. RHEL ailesindeuseradd‘a sembolik linktir; taşınabilir betik yazıyorsanız buna güvenmeyin.userdelev dizinini silmez,-rde her şeyi silmez. Silmeden önce kullanıcının UID’siyle sistem genelinde arama yapın, sonra arşivleyin.
Yol haritasında sırada var olan bir hesabı yönetmek var: Kullanıcı Bilgilerini Değiştirme ve Parola Yönetimi. Serinin tamamına GNU/Linux Öğrenme Yolculuğu sayfasından ulaşabilirsiniz.