Linux kullanıcı grupları. Linux'ta kullanıcılar ve gruplar. Ekleme düzenleme kullanıcılarını silme Hesap doğrulama

Linux işletim sisteminde erişim haklarının dağıtımının temeli kullanıcı kavramına dayanmaktadır. Dosyanın sahibi olan kullanıcıya dosyayla çalışması için okuma, yazma ve yürütme gibi belirli izinler verilir. Okuma, yazma ve yürütme izinleri de diğer tüm kullanıcılar için ayrı ayrı ayarlanır. Linux'taki her şey bir dosya olduğundan, böyle bir sistem, dosya erişim haklarını ayarlayarak bu işletim sistemindeki herhangi bir eyleme erişimi düzenlemenize olanak tanır. Ancak geliştiriciler Linux'u oluştururken bile bunun açıkça yeterli olmadığını fark ettiler.

Kullanıcı grupları bu yüzden icat edildi. Kullanıcılar, gruplara belirli dosyalara ve buna bağlı olarak eylemlere erişim için gerekli izinleri vermek amacıyla gruplar halinde birleşebilir. Bu yazıda Linux'taki kullanıcı gruplarına bakacağız, neden ihtiyaç duyulduklarına, bir gruba nasıl kullanıcı ekleneceğine ve grupların nasıl yönetileceğine bakacağız.

Daha önce de söylediğim gibi, Linux'taki gruplar bu işletim sisteminin geliştirilmesinin en başında ortaya çıktı. Hak yönetimi yeteneklerini geliştirmek için tasarlandılar. Küçük bir örneğe bakalım, tek bilgisayarın olduğu, yöneticilerimiz ve kullanıcılarımızın olduğu bir organizasyonu ele alalım. Bilgisayarımızda her kişinin kendi hesabı vardır. Yöneticiler sistemi özelleştirebilir, ancak kullanıcıların bir şeyi bozmamak için başıboş hareket etmemesi daha iyidir. Bu nedenle yöneticiler admin grubunda birleştirilir ve dev dizinindeki tüm ekipmanlara, aslında tüm dosyalara erişim verilir ve kullanıcılar, kullanıcılar grubunda birleştirilir ve bu gruba okuma ve yazma yeteneği verilir. Dosyalarınızı çalışmanızın sonuçlarını paylaşabilecekleri ortak bir dizine aktarın. Her kullanıcıya ayrı ayrı haklar atayarak belirli bir dosyaya erişmesine izin verebiliriz, ancak bu çok sakıncalıdır. Bu yüzden gruplar icat edildi. Sorun değil, seni atayabilir miyim diyorsun? Şimdi kullanıcılarımızın süreçler olduğunu hayal edin. Grupların güzelliği burada ön plana çıkıyor; gruplar kullanıcılara erişim sağlamaktan çok program haklarını, özellikle de donanıma erişimlerini yönetmek için kullanılıyor. Hizmetler ve adına başlatıldığı kullanıcı için ayrı gruplar oluşturulur; bir hizmet, belirli kaynaklara erişim sağlayan birkaç grubun üyesi olabilir.

Şimdi Linux gruplarını nasıl görüntüleyeceğimize bakalım.

Linux'taki gruplar

Sistemde oluşturulan tüm gruplar /etc/group dosyasında bulunur. Bu dosyanın içeriğine bakarak halihazırda sisteminizde bulunan Linux gruplarının listesini öğrenebilirsiniz. Ve şaşıracaksınız.

Standart kök ve kullanıcılara ek olarak burada birkaç düzine grup daha var. Bunlar, programların paylaşılan kaynaklara erişimini kontrol etmek için programlar tarafından oluşturulan gruplardır. Her grup, sistemdeki belirli bir dosya veya dizinin okunmasına veya yazılmasına izin vererek kullanıcının izinlerini ve dolayısıyla sürecin o kullanıcı olarak çalışmasını düzenler. Burada kullanıcının bir süreçle aynı olduğunu düşünebiliriz çünkü süreç, başlatıldığı kullanıcının tüm haklarına sahiptir.

Neden ihtiyaç duyulduğunu daha iyi anlamak için her bir gruba daha yakından bakalım:

  • şeytan- Diske dosya yazma becerisine ihtiyaç duyan hizmetler bu grup ve arka plan programı kullanıcısı adına başlatılır.
  • sistem- grup, çekirdek kaynaklarına erişim sağlar ve sistemde kayıtlı dosyaları içerir
  • senkronizasyon- /bin/sync komutunu çalıştırmanıza olanak tanır
  • oyunlar- Oyunların ayar dosyalarını ve geçmişini belirli bir klasöre yazmasına izin verir
  • Adam- /var/cache/man dizinine sayfa eklemenizi sağlar
  • lp- paralel port cihazlarının kullanımına izin verir
  • posta- /var/mail/ posta kutularına veri yazmanıza olanak tanır
  • vekil- proxy sunucular tarafından kullanılır, dosyaları diske yazma erişimi yoktur
  • www-veri- web sunucusu bu grupla başlar, web belgesi dosyalarının bulunduğu /var/www girişine erişim sağlar
  • liste- /var/mail içindeki mesajları görüntülemenizi sağlar
  • hiçbir grup- sabit sürücüde dosya oluşturamayan ancak yalnızca bunları okuyan işlemler için kullanılır, genellikle hiç kimse kullanıcısı ile birlikte kullanılır.
  • yönetici- /var/log dizininden günlükleri okumanıza olanak tanır
  • tty- tüm /dev/vca aygıtları bu gruptaki kullanıcılara okuma ve yazma erişimine izin verir
  • disk- /dev/sd* /dev/hd* sabit disklerine erişimi açar, bunun root erişiminin bir benzeri olduğunu söyleyebiliriz.
  • dışarı arama- seri bağlantı noktasına tam erişim
  • CD-ROM- CD-ROM'a erişim
  • teker- ayrıcalıkları yükseltmek için sudo yardımcı programını çalıştırmanıza olanak tanır
  • ses- ses sürücüsü yönetimi
  • kaynak- /usr/src/ dizinindeki kaynaklara tam erişim
  • gölge- /etc/shadow dosyasının okunmasına izin verir
  • utmp- /var/log/utmp /var/log/wtmp dosyalarına yazmaya izin verir
  • video- video sürücüsüyle çalışmanıza olanak tanır
  • eklenti geliştirme- harici aygıtları USB, CD vb. bağlamanıza olanak tanır.
  • kadro- /usr/local klasörüne yazmaya izin verir

