İçerik Menüsü

12.Doküman

Kullanıcı İşlemleri

Konu Etiketleri

grup yönetimi , id , groupadd , kullanıcı yönetimi , adduser , useradd, kullanıcı silmek , deluser , gpasswd , aktif pasif hesap , usermod , kimlik değişimi , su , sudo , exit

Kullanıcı İşlemleri

Linux'ta birçok kullanıcı hesabının olabildiğini ve bunlar içinde en yetkilinin root kullanıcısı olduğunu önceki derslerimizde tecrübe etmiştik. Ancak sistemde root kullanıcısı olmadan da root kullanıcısının yetkilerine sahip olmamız mümkün. Bu imkanı bize Linux Grup Yönetimi veriyor.

Grup Yönetimi

Aynı grupta yer alan kullanıcılar bizim tanımlamamızla aynı haklara sahip olabiliyorlar.

Biraz daha ayrıntılı vermek gerekirse Linux ve UNIX sistemlerindeki kullanıcılar bir veya daha fazla gruba aşağıdaki nedenlerle atanır:

Yani genel olarak Grup sistemini bir çeşit kontrol mekanizması gibi düşünebilirsiniz.

Bu kısa bilgilendirmeden sonra gelin grup yönetimi ile ilgili işlemlere geçelim.

Bir grup oluşturulduğunda bu grubun bilgisi /etc dizini içerisinde yer alan group isimli dosyada tutuluyor. Yani mevcut grupları görüntülemek istersek /etc dizini içerisinde yer alan group dosyasına bakmamız gerekir. Bunun için less /etc/group , more /etc/group , cat /etc/group komutlarından herhangi birini kullanabiliriz. Çıktıları aşağıdaki şekilde olacaktır.(Çıktıyı uzun olması nedeni ile aşağıdaki çıktının görselini keserek verdim.)

Hemen bu çıktıda yer alan kısımlara bir açıklık getirelim. Bunun için bir grubu bölüm bölüm numaralandırarak açıklayalım. Ben bu durum için örnek bir grup belirtiyorum.

Belirtilen numaralı kısımların açıklamaları:

1. Grup_ismi : Gruba verilen isimdir.

2. Parola : Parola alanını belirtiyor. Genelde parola kullanılmaz ancak kimi durumlarda kullanıldığı oluyor, bizim çıktımızda da x ile belirtilen alan parola kısmının boş olduğunu belirtiyor. Bu parola belirleme işlemi çok sık kullanılmasa da, ayrıcalıklı gruplarda uygulamak için yararlıdır.

3. Grup Kimliği (GID) : Atanan grup kimliğini(grup numarasını) belirtiyor.

4. Grup Listesi : Grubun üyesi olan kullanıcıların kullanıcı adlarının bir listesidir. Kullanıcı adları, virgülle ayrılmış şekilde belirtiliyor.

Bu alanların neleri ifade ettiğini öğrendiğimize göre, gelin hangi kullanıcının hangi gruba dahil olduğunu nasıl öğrenebiliriz onu görelim.

Kullanıcı Gruplarını Sorgulamak

Kullanıcıların ait olduğu grupları görmek istersek komut satırına id kullanıcı_adı şeklinde komut vermemiz yeterli olacaktır. Ben "burak" kullanıcı hesabı için sorgulama yapmak üzere konsola id burak şeklinde komutumu veriyorum.

Gördüğünüz gibi "burak" kullanıcı hesabı için burada; uid(user id /kullanıcı numarası), gid(group id/grup numarası) ve dahil olduğu gruplar listelenmiş oldu.

Burada yeri gelmişken çıktıda da görülen uid(user id/kullanıcı numarası) ve gid(group id/grup numarası) kavramlarına değinelim. Bu numara aralıkları kullanıcı hesabına göre değişiklik gösteriyor. Yani kullanıcı çeşidine göre numaraları üç temel gruba ayırabiliriz. O da şu şekilde ;

Ayrıca id komutunun birçok parametresi vardır bazıları birazdan göreceğimiz grup oluşturma kısmındaki parametrelerden oluşuyor. Detaylı bilgi için man sayfasına bakabilirsiniz. Ben yine de örnek olması açısından birkaç parametresini gösteriyorum ve daha sonra grup oluşturma ile konumuza devam ediyoruz.

g : id -g kullanıcı_adı belirtilen kullanıcının grup numarasını(gid) verecektir.

u : id -u kullanıcı_adı belirtilen kullanıcının kullanıcı numarasını(uid) verecektir.

