Linux'ta Kullanıcı Nasıl Eklenir, Değiştirilir ve Kaldırılır?

Yayınlanan: 2022-01-11

Herhangi bir işletim sisteminde kullanıcı yönetimi, bir sistem yöneticisinin temel rutin görevlerinden biridir.

Linux tabanlı bir işletim sistemi için, genellikle kullanıcı hesapları oluşturmayı, ana dizinlerini değiştirme, varsayılan kabuk, bir veya daha fazla hesabı kilitleme/kilidini açma ve kullanıcı hesaplarını kaldırma gibi mevcut hesapları değiştirmeyi içerir.

Bu görevleri yerine getirmek için komutları ve işlemleri incelemeden önce, Linux'ta kullanıcı hesaplarının nasıl sınıflandırılabileceğine kısaca göz atalım. Ayrıca, açıkça belirtilmedikçe verilen komutların yaygın Linux dağıtımlarının çoğunda çalışacağını unutmayın.

Kullanıcı Türleri

Kök Kullanıcı

root kullanıcı, işlemleri gerçekleştirmek için tüm izinlere sahip işletim sisteminin yöneticisidir. Genellikle yalnızca root , temel sistem programlarını ve kitaplıklarını yükleyebilir/kaldırabilir veya güncelleyebilir. Sistem genelinde ayrıcalıklara sahip tek kullanıcı hesabıdır.

Yani kök kullanıcı, sistemin en güçlü kullanıcısıdır.

Özel Kullanıcı

Bunlar, girişleri olmayan kullanıcılardır. root kullanıcının tüm ayrıcalıklarına sahip değiller. Hesaba bağlı olarak, farklı özel roller üstlenirler.

Bunlar, herhangi bir uygulama yüklemesi sırasında otomatik olarak oluşturulur. bin , sync , lp , mail , operator , squid özel kullanıcı örneklerinden bazılarıdır.

Ortak Kullanıcılar

Genel kullanıcılar, yalnızca çalışma dizinlerinde, genellikle ana dizinlerinde tam ayrıcalıklara sahiptir. Sistemi yönetmek veya yazılımı yüklemek için ayrıcalıkları yoktur. sudo aracılığıyla özel ayrıcalıklara sahip olmadan bu görevleri gerçekleştiremezler.

Kullanıcı Ekleme

Debian/Ubuntu

Debian veya Ubuntu tabanlı bir sistemde, CLI'den kullanıcı eklemek için birkaç seçenek vardır. İlk komut, bir Perl betiği olan ve kullanımını daha sonra göreceğimiz arka uçta useradd komutunu kullanan adduser .

Kullanıcı eklemek ayrıcalıklı bir görev olduğundan, önek olarak sudo ve bağımsız değişken olarak username kullanmanız gerekir. Diğer ayrıntılar istendiğinde belirtilebilir. Kullanıcı adı ve şifre dışında kalan bilgiler isteğe bağlıdır. Kullanıcının oluşturulduğunu id komutu ile doğrulayabiliriz.

 $ sudo adduser johndoe Adding user `johndoe' ... Adding new group `johndoe' (1003) ... Adding new user `johndoe' (1003) with group `johndoe' ... Creating home directory `/home/johndoe' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for johndoe Enter the new value, or press ENTER for the default Full Name []: John Doe Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y $ $ id johndoe uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe) $

CentOS/RHEL/Fedora (Debian/Ubuntu dahil)

Bir sonraki komut olan useradd , RHEL tabanlı işletim sistemi dağıtımlarında çalışacak ve Ubuntu/Debian ana bilgisayarlarında eşit derecede iyi çalışacak. Yeni bir kullanıcı oluşturmak için en basit sözdizimi (ek seçenekler olmadan):

 $ sudo useradd <username>

Örnek:

 $ sudo useradd janedoe