Artık Linux'ta grupları neden kullandığınızı ve bunların varsayılan olarak ne olduğunu bildiğinize göre, LInux gruplarını yönetmeye bakalım.

Linux Grup Yönetimi

Grupları grafik arayüzü kullanarak da yönetebilirsiniz. KDE'nin bunun için özel olarak tasarlanmış Kuser adında bir programı vardır ve Gnome'da bu sistem ayarları kullanılarak yapılır. Ayrıca popüler dağıtımların OpenSUSE'deki YaST veya Ubuntu Ayarları gibi ayrı araçları da vardır. Ancak bunu grafiksel arayüzle çözeceğinizi düşünüyorum. Ve Linux gruplarını terminal aracılığıyla yönetmeye bakacağız. Öncelikle dosyalarla ve ancak o zaman kullanıcılarla ilgilenelim.

Bir dosya oluşturulduğunda, onu oluşturan kullanıcının birincil grubuna atanır. Aynen şu şekilde:

Burada tüm klasörlerin sahibinin sergiy olduğunu ve grubun da sergiy olduğunu görebilirsiniz. Doğru, çünkü bu kullanıcılar benim tarafımdan oluşturuldu. Ama daha da ileri gidelim:

Burada sd* disk cihazlarının disk grubuna atandığını görüyoruz, bu da bu gruba ait bir kullanıcının bunlara erişebileceği anlamına geliyor. Veya başka bir örnek:

Her şey önceki paragrafta tartıştığımız gibidir. Ancak bu gruplar yalnızca sistem tarafından ayarlanamaz, aynı zamanda dosya gruplarını kendiniz manuel olarak değiştirebilirsiniz; bunun için chgrp komutu vardır:

chgrp grup_adı dosya_adı

Örneğin, bir dosya testi oluşturalım:

Ve bunun için grubu değiştirelim:

Linux grubu oluşturmak istiyorsanız bunu newgrp komutuyla yapabilirsiniz:

sudo grup ekleme testi

Kullanıcıların durumu ise biraz daha karmaşık. Kullanıcının, oluşturma sırasında belirtilen bir ana grubun yanı sıra birkaç ek grubu vardır. Ana grup, kullanıcının ana dizinindeki tüm dosyaların bu gruba sahip olması ve değiştirildiğinde bu dizinlerin grubunun da değişmesi nedeniyle normal olanlardan farklıdır. Ayrıca kullanıcı tarafından oluşturulan tüm dosyalar bu grubu alır. Linux'ta kullanıcıları bu gruplara ekleyerek farklı kaynaklara erişmelerini sağlayabilmemiz için ek gruplara ihtiyaç vardır.

Bir kullanıcı için Linux gruplarının yönetimi usermod komutu kullanılarak yapılır. Sözdizimine ve seçeneklerine bakalım:

$usermod seçenekleri Kullanıcı adı

  • -G- kullanıcıyı eklemeniz gereken ek gruplar
  • -G kullanıcı için birincil grubu değiştir
  • -R bir kullanıcıyı gruptan kaldırmak.

Usermod komutunu kullanarak bir gruba kullanıcı ekleyebilirsiniz:

sudo usermod -G -a grup_adı kullanıcı adı

Newgrp komutunu kullanarak bir kullanıcıyı geçici olarak linux grubuna ekleyebilirsiniz. Yeni bir kabuk açılacak ve içinde kullanıcı gerekli izinlere sahip olacak, ancak kapatıldıktan sonra her şey olduğu gibi geri dönecek:

sudo newgrp grup_adı

Örnek olarak kullanıcımızı disk grubuna ekleyelim ki sudo komutu olmadan sabit disklere doğrudan erişebilelim:

sudo usermod -G -a disk sergiy

Artık diskleri sudo komutu olmadan bağlayabilirsiniz:

bağlama /dev/sda1 /mnt

Kullanıcının üye olduğu linux gruplarını şu komutla görüntüleyebilirsiniz:

Ayrıca id komutunu da kullanabilirsiniz. İlk durumda, sadece Linux gruplarının bir listesini görüyoruz, ikincisinde ise grup ve kullanıcı kimliği ek olarak belirtiliyor. Bir Linux grubuna kullanıcı eklemek için birincil grup için -g seçeneğini kullanın.

Vivek kullanıcısını oluşturalım ve onu geliştiriciler grubuna ekleyelim. Kök kullanıcı olarak oturum açın:

Örnek olarak bir kullanıcı ekleyelim. canlı:

kullanıcıadd -g kullanıcılar -G yöneticileri,ftp,www,geliştiriciler -S/bin/bash -Pxxxx-D/ev/hayalet -m canlı

  • -D ana dizin
  • -S başlangıç ​​kabuğunu ayarlayın (/bin/sh) - daha sonra dosyada değiştirebilirsiniz /etc/passwd
  • -Pşifre
  • -G Kullanıcının atandığı birincil grup (Grup mevcut olmalıdır)
  • -G kullanıcının atandığı diğer gruplar
  • -M kullanıcı için bir giriş dizini oluşturun
  • xxxx karakterli kullanıcı şifresi

Geliştirici grubunun var olduğundan emin olalım:

# grep geliştiricileri /etc/group

Grup yoksa komutu kullanın grup ekleme yeni bir geliştirici grubu oluşturmak için:

Şimdi komutu kullanarak kullanıcı modu vivek kullanıcısını geliştiriciler grubuna ekleyin:

# adduser vivek geliştiricileri && newgrp geliştiricileri

Kullanıcının geliştiriciler grubuna eklendiğinden emin olalım:

#id vivek
Çıktı:
uid=1122(vivek) gid=1125(vivek) group=1125(vivek),1124(geliştiriciler)

Vivek kullanıcısının şifresini ayarlayın/değiştirin:

Gruplarla oynayalım

Vivek kullanıcısına sadece geliştiriciler grubuna katılmasını söyleyelim

kullanıcı modu-G geliştiricileri canlı

Vivek kullanıcısına aşağıdaki komutu girerek yalnızca admin, ftp, www, geliştirici gruplarına katılmasını söyleyelim:

# usermod -G adminler,ftp,www,geliştiriciler vivek

Vivek kullanıcısını bazı gruplardan kaldıralım (grupları ona yeniden atayalım):

# usermod -G ftp,www vivek

artık vivek admin ve geliştirici gruplarına dahil değil.

Not: takım kullanıcı modu Kullanıcı şu anda sistemde oturum açmışsa kullanıcı adını değiştirmez.

kullanıcı del- kullanıcıyı sil

Örneğin, vivek kullanıcısını silin:

  • -R kullanıcıyı ana dizinle birlikte silin

Ayrıntılı Söz Dizimi

useradd [-u tanımlayıcı[-o] [-i]] [-g grup] [-G grup[[,grup] . . .]] [-D katalog] [-S kabuk] [-C bir yorum] [-m [-k skel_dir]] [-F aktif değil] [-e süresi dolmak] [-P yolcu] [-A etkinlik[, . . .]] reg_name

Detaylı Açıklama

Arama kullanıcı ekleme genellikle sistem veri dosyalarına yeni bir kullanıcı girişi ekler kimlik doğrulama ve kimlik doğrulama(Tanımlama ve Kimlik Doğrulama - I&A). Bunun istisnası kullanıcılardır ağ bilgi hizmeti(Ağ Bilgi Hizmeti veya kısaca NIS). Ayrıca kullanıcı için ek gruplardaki üyeliği belirtmenize de olanak tanır (seçenek -G) ve bunun için bir başlangıç ​​dizini oluşturun (seçenek -M). Komut yürütülene kadar yeni oturum açma engellenir şifre.

Kurulumdan hemen sonra çeşitli parametreler için standart değerler dosyada belirtilir. /etc/default/useradd. Aşağıda listelenen ve varsayılan değerler gerektiren seçenekler için varsayılan değerler, komut kullanılarak değiştirilebilir. iftira atmak.

Bu komutla oluşturulan sistem dosyası girişlerinin uzunluk sınırı satır başına 512 karakterdir. Birden fazla seçeneğe uzun argümanlar verilirse bu sınırlama ihlal edilebilir.

Aşağıdaki seçenekler desteklenir:

-u tanımlayıcı Kullanıcı kimlik numarası (UID). Bu sayı, aşağıdakilerden büyük olmayan, negatif olmayan bir tam sayı olmalıdır MAXUID, içinde tanımlanmış sys/param.h. Varsayılan, 99'dan büyük bir sonraki mevcut (benzersiz) eski olmayan UID'dir. Yeni oturum açma, Ağ Bilgi Hizmeti (NIS) tarafından yönetilecekse bu seçenek göz ardı edilir. Bununla ilgili daha fazla bilgi için aşağıdaki "Ağ Bilgi Hizmeti Kayıt Adları" bölümüne bakın.
Bu seçenek, UID'yi kopyalamanıza (benzersiz hale getirmenize) olanak tanır. Sistemin bir bütün olarak korunmasının yanı sıra bütünlüğünün de korunması denetim izi(denetim izi) ve muhasebe bilgileri(muhasebe bilgileri) özellikle her UID'nin belirli bir kişiye benzersiz yazışmasına bağlıdır; bu seçeneğin kullanılması önerilmez (kullanıcı eylemlerinin hesaba katılmasını sağlamak için).
-Ben Eski bir UID'nin kullanılmasına izin verir.
-g grubu Mevcut bir grubun tamsayı tanımlayıcısı veya sembolik adı. Bu seçenek şunları belirtir: çekirdek grup(birincil grup) yeni bir kullanıcı için. Varsayılan olarak dosyada belirtilen standart grup kullanılır /etc/default/useradd
-G grubu[[,grup] . . .] Her biri mevcut bir grubun tamsayı tanımlayıcısını veya sembolik adını temsil eden, virgülle ayrılmış bir listedeki bir veya daha fazla öğe. Bu liste tanımlar ek gruplara üyelik(ek grup üyeliği) kullanıcı için. Tekrarlar dikkate alınmaz. Listedeki öğe sayısı geçmemelidir NGROUPS_MAX- 1, çünkü bir kullanıcı artı ana grup için toplam ek grup sayısı şu rakamı aşmamalıdır: NGROUPS_MAX. Yeni oturum açma işlemi Ağ Bilgi Hizmeti (NIS) tarafından yönetilecekse bu seçenek göz ardı edilir. Aşağıdaki "Ağ Bilgi Hizmeti Kayıt Adları" konusuna bakın.
-d dizini Dizini başlat(yeni kullanıcının ana dizini). Bu alanın uzunluğu 256 karakteri geçmemelidir. Varsayılan: HOMEDIR/reg_name, Nerede ANA DIR- yeni kullanıcıların ilk dizinleri için temel dizin ve reg_name- yeni kullanıcının kayıt adı.
-s kabuğu Kayıttan hemen sonra kullanıcı için ilk kabuk olarak kullanılan programın tam yolu. Bu alanın uzunluğu 256 karakteri geçmemelidir. Varsayılan olarak bu alan boştur ve bu durum sistemi standart komut yorumlayıcısını kullanmaya zorlar /usr/bin/sh. Değer olarak kabuk mevcut bir yürütülebilir dosyanın belirtilmesi gerekir.
-c yorum Herhangi bir metin dizesi. Genellikle bu, oturum açma adının kısa bir açıklamasıdır ve artık gerçek kullanıcının soyadını ve adını belirtmek için kullanılır. Bu bilgi bir dosyadaki kullanıcı kaydında saklanır /etc/passwd. Bu alanın uzunluğu 128 karakteri geçmemelidir.
-M Zaten mevcut değilse, yeni bir kullanıcının ana dizini oluşturur. Dizin zaten mevcutsa, eklenen kullanıcının belirtilen dizine erişim iznine sahip olması gerekir.
-k skel_dir Bir dizinin içeriğini kopyalar skel_dir standart "iskelet" dizininin içeriği yerine yeni kullanıcının ana dizinine, /etc/skel. Katalog skel_dir var olması gerekir. Standart "iskelet" dizini, kullanıcının çalışma ortamını tanımlayan standart dosyaları içerir. Yönetici tarafından belirlenen dizin skel_dir belirli bir amaç için oluşturulmuş benzer dosya ve dizinleri içerebilir.
-f etkin değil Adın zaten geçersiz ilan edilmesinden önce, bir kayıt adının kullanımları arasında izin verilen maksimum gün sayısı. Tipik olarak değerler pozitif tamsayılardır.
-e süresinin dolması Kayıt adının artık kullanılamayacağı tarih; Bu tarihten sonra hiçbir kullanıcı bu kullanıcı adı altında erişim sağlayamayacaktır. (Bu seçenek, geçici oturum açma bilgileri oluştururken kullanışlıdır.) Bir bağımsız değişken değeri girin süresi dolmak(bir tarihi temsil eder) herhangi bir formatta olabilir (Jülyen tarihi hariç). Örneğin, 10/6/99 veya 6 Ekim 1999 tarihini girebilirsiniz.
-p yolcu Dosyadaki FLAG alanının olduğunu belirtir /etc/gölge belirtilen değere ayarlanmalıdır. Bu alana şu komutla erişilir: şifreŞifre oluşturucunun belirli bir kullanıcı için geçerli olup olmadığını belirlemek için. Eğer seçenek -P açıkça belirtilmemiş, giriş kontrol edilir FORCED_PASS dosyada /etc/default/useradd karşılık gelen alanın değerini belirlemek için /etc/gölge. Eğer kayıtlar FORCED_PASS hayır /etc/default/useradd, girişin ilgili alanında /etc/gölgeönemli değil. Eğer değer FORCED_PASS 1'e eşittir, giriş /etc/gölge 1 değerini alır. Eğer değer yolcu boş değilse ve yazdırılabilir bir ASCII karakteri değilse, bir tanılama mesajı verilir.
-bir etkinlik Virgülle ayrılmış, olay türlerinin veya sınıflarının listesi denetim maskesi(denetim maskesi) kullanıcı için. Sistemi kurduktan hemen sonra kullanıcı için standart bir denetim maskesi yoktur ancak dosyada ayarlanabilir. /etc/default/useradd komutu kullanarak iftira atmak. Bu seçenek yalnızca Denetim Yardımcı Programları kuruluysa kullanılabilir. (Sistemde hangi paketlerin kurulu olduğunu öğrenmek için şu komutu çalıştırın: pkginfo.)
reg_name Yeni kullanıcının oturum açma adını belirten yazdırılabilir bir dize. İki nokta üst üste içermemelidir ( : ) ve satır besleme karakterleri ( \N). Ayrıca büyük harfle başlamamalıdır.

Yukarıda tartışılan parametrelere ilişkin varsayılan değerlerin çoğunun komut kullanılarak değiştirilebileceğini unutmayın. iftira atmak bir dosyayla çalışmak üzere tasarlanmış /etc/default/useradd. Bu varsayılan değerler yalnızca yerel kullanıcılar için geçerlidir. NIS kullanıcıları için varsayılan değerler Network Information Service veritabanında ayarlanır. NIS varsayılanlarını değiştirmek için komut satırında seçenekleri belirtmeniz gerekir.

Ağ Bilgi Hizmeti Kayıt Adları

Oturum açma adı karakteriyle başlıyorsa + , (Örneğin, +chris), kullanıcı tanımı Ağ Bilgi Hizmeti (NIS) tarafından yönetilecektir. Varsayılan değerler dosya yerine NIS veritabanına göre belirlenecektir /etc/defaults/useradd. Seçenekler için bağımsız değişken değerleri -u, -G Ve -G bu seçenekler belirtilirse sessizce göz ardı edilecektir. Bunun yerine kullanıcı ID ve grup ID değerleri NIS veri tabanından alınacaktır. Ayrıntılar için yardım sayfasına bakın. şifre. Bir NIS kullanıcısı eklerken oturum açma bilgilerinin NIS veritabanında zaten mevcut olması gerektiğini lütfen unutmayın. Örneğin, bir oturum açma adı eklemek için Chris NIS kullanıcı adı olarak, Chris NIS veritabanında zaten mevcut olmalıdır. O zaman araman gerekiyor kullanıcı ekleme kayıt adı ile +chris bir kullanıcının eklenmesi gerektiğini belirtmek için Chris yerel kullanıcı olarak değil, NIS kullanıcısı olarak.

DOSYALAR

/etc/default/useradd
/etc/group
/etc/passwd
/etc/security/ia/ageduid
/etc/güvenlik/ia/denetim(Denetim Yardımcı Programları kuruluysa)
/etc/security/ia/index
/etc/güvenlik/ia/master
/etc/gölge
/etc/skel