G : ìd -G kullanıcı_adı belirtilen kullanıcının dahil olduğu tüm grupları(groups) verecektir.

Yukarıdaki parametreler haricindekiler için man kılavuz sayfasına bakın lütfen.

Sıra geldi yeni grup oluşturmaya..

Yeni bir grup oluşturmak istersek groupadd yeni_grup_adı şeklinde komutumuzu kullanırız.

Ben örnek olması açısından "yeni" isimli bir grup oluşturmak için komut satırına groupadd yeni şeklinde komutumu veriyorum.

Ve oluşturduğumuz grubu sorgulamak için grup bilgilerinin tutulduğu dosyaya bakmak üzere cat /etc/group | grep grup_adı komutunu ya da tail -n 1 /etc/group kullanabiliriz.

Ayrıca grup oluşturulurken kullanılabilecek bazı parametreler var. Bunlar;

g : Grup id belirleme. İstediğiniz numarayı başka bir gruba ait numara ile aynı olmayacak şekilde verebilirsiniz.

Eğer aynı grup id ile başka bir grup eklemek istersek konsol bize "bu id ye sahip başka bir grubun halihazırda bulunduğu" uyarısını verecektir. Dolayısı ile grup ekleme işlemi başarısız olacaktır.

f : işlemi hatalar olsa bile zorlayarak tamamlar. Genelde bu kullanım sorunlar çıkardığı için pek tavsiye edilmez.

Parametreler bunlar ile sınırlı değil ancak sizler man groupadd ve groupadd --help komutları yardımı ile diğer parametreleri de keşfedebilirsiniz.

Ayrıca oluşturduğunuz grupları silmek isterseniz konsola groupdel grup_adı şeklinde komut yazmanız yeterli olacaktır.

Kullanıcı Yönetimi

Sistemimize yeni bir kullanıcı eklemek için kullanabileceğimiz iki farklı komut var. Bunlar adduser ve useradd komutlarıdır.

adduser

Yeni kullanıcı eklemek için komutumuzu adduser kullanıcı_adı şeklinde veriyoruz. Böylelikle oluşturduğumuz kullanıcıya ait ev dizini home/kullanıcı_adı şeklinde otomatik olarak oluşmuş oluyor. Ben örnek olaması açısından "hasan" isimli bir kullanıcı hesabı eklemek üzere konsola adduser hasan komutunu veriyorum.

Çıktıları inceleyecek olursak ev dizini otomatik olarak oluşturulmuş ve "hasan" isimli kullanıcı "hasan" grubuna dahil edilmiş. Yeni eklemiş olduğumuz "hasan" isimli kullanıcı hesabını teyit etmek için; Sistemde kullanıcı hesapları ile ilgili bilgilerin tutulduğu etc dizini içerisindeki passwd dosyaya bakalım.

Dosyanın en alt satırına baktığımızda yeni eklemiş olduğumuz "hasan" isimli kullanıcı hesabının eklenmiş olduğunu görüyoruz. Son olarak da home dizinine "hasan" kullanıcı hesabı için dosya oluşturulmuş mu buna bakalım.

Çıktıda görüldüğü gibi home dizininde oluşturmuş olduğum "hasan" isminde kullanıcı dosyası bulunuyor.

useradd

Kullanıcı oluşturmak için bahsettiğimiz 2. komut olan useradd komutu kullanımı; useradd -m kullanıcı_adı şeklindedir. Burada komutumuz ile birlikte kullanmış olduğumuz m parametresi ile, oluşturduğumuz kullanıcıya ait ev dizininin otomatik oluşmasını sağladık. Birde son olarak kullanıcıya ait bir parola belirlemek üzere passwd kullanıcı_adı şeklinde komutumuzu vererek parolamızı oluşturuyoruz.

Parola oluşturma işleminde kullandığımız passwd kullanıcı_adı şeklindeki komut bütün hesaplar için şifre güncelleme işleminde de kullanılıyor. Ve bir bilgi daha; bu parola bilgileri /etc dizini altındaki shadow isimli dosyada şifreli şekilde tutuluyor.

Ben örnek olması açısından "ali" isimli bir kullanıcı hesabı oluşturmak üzere komutumu useradd -m ali şeklinde verdikten sonra "ali" isimli kullanıcı hesabı için şifre belirlemek üzere passwd ali komutunu kullandım.

Görüldüğü gibi "ali" isimli kullanıcı hesabımız başarılı şekilde oluşturulmuş oldu. Şimdi home dizinini ve passwd dosyasına bakarak bu durumu teyit edelim.