useradd komutu, en yaygın olanı kullanıcı kimliği (UID), grup kimliği (GID), varsayılan kabuk ve ana dizini vb. olmak üzere, kullanıcı oluşturulurken belirtilebilecek birden çok seçeneği destekler. Bu tür bir örnek aşağıda verilmiştir:

 $ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

id komutunu kullanarak yeni oluşturulan kullanıcıyı doğrulayabilirsiniz:

 $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $

Kullanıcıyı Değiştirme

Kuruluş gereksinimlerine, kullanıcı isteklerine veya sistem geçişlerine dayalı olarak mevcut kullanıcıların bazı özelliklerini değiştirmek gerekir. Bu özelliklerin çoğunun değiştirilmesi kolaydır, ancak kullanıcı ortamını ve kullanıcının sahip olduğu veya kullanıcı tarafından erişilen dosyalara erişimi nasıl etkileyeceğinden emin olmamız gerekir.

Varsayılan Kabuk

Varsayılan kabuk, bir kullanıcı yerel olarak veya SSH aracılığıyla yeni bir CLI oturumu başlattığında oluşturulan CLI kabuğudur. Çoğu modern sistemin varsayılan bir kullanıcı Bash vardır, ancak Linux dağıtımına veya kullanıcının ortamına göre değişebilir. Bir kullanıcının varsayılan kabuğunu değiştirmek için şunu kullanın:

 $ sudo usermod -s <shell> <username>

Örnek:

 $ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/sh $ sudo usermod -s /bin/bash janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $

Yukarıdaki çıktıda görebileceğiniz gibi, kabuk, janedoe kullanıcısı için /bin/ /bin/sh /bin/bash janedoe değiştirildi.

Ana Dizin

Varsayılan kabuk gibi, bir kullanıcının ana dizini aşağıdakiler kullanılarak farklı bir konuma değiştirilebilir:

 $ sudo usermod -d <new_directory_path> <username>

Aşağıdaki örnekte, janedoe kullanıcısının kullanıcı ana dizini /data/janedoe olarak değiştirilmiştir:

 $ getent passwd janedoe janedoe:x:1005:1005::/data/newhome:/bin/bash $ sudo usermod -d /data/janedoe janedoe $ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $

Geçiş yapmadan önce, yeni dizinin doğru sahiplik ve izinlere sahip olduğundan emin olun. Aksi takdirde, kullanıcı oturum açarken veya yeni ana dizinde çalışırken sorunlarla karşılaşabilir.

Kullanıcı kimliği

Mevcut bir kullanıcının kullanıcı kimliğini aşağıdakileri kullanarak değiştirebilirsiniz:

 $ sudo usermod -u <new_uid> <username>

Örnek:

 $ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -u 1010 janedoe $ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $

Yine, UID'yi değiştirmek, Linux dosya sisteminin sahiplik ve izni bir dosya veya dizine eşleme şeklini değiştirir. Kullanıcının giriş dizininin, içeriğinin ve sistemin herhangi bir yerindeki, orijinal olarak kullanıcıya ait olan (eski UID ile) diğer tüm dosyaların, UID eşlenmiş olarak değiştirildiğinden emin olun. Bunu yapmamak, CLI oturumunda ve kullanıcının dosya erişiminde sorunlara neden olabilir.

Varsayılan Grup

Varsayılan grup, genellikle, başka bir GID belirtilmedikçe, kullanıcı oluşturma sırasında oluşturulan, kullanıcının varsayılan grup kimliğidir. Linux, usermod komutunu kullanarak bir kullanıcının varsayılan grubunu da değiştirmenize izin verir. İşte kullanılacak sözdizimi:

 $ sudo usermod -g <new_gid or group_name> <username>

İşte bir örnek:

 $ getent passwd janedoe janedoe:x:1010:1005::/data/janedoe:/bin/bash $ sudo usermod -g 1001 janedoe $ getent passwd janedoe janedoe:x:1010:1001::/data/janedoe:/bin/bash $