TEŞHİS

Takım kullanıcı ekleme Başarılı olursa 0 dönüş koduyla çıkar. Hata oluşması durumunda aşağıdaki mesajlar görüntülenebilir:


Geçersiz komut satırı sözdizimi.
Komut satırı sözdizimi geçersizdi.
Seçenekte geçersiz bir bağımsız değişken belirtildi.
Bir seçenekle birlikte geçersiz bir argüman sağlandı.
-u seçeneğinde belirtilen tanımlayıcı zaten kullanımda ancak -o seçeneği belirtilmedi.
-u seçeneğiyle belirtilen kullanıcı kimliği zaten kullanımda ve -o seçeneği belirtilmedi.
-g seçeneğiyle belirtilen grup mevcut değil.
-g seçeneğiyle belirtilen grup mevcut değil.
Sağlanan oturum açma adı benzersiz değil.
Belirtilen oturum açma benzersiz değil.
/etc/group değiştirilemedi. Oturum açma bilgileri /etc/passwd dosyasına eklenir ancak /etc/group dosyasına eklenmez.
/etc/group güncellenemiyor. Oturum açma bilgileri /etc/passwd dosyasına eklendi ancak /etc/group dosyasına eklenmedi.
Başlangıç ​​dizini oluşturulamadı (-m seçeneğiyle) veya skel_dir'in başlangıç ​​dizinine kopyalanması başarısız oldu.
Ana dizini oluşturulamıyor (-m seçeneğiyle) veya skel_dir'in ana dizine kopyalanması tamamlanamıyor.
Kimlik yeterince eski değil. Başka birini seç.
uid yeterince eskimedi. Başka birini seç.
Geçersiz bir -a seçeneği belirtildi; sistem hizmeti yüklü değil.
Geçersiz bir seçenek -a belirtildi; sistem hizmeti yüklü değil.
Belirtilen denetim etkinliği türü veya sınıfı geçersiz.
Geçersiz bir denetim olayı türü veya sınıf olayı belirtildi.

İster işletim sistemi işletim sistemi, yazılım, içerik yönetim sistemi (CMS) olsun, çok kullanıcılı erişim sağlayan sistemlerde, kullanıcıların (hesapları veya hesapları, kullanıcı yapılandırmaları, ana dizinler vb.) güvenilir yönetimi için araçlara sahip olmak çok önemlidir. ) ve ayrıca kullanıcı erişiminin kendisini organize etmek ve yönetmek için kullanılır. Bu gibi durumlarda, kullanıcıların (daha doğrusu hesaplarının) yetkin ve düşünceli yönetimi, tüm sistemin güvenliğinin, istikrarının ve sonuç olarak güvenilirliğinin bağlı olduğu önemli bir husustur. Modern Linux dağıtımları, kullanıcıları yönetmek ve hesaplarını yapılandırmak için rutin (gerçekte ortaya çıktığı gibi) etkinlikleri hızlı ve kolay bir şekilde gerçekleştirmenize olanak tanıyan net bir grafik kullanıcı arayüzüne (GUI) sahip otomatik kullanıcı yönetim sistemlerine sahiptir. Ancak kullanıcı yönetimi sırasında sistemin kendisinde nasıl ve hangi gerçek süreçlerin ve değişikliklerin meydana geldiğini bilmek ve anlamak çok önemlidir.

Linux'ta Kullanıcı Eklemek

Sisteme John adında yeni bir kullanıcı eklemek için şu komutu çalıştırmanız yeterlidir:

$sudo useradd john

Bu, /etc/passwd dosyasında aşağıdaki girişi yaratacaktır:

John:x:535:20: :/home/john:/bin/sh

Ancak ekip kullanıcı eklemeçok daha büyük olanaklara sahiptir, örneğin:

$ sudo useradd -c "John Silver" -d /home/pirates/john -g korsanlar -G john -m -s /bin/bash john

Bu komut, tam adı "John Silver" ve oturum açma adı "john" olan bir kullanıcıyı sisteme ekleyecektir. Onu "korsanlar" ana grubuna dahil etmek, onu başka bir ek grup olan "john"a da ekleyecek ve ona /home/pirates/john konumunda bir ana dizin atayacaktır. Sonuç olarak, /etc/passwd dosyasındaki ilgili giriş şunun gibi olacaktır:

John:x:535:30:John Silver:/ana sayfa/korsanlar/john:/bin/bash

Takım kullanıcı ekleme Henüz oluşturulmamışsa kullanıcının ana dizinini otomatik olarak oluşturur. A ayrıca /etc/skel/ dosyasındaki dosyaları da buraya kopyalar.

Parametrelerin tam listesi kullanıcı ekleme

Kullanım: useradd [seçenekler] KULLANICI
kullanıcı ekle -D
useradd -D [seçenekler]

Seçenekler:
-B, --base-dir BAZ_KAT yeninin ana dizini için temel dizin
hesap
-C, --comment COMMENT alanı yeni hesabın GECOS'u
-D, --home-dir Yeni hesabın DOM_KAT ana dizini
-D, --defaults ayarları gösterir veya değiştirir
useradd için varsayılan
-e, --expiredate DATE_STATE yeni hesabın son kullanma tarihi
-F, —aktif olmayan INACTIVITY yeni hesap şifresinin aktif olmadığı süre
-G, --gid GRUP adı veya yeninin birincil grubunun kimliği
hesap
-G, --groups GROUPS yeni grubun ek gruplarının listesi
hesap
-k, --skel CAB_SHAB şablonları olan alternatif bir dizin kullanır
-K, --key ANAHTAR=DEĞER varsayılan değeri değiştir
/etc/login.defs adresinden
-ben, --no-log-init kullanıcıyı lastlog veritabanlarına eklemez ve
başarısızlık günlüğü
-M, --create-home kullanıcının ana dizinini oluşturur
-M, --no-create-home kullanıcının ana dizinini oluşturmaz
-N, --no-user-group ile aynı adda bir grup oluşturmayın
kullanıcı
, --non-unique ile kullanıcıların oluşturulmasına izin verir
tekrarlanan (benzersiz değil) UID'ler
-P, --password PASSWORD yeni hesap için şifrelenmiş şifre
-R, --system bir sistem hesabı oluştur
-R
-S, --shell Yenisinin SHELL kayıt kabuğu
hesap
-u, --uid Yeni hesabın UID kullanıcı kimliği
-U, --user-group ile aynı adda bir grup oluşturun
kullanıcı
-Z, --selinux-user SEUSER, belirtilen SEUSER'ı kullanır
SELinux özel eşleme