Çıktı sonuçlarında bir problem olmadığına göre konumuza, kullanıcı silme işlemi ile devam edebiliriz.

Kullanıcı Silmek

Oluşturulan kullanıcı hesabını ev dizini ile birlikte silmek için deluser --remove-home kullanıcı_adı komutunu kullanmamız yeterli olacaktır.

Kullanıcı silme işlemlerini kontrol etmek adına home dizinini kontrol edelim.

Çıktıda "hasan" ya da "ali" bulunmadığına göre kullanıcı silme işlemimiz başarılı şekilde tamamlanmış oldu.

Gruplara Kullanıcı Ekleme-Çıkarma İşlemi

Yeni grup ve yeni kullanıcı hesabı nasıl oluşturulur bunları gördük. Şimdi sıra geldi gruba yeni kullanıcı ekleme ve gruptan kullanıcı çıkarma işlemlerine.

Gruba Kullanıcı Eklemek Var olan bir gruba yeni bir kullanıcı eklemek için gpasswd komutunun a parametresini kullanarak, komutumuzu gpasswd -a kullanıcı_adı ekleneceği_grup_adı şeklinde kullanmamız yeterlidir.

Gruptan Kullanıcı Çıkarmak

Eğer gruba dahil olan bir kullanıcıyı gruptan çıkarmak istersek de gpasswd komutunun d parametresini kullanarak, komutu gpasswd -d kullanıcı_adı çıkarılacağı_grup_adı şeklinde kullanmamız gerekmektedir.

Aktif-Pasif Hesap Ayarlama

Varolan bir kullanıcı hesabını kilitlemek için usermod -L kullanıcı_adı komutunu kullanırız. Buradaki kilitlemekten kasıt kullanıcının sisteme giriş yapmasını engellemek için parolasının kilitlenmesidir. Parolayı devre dışı bırakmak için, sistem otomatik olarak şifreli parolanın önüne '!' işareti koyar ve kullanıcı hesabına giriş yapamaz.

Bu durumu denemek için öncelikle kullanıcı hesaplarının parolalarının şifreli bir şekilde tutulduğu dosya olan shadow dosyasına bakalım.

"burak" isimli kullanıcının parolasını yukarıdaki şekildedir. Daha sonra karşılaştırma yaparken tekrar ele alacağız.

Konsol ekranına usermod -L burak yazarsam "burak" kullanıcısının hesabını kilitlemiş olurum. Bu kilitleme işlemini; kullanıcının hesaba girişte kullandığı parolanın önüne sistem tarafından otomatik olarak getirilen !(ünlem işareti) sayesinde gerçekleşmektedir. Bu durumu teyit etmek için tekrar shadow dosyasına bakalım ve önceki hali ile sonraki halini kıyaslayarak görelim.

Gördüğünüz gibi hesabı kilitleme işleminde; hesaba girişte kullanılan parolanın önüne otomatik olarak gelen ! (ünlem işareti) hesaba girmeyi engelleyerek hesabı kilitlemiş oluyor.

Pasif durumdaki hesabı aktif hale getirmek için ise usermod -U kullanıcı_adı komutu kullanılır. Aynı şekilde hesabın tekrar aktif hale getirilmesi de devre dışı bırakılmış olan kullanıcı parolasının önündeki '!' işaretinin kaldırılmasıyla gerçekleşir.

Eğer anlamadığınız bir nokta varsa bu durumu GIF ile anlattım, dikkatlice takip ederseniz gayet net anlaşılacaktır.

Kimlik Değişimi

Örneğin ben "burak" kullanıcısıyken, yapmak istediğim işlem ancak "root" kullanıcısının yetki alanındaysa ve ben "root" hesabının parolasını biliyorsam, "root" hesabının kimliğine bürünerek o işlemi gerçekleştirebilirim.

Geçiş işlemleri için su komutunu kullanıyoruz. Komutun kullanımı ile ilgili iki farklı durum var, bunlar:

Bu durum en iyi örnekler ile açıklanabilir. İlk önce "root" kullanıcısıyken "burak" isimli kullanıcı hesabına giriş yapacağım daha sonra "burak" isimli kullanıcıdan "root" hesabına giriş işlemini gerçekleştireceğim. Adımları sırasıyla takip edin lütfen.

Hemen mevcut kullanıcı oturumunu daha önce öğrenmiş olduğumuz whoami komutu ile sorgulayalım.

"root" kullanıcısıyken "burak" hesabına geçiş yapmak için su burak komutunu kullanıyoruz. Ve whoami komutu ile geçiş durumunu kontrol ediyoruz.