Yine, yeni grup kimliğinin kullanıcının ana dizininde, içeriğinde ve sahiplik izinlerini uygun şekilde taşımak için geçerli tüm diğer dosya veya dizinlerde ayarlandığından emin olun.

Grup Ekleme/Kaldırma

Varsayılan grubun yanı sıra, Linux'taki bir kullanıcı ikincil grupların bir parçası olabilir. Bir kullanıcının ait olduğu ek grupları her zaman usermod komutunu kullanarak ekleyebilir veya kaldırabiliriz.

 $ sudo usermod -a -G <group_id or group_name> <username>

Örnek:

 $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -a -G docker janedoe $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $

Benzer şekilde, bir kullanıcıyı ikincil gruplardan birinden çıkarmak için aşağıda gösterildiği gibi gpasswd komutunu kullanın:

 $ sudo gpasswd -d <username> <groupname>

Örnek:

 $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker) $ sudo gpasswd -d janedoe docker Removing user janedoe from group docker $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $

GECOS Yorumu

/etc/passwd içindeki GECOS alanı, kullanıcı bilgilerini veya yorumlarını içerir. Mevcut bir kullanıcı için bu bilgileri şu şekilde değiştirebiliriz:

 $ sudo usermod -c <comment> <username>

Örnek:

 $ getent passwd janedoe janedoe:x:1005:1005::/data/janedoe:/bin/bash $ sudo usermod -c "Jane Doe - System Admin" janedoe $ getent passwd janedoe janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash $

Yorumunuz veya kullanıcı ayrıntılarınız boşluk içeriyorsa, yukarıdaki örnekte olduğu gibi bu alanı tırnak içine alın.

Kullanıcı adı

Kullanıcının oturum açma adı, -l bayrağı kullanılarak usermod komutu kullanılarak da değiştirilebilir:

 $ sudo usermod -l <new_username> <old_username>

Örnek:

 $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo usermod -l jane_doe janedoe $ id jane_doe uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe) $

Nerede kullanılırsa kullanılsın kullanıcı referanslarını yeni isme göre güncellemeyi unutmayın. id gibi komutlarda bile yeni kullanıcı adı belirtilmelidir.

Kullanıcıyı Kaldırma

Bir kullanıcı, userdel komutu kullanılarak Linux'tan kaldırılabilir.

 $ sudo userdel <username>

Örnek:

 $ id janedoe uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe) $ sudo userdel janedoe $ id janedoe id: 'janedoe': no such user $

Bir kullanıcıyı ana dizini ve posta biriktiricisiyle birlikte kaldırmak için -r bayrağını da ekleyin.

 $ sudo userdel -r <username>

Özellikle Ubuntu tabanlı sistemler için, bir kullanıcıyı kaldırmak için deluser komutunu da kullanabilirsiniz:

 $ sudo deluser <username>

Benzer şekilde, ana dizini ve posta biriktiricisini de kaldırmak için şunu kullanın:

 $ sudo deluser --remove-home <username>

Ayrıntılı bilgi ve desteklenen diğer seçenekler için aşağıdakileri kullanarak çeşitli komutların ana sayfasına bakın:

 $ man adduser $ man useradd $ man usermod $ man deluser $ man userdel

Çözüm

Bu makale, bir Linux sisteminde kullanıcı yönetiminin çeşitli yönlerini gösterdi. Bu, çeşitli kullanıcı kategorilerinin ve bunların nasıl eklenip kaldırılacağının bir açıklamasını içerir. Ayrıca, mevcut bir kullanıcının parametrelerini değiştirmeye yardımcı olan çeşitli seçenekleri de kapsar. Çeşitli komutlar tarafından desteklenen tüm olasılıkları kapsamasa da, bir sistem yöneticisinin günlük işlerinde karşılaşacağı birçok genel yönetim görevini kapsar.

Ayrıca okumak ilginizi çekebilir: Linux'ta dosya ve dizinler nasıl kaldırılır?