Bir kullanıcıya giriş dizini oluşturma ve atama

Tipik olarak, bir kullanıcı sisteme eklendiğinde otomatik olarak bir giriş dizini oluşturulur. Ancak bazı nedenlerden dolayı ana dizinin oluşturulmadığı zamanlar vardır. Ve sonra onu yaratmaya ihtiyaç var. Bir kullanıcının ana dizinini oluşturmak için standart mkdir komutunu kullanın. Bundan sonra, gerekli yapılandırma komut dosyalarını ana dizine kopyalamanız (kullanıcının çalışma ortamını düzenlemek için), ardından chown ve chmod komutlarını kullanarak dizine ve içeriğine sahip ve erişim modlarını ayarlamanız gerekir. Bu en iyi şekilde, tüm yapılandırma dosyaları hedef dizine kopyalandıktan sonra yapılır. Örneğin:

$ mkdir /home/john/ $ cd /etc/skel/ $ cp -Rp . /home/john/ $ chown -R john:john /home/john/ $ chmod -R 644 /home/john/ $ find /home/john/ -type d -exec chmod 755 () \;

Gördüğünüz gibi, yapılandırma dosyaları /etc/skel/ dizininden kopyalanmıştır; burası, gerektiğinde düzenlenebilecek başlatma yapılandırması örneklerinin saklandığı yerdir. Bu arada, /etc/skel/ dizinindeki dosyaların değiştirilmiş bir kopyası usr/local/etc/skel dizininde saklanmalıdır. Ana dizinin sahibini ayarlarken, (chown komutunun dikkatsiz kullanılması durumunda) kullanıcının ".." sözde dizininin, yani yukarıdaki dizin düzeyinin sahibi olmamasına dikkat edilmelidir. bu genellikle /home dizini olur ve güvenlik nedeniyle kabul edilemez.

Bir kullanıcı için şifre oluşturma

Güvenlik nedeniyle hesabınızın güçlü bir şifreye sahip olması gerekir. Bir kullanıcı hesabı oluşturduktan hemen sonra ayarlanması gerekenler:

$ sudo şifre name_of_new_user

Örneğin, jonh kullanıcısı için:

$ sudo passwd john Yeni şifre: Yeni şifreyi tekrar girin: passwd: Tüm kimlik doğrulama verileri başarıyla güncellendi.

Hesap doğrulama

Hesabınıza giriş yapmak için gereken ayrıntıları ve başlangıç ​​şifresini yeni bir kullanıcıya aktarmadan önce doğrulanması gerekir. Bunu yapmak için mevcut oturumu sonlandırmanız gerekir. Ve yeni kullanıcının (hesabının doğrulanması gereken) adı altında oturum açın. Ve aşağıdaki komutları sırayla çalıştırın:

$ pwd $ ls -al

Birincisi geçerli kullanıcının ana dizinini görüntüleyecek, ikincisi ise ana dizindeki tüm (gizli olanlar dahil) dosya ve alt dizinlerin bir listesini görüntüleyecek ve bunların sahibini ve erişim modlarını gösterecektir.

Hesap Yönetimi

Daha önce belirtildiği gibi, Linux sistemlerindeki kullanıcıları yönetmek için, hesapları (kullanıcıları) eklemek, düzenlemek ve silmek için bir dizi özel yardımcı program vardır - useradd, usermod ve userdel. Nihai hedefe ulaşmak için önceden belirlenmiş bir eylem sırasını takip ederler; örneğin, yeni bir kullanıcı eklenmesi durumunda, komut kullanıcı ekleme buna göre yukarıda açıklanan tüm "faaliyetler dizisini" üretir. Bu yardımcı programların her biri, Linux dağıtım geliştiricileri tarafından çok aktif olarak kullanılan yapılandırma dosyaları kullanılarak esnek bir şekilde yapılandırılabilir. Sonuçta, farklı Linux sistemlerinde, yardımcı programlar temelde aynı olmasına rağmen, bu yardımcı programların işleyişi biraz farklılık gösterir. Aşağıda, yardımcı programı örnek olarak kullanarak bazı sistemlerde kullanıcıları yönetmeye yönelik komutları ve yapılandırma dosyalarını gösteren bir tablo bulunmaktadır. kullanıcı ekleme:

Sistem Takımlar Yapılandırma dosyaları Bir yorum
ubuntu kullanıcı ekleme /etc/login.defs
Kullanıcı Ekle /etc/default/useradd Perl sürümü
/etc/adduser.conf
SUSE kullanıcı ekleme /etc/login.defs
/etc/default/useradd
/etc/default/passwd
/usr/sbin/useradd.local Yerel ayarlar
/usr/sbin/userdel.local Yerel ayarlar
/usr/sbin/userdel-pre.local Yerel ayarlar
/usr/sbin/userdel-post.local Yerel ayarlar
Kırmızı şapka kullanıcı ekleme /etc/login.defs
/etc/default/useradd
Solaris kullanıcı ekleme /etc/default/(giriş,şifre)
/etc/security/policy.conf

