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.
Yeni Kullanıcı Oluşturma
Yeni bir kullanıcı hesabı oluşturmak için aşağıdaki adımları izleyebilirsiniz:
- root Yetkileriyle Oturum Açın: Yeni kullanıcılar oluşturmak için yönetici (root) yetkilerine sahip olmanız gerekecektir. Root olarak oturum açın veya “sudo” komutunu kullanarak geçici olarak root yetkilerini alın.
- Kullanıcı Oluşturma Komutu: Yeni bir kullanıcı oluşturmak için “useradd” veya “adduser” komutunu kullanabilirsiniz. Örneğin, aşağıdaki komut yeni bir kullanıcı olan “yeni_kullanici” oluşturur.
useradd
Yeni bir kullanıcı hesabını sisteme eklemek için daha temel bir komuttur. 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
kullanıcı oluşturmayı daha kullanıcı dostu ve etkileşimli bir şekilde yapmanıza olanak tanır. Kullanıcı oluşturulurken, varsayılan değerler ve kullanıcı dostu bir dizi soru kullanılarak daha fazla otomatik yapılandırma sağlar. Kullanıcı dostu bir arayüz sağladığı için, genellikle daha az tecrübeli kullanıcılar veya hızlı ve basit kullanıcı oluşturma gereksinimlerine sahip sistem yöneticileri için tercih edilir.
Ö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 []: Murat Akpinar
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.
Kullanıcıları Silme
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.