Geçiş yaptığımız "burak" hesabından "root" hesabına dönmek için exit komutunu kullanmamız yeterli.

Şimdi su - burak komutu kullanarak geçiş yapacağımız kullanıcı kabuğunda çalışalım.

Görsellere dikkatlice bakacak olursanız; su burak komutunu kullanarak geçiş yaptığımızda burak@taylan:/root$ olan konsol ismi su - burak komutunu kullandığımızda direk olarak geçiş yaptığımız hesabın kabuğunda çalışmaya başlayarak burak@taylan:~$ şeklinde oldu. Yani su - burak komutu bize tıpkı o hesap oturumunu açmışız gibi tepki verdi. Aşağıda çıktılara tekrar bakarsanız aradaki farkı daha net anlayabilirsiniz.

Fark etmiş olacaksınız ki başta geçiş yapabilmemiz için geçeceğimiz hesabın parolasını bilmemiz gerektiğini söylemiştim. Ancak "burak" hesabına yaptığımız geçişlerde parola sorulmadı. Bunun sebebi "burak" hesabının normal kullanıcı olmasıdır. Şimdi bu durumu birde "burak" hesabındayken "root" kullanıcısı için iki farklı kullanımda da deneyelim.

Gördüğünüz gibi yönetici hesabına erişmek için bizlerden parola bilgisi istendi. Bu durum da başta açıkladığımız yetkili hesaplara geçişlerde şifre sorma olayını açıklıyor.

Alıştırmalar Hakkında

Öğrendiğiniz bilgilerin kalıcı olması için mutlaka bolca alıştırma yapmalısınız.Burada belirtilen alıştırmalar dışında da kendi kendinize özellikle de zorlandığınız konularda bol bol alıştırmalar yapın. Aksi halde öğrendiğiniz bilgiler kısa sürede unutulup gidecektir. Yani gerçekten öğrenmek istiyorsanız lütfen öğrendiğinizi hissede kadar alıştırmalar yapın.

Linus isminde yeni bir kullanıcı hesabı oluşturun ve home  dizinine bakarak teyit edin.

GNU isminde 1515 grup numarasına(gid) sahip yeni bir grup oluşturun ve grubun oluşup oluşmadığını ilgili dosyaya bakarak teyit edin.

Oluşturmuş olduğunuz GNU isimli guruba yeni oluşturmuş olduğunuz Linus kullanıcı hesabını ekleyin.

Linus isimli kullanıcının dahil olduğu grubu konsoldan ilgili komut ile sorgulayın.(uid(user id/kullanıcı numarası), gid(group id/grup numarası) ve dahil olduğu grupları konsoldan listeleyin.)

GNU isimli gruba eklemiş olduğunuz Linus kullanıcı hesabını gruptan çıkarın ve bu durumu(gruptan çıkarılıp çıkarılmadığını) teyit edin.

GNU isimli gurubu silin ve silme işlemini de teyit edin.

Linus isimli kullanıcı hesabına giriş yapın(oturum açın) ve Linus kullanıcı hesabındayken root kullanıcı hesabına kimlik değişimi ile konsoldan geçiş yapın. Geçiş yaptıktan sonra geçişi ilgili komut(hangi kullanıcı oturumunda çalışmakta olduğumuzu bildiren komut) ile teyit edin. Ve daha sonra root kullanıcı hesabından ilgili komut ile çıkış yaparak tekrar Linus  kullanıcı hesabına dönün ve geçişi ilgili komutla teyit edin.

Linus kullanıcı hesabındayken ilgili komut ile konsoldan root kullanıcı hesabının kimliğine geçiş yapıp direk olarak root kullanıcı hesabının kabuğundan çalışmaya başlayın. Ve bu durumu ilgili komut ile teyit edin.(Burada önemli nokta geçiş yapılan kullanıcının kabuğunda çalışmaktır.)

Linus kullanıcı hesabındayken oturumu kapatıp root  kullanıcı hesabına geçin ve root kullanıcı hesabındayken Linus kullanıcı hesabını kilitleyin. Ve hesabın kilitlenip kilitlenmediğini de teyit edin.

Kilitlemiş olduğunuz Linus kullanıcı hesabının kilidini açın ve hesaba giriş yaparak açılıp açılamadığını teyit edin.

Geri Bildirimde Bulunun

Sizlere daha verimli bir kaynak sunabilmemiz için, uygulamada veya dokümantasyonlarda yer alan tüm hata ve eksiklerimizi bize bildirebilirsiniz.