Kullanıcıları kaldırma

Kullanıcıları sistemden kaldırmak için userdel komutunu kullanın, örneğin komut

userdel john

John kullanıcısını silecektir, ancak sıklıkla (komut gibi) kullanıcı ekleme, bu arada) "saf" bir biçimde değil, bir hesap silme komut dosyası kullanan Perl kabukları biçiminde. Örneğin, Ubuntu dağıtımları yaygın bir Perl betiği olan deluser komutunu kullanır. Bu da, komut tarafından daha önce yapılan her şeyi silmek ve temizlemek için userdel komutunun kendisini çağırır. kullanıcı ekleme. Bu durumda bir komut dosyası kullanılır (genellikle Ubuntu'da /etc/deluser.conf dosyası ve RedHat'ta /etc/login.defs dosyası). Bu, userdel komutu için aşağıdaki seçenekleri ayarlamanıza olanak tanır:

Kullanım: userdel [seçenekler] KULLANICI

Seçenekler:
-F, --force, şu anda kullanımda olsalar bile kullanıcı ve dosyaların silinmesini zorlar
-R, --remove ana dizini ve posta kutusunu kaldır
-R, --root chroot yapılacak CAT_CHROOT dizini
-Z, --selinux-user tüm kullanıcı eşlemelerini kaldır
Kullanıcı için SELinux

/etc/passwd dosyası – yerel hesapların açıklaması

Sistem herhangi bir otomatik dizin yönetimi hizmeti kullanmıyorsa (örneğin, LDAP, NIS), bu durumda /etc/passwd dosyası, sistem tarafından bilinen kullanıcı hesapları hakkındaki bilgileri saklayan dosyadır. Sistem, bir kullanıcı kimlik doğrulaması yapmaya çalıştığında, gerekli kullanıcı kimliğini arayarak ve ana dizinini belirleyerek bu dosyaya erişir. Bu dosyanın formatı, içindeki her satırın, hesabın niteliklerini (alanlarını) iki nokta üst üste ile ayırarak (bir satırda) listeleyen belirli bir kullanıcıya (hesaba) karşılık gelmesidir:

  1. Kullanıcı adı.
  2. Kullanıcı şifresi (şifreli) veya “yer tutucu” şifre.
  3. Kullanıcı kimliği.
  4. Kullanıcı grubu kimliği (varsayılan).
  5. GECOS bilgileri - tam ad, ofis, telefon numaraları vb.
  6. Ana dizin.
  7. Kayıt kabuğu.

/etc/passwd dosyasının içeriği şu şekilde görünebilir: Gördüğünüz gibi, tüm girişlerin ikinci alanı bir parola yer tutucusu olan “x” içerir. Linux sistemlerinde şifrelenmiş parolalar /etc/shadow dosyasında ayrı olarak saklanır. Otomatik dizin yönetimi hizmeti /etc/passwd dosyasıyla birlikte kullanılıyorsa, aynı dosyada “+” karakteriyle başlayan girişler bulunur. Bu girişler, dizin yönetimi hizmetlerinin sisteme entegre edilmesi için talimatlar sağlar. Hesap alanlarına hızlıca göz atmakta fayda var:

  • Kullanıcı adı veya oturum açma adı- belirli bir sistem için kayıt adları oluşturma kurallarına göre derlenmesi gereken benzersiz bir ad. Linux için oturum açma adı en fazla 32 karakter uzunluğunda olabilir. Yalnızca küçük harfler ve sayılar kullanılabilir. Kayıt adı bir harfle başlamalıdır.
  • Şifreli şifre- daha önce de belirtildiği gibi, yerel hesapların şifreleri /etc/shadow dosyasında şifrelenmiş biçimde saklanır. Linux'ta şifreleri şifrelemek için kriptografik araçlar olarak crypt, MD5 ve Blowfish algoritmaları kullanılır. Minimum şifre uzunluğu 5 karakter, maksimum 8 karakterdir
  • Kullanıcı kimliği sistemin bireysel kullanıcıları "tanıdığı" işaretsiz bir tamsayı olup kullanıcı tanımlayıcıları sistem ve yazılım ortamı tarafından kullanılırken, kullanıcı adları sistemdeki kullanıcıların netliği ve sunum kolaylığı için kullanılır. 0 kimlik numarası kök kullanıcı için ayrılmıştır ve sistemde bin veya daemon gibi çok sayıda "tanımlanamayan" kullanıcı olabileceğinden gerçek kullanıcılara da 500'den sonra kimlik atanması önerilir - bu, Kullanıcıları sırayla kullanın ve karışıklığı önleyin. Linux sistemleri aynı zamanda -1 veya -2 tanımlayıcısına sahip sahte kullanıcı hiç kimse de sağlamaz. Tipik olarak bu sözde kullanıcı, sistem süper kullanıcısı, orijinal bilgisayara güvenmeyen başka bir bilgisayardan monte edilen dosyalara erişmeye çalıştığında kullanılır.
  • Grup kimliği- sistemdeki benzersiz kullanıcı gruplarını belirlemeyi amaçlayan, kullanıcı tanımlayıcıya benzer, işaretsiz bir tam sayı. Grup numarası 0 kök grup için ayrılmıştır. Gruplar esas olarak dosyaların uygun şekilde yönetilmesi ve paylaşılması için kullanılır. Kullanıcı kimliklerinde olduğu gibi sistem, grupları (bin gibi) sistemin kendisi tarafından kullanılmak üzere ayırır.
  • AlanGECOS– açıkça tanımlanmış bir spesifikasyona sahip olmayan, kullanıcı hakkındaki ek verileri yansıtan bilgiler: kullanıcının tam adı, telefon numaraları, pozisyon ve departman bilgileri vb. Bu alandaki bilgiler chfn komutu kullanılarak değiştirilebilir.
  • Ana dizin- dosya sistemi ağacında belirli bir kullanıcının verilerini depolamak için ayrılmış bir "yer". Güvenlik nedeniyle bu dizine yalnızca bu dizinin sahibi olan kullanıcı tarafından erişilebilir olmalıdır. Kayıt sırasında bir giriş dizini yoksa kullanıcı verileri / dizinine yerleştirilir. Ayrıca, /etc/login.defs dosyasındaki varsayılan ana dizini belirten DEFAULT_HOME seçeneği hayır olarak ayarlanırsa kullanıcı yetkilendirmesi/kaydı mümkün olmayacaktır.
  • Kayıt kabuğu- kullanıcı hesabına giriş yaptığında başlatılan bir komut yorumlayıcısı (veya başka herhangi bir program) için bir komut kabuğu. Linux için bir tercüman kullanılır

Dosya /etc/group – kullanıcı gruplarını oluşturma ve silme

Linux'ta yeni bir grup eklemek şu komut kullanılarak yapılır:

$groupadd group_name

burada grup_adı yeni grubun adıdır. Bu komut /etc/group dosyasında yeni bir giriş yaratacaktır.

Bu dosyanın formatı /etc/passwd ile aynıdır. /etc/group dosyasının içeriğine örnek:
Gördüğünüz gibi her satırda dört alan bulunmaktadır:

  1. Grup ismi.
  2. Şifrelenmiş parola veya parola yer tutucusu.
  3. Benzersiz grup tanımlayıcısı.
  4. Bu gruba dahil olan kullanıcıların, boşluksuz virgüllerle ayrılmış kullanıcı adlarını içeren listesi.

Burada ilginç olan şey şifre alanıdır. Grup şifresinin amacı kullanıcıların newgrp komutunu kullanarak gruba katılmasına izin vermektir. Grubun şifresi gpasswd komutu tarafından belirlenir ve ardından şifrelenmiş biçimde /etc/gshadow dosyasında saklanır. Ancak gruplara yönelik şifrelerin son derece nadir kullanıldığını belirtmekte fayda var. Sistem yöneticileri /etc/passwd ve /etc/group dosyalarının içeriğini izlemeli ve bunları birbirleriyle koordine etmelidir, çünkü bazen bir kullanıcının /etc/passwd dosyasında ve dosyada bir grubun üyesi olarak belirtildiği durumlar ortaya çıkabilir. aynı kullanıcının /etc/group dosyasında aynı anda duyuru yok. Bu durumda kullanıcının grubun bir üyesi olarak kabul edileceği unutulmamalıdır, ancak yine de her iki dosyanın içeriğinin tutarlı olması önemle tavsiye edilir.

Linux dağıtımlarında (SUSE hariç) varsayılan olarak, bir kullanıcı oluştururken (yardımcı program) kullanıcı ekleme) hemen dahil olduğu aynı isimli grubu oluşturulur. Bu, farklı kullanıcıların birbirlerinin dosyalarına erişme olasılığını mümkün olduğunca ortadan kaldırmak için sağlanmıştır.

Komutu kullanarak bir kullanıcı grubunu silebilirsiniz.

$groupdel grup_adı

Bu komut, girişi /etc/group'tan kaldıracaktır.

Dosya /etc/shadow – şifreleri saklama

Gizli veya gölge parolaları saklamak için ayrı bir /etc/shadow dosyası kullanılır. Yalnızca süper kullanıcının erişebildiği erişim. Ayrıca /etc/shadow ve /etc/passwd dosyalarının kavramsal olarak ilişkili olduğu, ancak sistem düzeyinde aralarında pratik olarak hiçbir etkileşim olmadığı da belirtilmelidir. Ancak shadow'daki oturum açma adını içeren alan passwd'den alınmıştır. Onlar. Gölgeyi değiştirirken, değişiklikler otomatik olarak passwd'ye yansıtılmaz; bu dosyalar ayrı olarak saklanır ve sistem tarafından birbirinden bağımsız olarak işlenir. /etc/shadow biçimi /etc/passwd biçimine benzer ve her satır aşağıdaki alanları içerir:

  1. Kayıt ismi.
  2. Şifre şifrelenmiştir.
  3. Şifrenin son değiştirildiği tarih.
  4. Şifre değişiklikleri arasındaki minimum gün sayısı.
  5. Şifre değişiklikleri arasındaki maksimum gün sayısı.
  6. Şifre süre sonu mesajının yayınlanmasından önceki gün sayısı.
  7. Hesabın otomatik olarak iptal edilmesine kadar geçen gün sayısı (şifre süresinin dolmasından sonra).
  8. Hesap geçerlilik süresi.
  9. Rezerve alan.

/etc/shadow dosyasındaki giriş şuna benzer:

John:$md5$em5JhGE$a$iQhgS70sakdRaRFyy7Ppj. :14469:0:180:14: : :


İlk iki alanın zorunlu olduğuna dikkat edilmelidir. Tarih alanlarının formatı, 1 Ocak 1970'ten bu yana geçen gün sayısına karşılık gelir. Kayıt adı alanı, daha önce de belirtildiği gibi, /etc/passwd dosyasındaki karşılık gelen değerle doldurulur. Linux'ta yedinci alan, parolanın süresinin dolmasından ne kadar süre sonra (gün olarak) hesabın otomatik olarak devre dışı bırakılacağını belirleyen bir değer içerir. Bu yorum Solaris ve HP-UX sistemlerinde kullanılandan farklıdır. Sekizinci alanda hesabın son kullanma tarihini ayarlamak için yyyy-aa-ss formatında usermod komutunu kullanabilirsiniz.

Bir hata bulursanız lütfen metnin bir kısmını vurgulayın ve tıklayın. Ctrl+Enter.




Tepe