Menü
Bedava
kayıt
ev  /  ÜZERİNDE/ Ubuntu Sunucusu - Yönetici kullanıcı hakları. Kök kullanıcı ekleyerek Ubuntu 16.04 kullanıcı yönetimi

Ubuntu Sunucusu - Yönetici kullanıcı hakları. Kök kullanıcı ekleyerek Ubuntu 16.04 kullanıcı yönetimi

Herkese selamlar!

Bu yazımda size Linux Ubuntu'da nasıl yeni kullanıcı ekleyeceğinizi, izinlerini nasıl değiştireceğinizi veya kullanıcının şifresini nasıl değiştireceğinizi göstereceğim. Ayrıca grafiksel bir yardımcı program kullanarak veya komut satırından "Hesaplar" nasıl oluşturulur.

Yeni bir hesap eklemenin ilk yoluna bakalım.

Hızlı başlatma panelinden "Sistem Ayarları"nı açın ve "Hesaplar"ı seçin.

Şimdi ek ayrıcalıklar almanız gerekiyor. Bunu yapmak için "Engellemeyi kaldır" düğmesine basın.

Şifrenizi girin ve "Kimlik Doğrula" düğmesini tıklayın

Yeni bir kullanıcı eklemek için "+" simgesine tıklayın

Açılan formda hesap türünü seçin. Bu standart yardımcı programda iki tür kullanıcı oluşturabilirsiniz:

  • Normal
  • yönetici

Çoğu durumda "Normal" hesap türü yeterlidir. Ancak gelecekte bu kullanıcının ek ayrıcalıklara ihtiyacı olduğu ortaya çıkarsa, "Hesaplar" yardımcı programına geri dönmek ve hesap türünü değiştirmek yeterli olacaktır.

"Normal" hesap türünü seçin, bir kullanıcı adı ekleyin ve "Ekle" düğmesini tıklayın.

Yeni hesabımız var ama şifre ayarlanana kadar aktif olmuyor.

"Şifre" öğesini tıklayarak yeni hesabı etkinleştiririz:

İpucunu kullanarak “Güçlü” bir şifre buluyoruz ve ardından “Şifreyi onayla” alanına tekrar giriyoruz. "Değiştir" butonuna tıklayarak yeni hesabı aktif hale getiriyoruz.

Gereksiz bir hesabı silmek için onu seçmeli ve "-" işaretine basmalısınız.

Bir silme yöntemi seçmek için bir pencere açılacaktır.

İki seçenek var:

  • ana dizini kaldırma
  • veya onun korunması ile.
    • Bu kullanıcının dosyalarına artık ihtiyaç duyulmuyorsa, "Dosyaları sil" e tıklayın ./ p>

      Hesap ve tüm giriş dizini dosyaları silindi.

      Şimdi yeni bir kullanıcı eklemenin ikinci yoluna bakalım.

      Bir terminal açalım ve aşağıdaki komutu çalıştıralım.

      sudo adduser yeni kullanıcılar

      Ek ayrıcalıklar elde etmek için kullanıcı şifresini girmeli ve klavyede "Enter" tuşuna basmalısınız.

      Şifreyi tekrar girin ve klavyedeki "Enter" tuşuna basın.

      Gerekli bilgileri ekliyoruz ve her şey doğruysa "Y" yazarak onaylıyoruz ve klavyeden "Enter" tuşuna basıyoruz.

      Ancak "Administrator" haklarına sahip bir kullanıcıya ihtiyacımız varsa, bir komut daha çalıştırmamız ve kullanıcıyı gerekli gruplara (adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare) eklememiz gerekiyor.

      sudo usermod -a -G adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare yeni kullanıcılar

      Kullanıcının hangi gruplara ait olduğunu görmek için aşağıdaki komutu çalıştırın.

      sudo kimliği yeni kullanıcılar

      Herhangi bir kullanıcının şifresini değiştirmek de çok kolaydır. passwd komutunu ve kullanıcı adını yazıyoruz.

      sudo passwd yeni kullanıcılar

      Yeni kullanıcı için şifreyi girin ve klavyede "Enter" tuşuna basın.

      Ardından şifreyi tekrar girin ve klavyedeki "Enter" tuşuna basın. Her şey doğru yapıldıysa, "şifre başarıyla güncellendi" girişini görmelisiniz. Ve şimdi bu hesaba giriş yapmak için yeni bir şifre girmeniz gerekiyor.

      Gereksiz bir kullanıcıyı ve onun ana klasörünü silmek de çok kolaydır. Bunu yapmak için yazıyoruz

      sudo userdel -r yeni kullanıcılar

      Ne yazık ki, yukarıdaki komut çalışmasının sonuçlarını göstermiyor. Ancak newusers kullanıcısının hala sistemimizde olup olmadığını kontrol etmek için başka bir komut kullanabiliriz.

      sudo kimliği yeni kullanıcılar

      Yürütülmesi sonucunda sistemde böyle bir kullanıcı olmadığını görüyoruz.

      Nasıl yeni kullanıcı ekleyebileceğinizi, şifre değiştirebileceğinizi, gruplara ekleyerek haklarını nasıl değiştirebileceğinizi ve ayrıca bir kullanıcıyı nasıl silebileceğinizi inceledik. Ve bu konuyla ilgili anlaşılmayan sorular ve öneriler varsa, yorumlara yazmalarını rica ediyorum. Herkese güle güle!

Okuyucunun yanıtının gösterdiği gibi, Ubuntu'da idari hakların ayrılması konusu, çoğu acemi yönetici için hala yeterince anlaşılmamıştır, bu nedenle bu konuyu bu materyalle açıklığa kavuşturmaya karar verdik. Bu nedenle, su'nun sudo'dan ne kadar farklı olduğunu, kökü nereye sakladığınızı vb. bilmiyorsanız - makalemizi incelemeye başlamanın zamanı geldi.

Küçük bir arasöz ile başlayalım. Linux yönetici hakları sistemi, Unix işletim sistemine dayanmaktadır ve bu nedenle diğer Unix benzeri sistemlerle pek çok ortak noktaya sahiptir: BSD, Solaris, MacOS. Aynı zamanda, farklı dağıtımların belirli noktaların uygulanması konusunda kendi özellikleri vardır, bu nedenle Ubuntu ailesi hakkında özel örnekler vereceğiz, ancak genel kuralları bilmek diğer Unix benzeri işletim sistemlerinin ortamını kolayca anlamanıza izin verecektir. .

Kullanıcı, Linux'ta tam yönetici haklarına sahiptir. kök, bu nedenle hakları kısıtlamak imkansızdır, bu nedenle, bu kullanıcı adına günlük çalışma son derece istenmeyen bir durumdur: kullanıcının dikkatsiz eylemleri sisteme zarar verebilir ve bu hesabın ele geçirilmesi, bir saldırgana sisteme sınırsız erişim sağlayacaktır.

Bu nedenle, Linux'ta farklı bir şema benimsenmiştir, yöneticiler dahil tüm kullanıcılar sınırlı bir hesap altında çalışır ve yönetim eylemlerini gerçekleştirmek için yükseltme mekanizmalarından birini kullanır. Bunu yapmak için yardımcı programı kullanarak hakları yükseltebilirsiniz. sudo veya komutu kullanarak geçerli oturumu sonlandırmadan süper kullanıcı (kök "a) olarak oturum açın su... Birçok insan bu iki mekanizmayı yanlışlıkla karıştırır, bu yüzden onları daha ayrıntılı olarak analiz edeceğiz.

Emretmek su mevcut oturumunuzu sonlandırmadan farklı bir kullanıcı (mutlaka root olması gerekmez) olarak oturum açmanıza izin verir. Yani komut:

su petrov

petrov kullanıcısı olarak oturum açmanıza izin verecek, kullanıcı ortamı (home klasörü) de bu kullanıcıya ait olacak şekilde değiştirilecektir.

Emretmek su kullanıcı adı belirtmeden, bir hesapla giriş yapmanızı sağlar kök"C. Ancak, bu yöntemin önemli bir dezavantajı var - başka bir kullanıcı adına oturum açmak için şifresini bilmeniz gerekiyor. Birden fazla yöneticiniz varsa, her biri süper kullanıcı şifresini bilecek ve bunu yapamayacaksınız. haklarını kısıtlamak.

Ayrıca, güvenli değildir, süper kullanıcı parolasını bilmek ve bir uzlaşma durumunda onun adı altında oturum açabilme yeteneği, sistem üzerinde tam bir kontrol kaybına yol açabilir.

Ubuntu'da hakları bu şekilde yükseltmeye çalışırsak ne olur? Kullanıcının şifresini bilmediğimiz için başarısız olacağız. kök, aynı zamanda hiç kimse farklı bir kullanıcı olarak giriş yapmamızı rahatsız etmiyor.

"Beklemek!" - başka bir kullanıcı diyecek ki, - "ve kurulum sırasında belirttiğimiz ilk oluşturulan kullanıcı değil mi, ilk oluşturulan kullanıcı alıyor mu?" Gerçekten de, yönetimsel görevler sadece kurulum sırasında oluşturulan kullanıcı adına yapılabilir; başarısızlık.

Burada hakların yükseltilmesinin ikinci mekanizmasına yaklaşıyoruz - fayda sudo... Bununla birlikte, çalışmaya devam etmeden önce, açıklığa kavuşturmaya değer: Ubuntu'daki süper kullanıcı (kök) hakları, varsayılan olarak devre dışı bırakılan kök hesaba aittir. Bu nedenle, komutu kullanarak hakları yükseltin su mümkün görünmüyor.

Ubuntu'daki ana yükseltme mekanizması yardımcı programdır sudo... Bu yardımcı program, yürütülen komut için hakları süper kullanıcı düzeyine yükseltmenize izin verir ve süper kullanıcı parolasını bilmeniz gerekmez, kullanıcının kendi parolasını girmesi gerekir. Bundan sonra, yardımcı program, bu kullanıcının süper kullanıcı haklarıyla bu ana bilgisayarda bu komutu yürütme hakkına sahip olup olmadığını kontrol edecek ve kontroller başarılı olursa, bunu yürütecektir.

Bu önemli! Ana fark su itibaren sudo buna hizmet eder su mevcut kullanıcıyı root olarak değiştirmenize izin verir, bu da sistemde aktif bir süper kullanıcı hesabı ve buna şifre bilgisi gerektirir, sudo süper kullanıcı şifresini belirtmeden yürütülen komutun haklarını yükseltmenize izin verir, kullanıcının kendi şifresini girmesi gerekir, bu kimlik bilgileriyle root olarak giriş yapmak işe yaramaz.

Bir başka önemli durum, bir boru hattı veya süper kullanıcı haklarına sahip yeniden yönlendirme kullanırken, örneğin inşaatta komutun yalnızca ilk kısmı yürütülecektir:

Sudo ekibi1 | takım2

sadece kök yürütüleceği için takım1... ve takım

Sudo kedi kaynakları.list> /etc/apt/sources.list

girişten bu yana erişim hakları hatası verecektir. /etc/apt/sources.list normal bir kullanıcının haklarıyla gerçekleşecektir.

Karmaşık komut kombinasyonlarını yürütmek için komutla süper kullanıcı moduna geçebilirsiniz.

hangi takım yükselmesine benzer su ancak bu, kullanıcının ortamını değiştirmez ve mevcut kullanıcının dizini, uygun ve güvenli olan ev olarak kullanılacaktır. Yöneticilerin her biri yalnızca kendi ana dizinine erişebilir.

Şimdi fırsatları kimin kullanma hakkına sahip olduğunu bulma zamanı. sudo ve ne ölçüde. Dosya, bu yardımcı programın ayarlarından sorumludur. / etc / sudoer'lar, bunun normal bir yapılandırma dosyası olmasına rağmen, düzenlemek için şu komutu kullanmanız şiddetle önerilir:

sudo görsel

Bu komut dosyayı kilitler ve sözdizimini kontrol eder, aksi takdirde bir yazım hatası nedeniyle PC'ye yönetici erişimini kaybetme riskiyle karşı karşıya kalırsınız.

Bu dosyanın sözdizimi oldukça basittir. Örneğin, dosyanın en sonunda bir giriş var:

% yönetici TÜMÜ = (TÜMÜ) TÜMÜ

Bu, grubun kullanıcılarının yönetici herhangi bir kullanıcı adına herhangi bir ana bilgisayarda herhangi bir komutu yürütebilir. Komutla kolayca doğrulayabileceğimiz gibi gruplar bizim durumumuzda kullanıcı andrey gruba ait yönetici ve kullanıcı petrov numara.

Ancak bu yardımcı programın tüm avantajları, her bir özel durumda hakları elde etmek için parametreleri esnek bir şekilde yapılandırma yeteneğinde yatmaktadır. Örneğin:

Petrov ubuntu-lts = (andrey) TÜMÜ

Bu satır, kullanıcının petrov ana bilgisayarda herhangi bir komutu yürütün ubuntu-lts kullanıcı adına andrey... Komutları belirtirken, onlara tam yolu belirtmelisiniz, komutu kullanarak bunu öğrenebilirsiniz. Hangi

Örneğin, kullanıcılara izin vermek istiyoruz petrov ve sidorov bilgisayarı kapatıp yeniden başlatın ve görevleri kaldırın. Bu durumda, bu komutlar bir parola girilmesini gerektirmemelidir.

Sudo yardımcı programının bir başka güzel özelliği de takma adların oluşturulmasıdır, bu nedenle bizim durumumuzda / etc / sudoer'lar aşağıdaki satırlar:

User_Alias ​​​​USERGROUP1 = petrov, sidorov
Cmnd_Alias ​​​​CMDGROUP1 = / bin / kill, / sbin / yeniden başlat, / sbin / kapatma

Bununla iki takma ad oluşturduk KULLANICI GRUBU1 ihtiyacımız olan kullanıcıları dahil ettiğimiz ve CMDGROUP1 bir dizi gerekli komutla, daha sonra kullanılabilecekleri tüm kuralları etkilemeden yalnızca takma adları düzenleyebiliriz. Ardından kuralı ekleyin:

USERGROUP1 TÜMÜ = (TÜMÜ) NOPASSWD: CMDGROUP1

bu, belirtilen takma adda listelenen kullanıcıların, parola girmeden verilen takma addan herhangi bir kullanıcı komutu adına herhangi bir ana bilgisayar üzerinde yürütmesine olanak tanır.

Bu ikisine ek olarak, ana bilgisayar adı ve adına komut yürütmesine izin verilen kullanıcılar için takma adlar da mevcuttur, örneğin:

Host_Alias ​​​​WWW = web sunucusu1, web sunucusu2
Runas_Alias ​​​​WWW = www-veri, www-geliştirici

USERGROUP1 WWW = (WWW) TÜMÜ

Verilen kayıt seti, kullanıcıların girmesine izin verecek KULLANICI GRUBU1 kullanıcılar adına herhangi bir komutu yürütmek www-veri ve www-geliştiricişirketin web sunucularında.

Son olarak root hesabına hala ihtiyaç varsa ne yapacağımıza bakalım. Çok basit, etkinleştirmek için bir şifre belirlemeniz yeterlidir:

Sudo şifresi kökü

Süper kullanıcı hesabını şu komutla tekrar engelleyebilirsiniz:

Sudo passwd -l kök

Ubuntu'daki tüm yönetim görevlerinin sudo yardımcı programı kullanılarak yapılabileceğini unutmayın, bu nedenle gerçekten gerekmedikçe kök hesabı etkinleştirmeyin!

Gördüğünüz gibi, Ubuntu, hakları birkaç yönetici arasında esnek bir şekilde dağıtmanıza ve ayrıca bazı kullanıcıların haklarını yükseltme ve bunu verimli ve güvenli bir şekilde yapma yeteneği sağlamanıza olanak tanıyan zengin yönetici hakları yönetimi yeteneklerine sahiptir.

3 Mayıs 2016 12:20 27.946 görüntüleme | yorum yok

Kullanıcı yönetimi, bir Linux sistem yöneticisinin en önemli becerilerinden biridir. Tipik olarak, yeni bir sistemde yalnızca bir varsayılan kullanıcı vardır, root.

Kök hesap son derece ayrıcalıklı ve çok esnektir, ancak sunucuyu kalıcı olarak kök olarak çalıştırmak kesinlikle önerilmez. Gerçek şu ki, mutlak haklara sahip olan kök kullanıcı, yanlışlıkla sisteme ve sunucuya onarılamaz hasar verebilir. Bu nedenle, günlük çalışma için normal ayrıcalıklara sahip ek bir kullanıcı oluşturmanız ve ardından ona süper kullanıcı hakları vermeniz gerekir. Ayrıca, sunucuya erişimi olması gereken diğer kullanıcılar için ek hesaplar oluşturabilirsiniz.

Bu kılavuz size nasıl yeni kullanıcı hesapları oluşturacağınızı, sudo haklarını nasıl aktaracağınızı ve kullanıcıları nasıl sileceğinizi öğretecektir.

kullanıcı ekleme

Kök oturuma yeni bir kullanıcı eklemek için şunu girin:

Sudo erişimi olan root olmayan bir kullanıcı oturumundayken, şu komutu kullanarak yeni bir kullanıcı ekleyebilirsiniz:

sudo adduser yeni kullanıcı

Komut şunları önerecektir:

  • Bir şifre belirleyin ve onaylayın.
  • Kullanıcı hakkında ek bilgiler girin. Bu isteğe bağlıdır; varsayılan bilgileri kabul etmek için Enter tuşuna basmanız yeterlidir.
  • Sağlanan bilgilerin doğru olduğunu onaylayın (Enter'a basın).

Yeni kullanıcı hazır! Artık onu kullanarak sunucuya bağlanabilirsiniz.

sudo izinlerini ayarlama

Yönetici görevlerini gerçekleştirmek üzere yeni hesabı kullanabilmek için kullanıcıya sudo komutuna erişim izni vermeniz gerekir. Bu iki şekilde yapılabilir:

  1. sudo grubuna kullanıcı ekle
  2. / etc / sudoers dosyasındaki sudo ayarlarını düzenleyin

sudo grubuna kullanıcı ekle

Ubuntu 16.04'te sudo grubundaki tüm kullanıcıların varsayılan olarak sudo komutuna erişimi vardır.

Yeni kullanıcının hangi gruplara ait olduğunu öğrenmek için şunu girin:

Komut dönecektir:

yeni kullanıcı: yeni kullanıcı

Varsayılan olarak, sistemin her yeni kullanıcısı yalnızca aynı adı taşıyan gruba dahil edilir. Bir gruba kullanıcı eklemek için şunu girin:

usermod -aG sudo yeni kullanıcı

–aG bayrağı, kullanıcıyı listelenen gruplara ekler.

Kurulumu test etme

Şimdi yeni kullanıcının sudo komutuna erişimi olduğundan emin olmamız gerekiyor.

Varsayılan olarak, yeni bir kullanıcı oturumundaki komutlar şu şekilde çalıştırılır:

Bir komutu yönetici olarak çalıştırmak için komutun başına sudo ekleyin:

sudo bazı_komut

Bu durumda sistem mevcut kullanıcının şifresini soracaktır.

/ etc / sudoers dosyasını düzenleme

Kullanıcı ayrıcalıklarını genişletmenin alternatif bir yolu da sudoers dosyasını düzenlemektir. Bunu yapmak için / etc / sudoers dosyasını bir düzenleyicide açmanıza ve her sistem kullanıcısının ayrıcalıklarını açıkça belirtmenize izin veren visudo komutunu kullanın.

Bu komut aynı anda birden fazla düzenlemeyi engellediği ve dosyanın üzerine yazmadan önce bir içerik kontrolü yaptığı için sudoers dosyasını yalnızca visudo kullanarak düzenlemenizi öneririz. Bu, sudo yapılandırmasında ayrıcalık kaybına yol açabilecek hataları önler.

Kök oturumdaysanız, şunu girin:

Sudo erişimine sahip root olmayan bir kullanıcı oturumunda şunu girin:

Tipik olarak, visudo / etc / sudoers'ı yeni başlayanlar için zor olabilecek bir vi düzenleyicide açar. Varsayılan olarak, yeni Ubuntu kurulumlarında visudo daha tanıdık nano düzenleyiciyi kullanır. İmleci hareket ettirmek için ok tuşlarını kullanın. Çizgiyi bulun:

kök TÜMÜ = (TÜMÜ: TÜMÜ) TÜMÜ

Bu satırı kopyalayıp aşağıya yapıştırın, root yerine süper kullanıcı ayrıcalıkları vermek istediğiniz kullanıcının adını yazın.

kök TÜMÜ = (TÜMÜ: TÜMÜ) TÜMÜ
yeni kullanıcı TÜMÜ = (TÜMÜ: TÜMÜ) HEPSİ

Yükseltilmiş ayrıcalıklara ihtiyaç duyan her kullanıcı için bunun gibi bir satır ekleyin. Dosyayı kaydedin ve kapatın.

Kullanıcıları Silme

Gereksiz hesaplar silinebilir.

Dosyalarından ayrılan bir kullanıcıyı kaldırmak için şunu girin:

kök olarak
aldatıcı yeni kullanıcı
yükseltilmiş ayrıcalıklara sahip normal bir kullanıcı olarak:
sudo deluser yeni kullanıcı

Bir kullanıcıyı ana dizini ile birlikte kaldırmak için şunu kullanın:

kök kullanıcı oturumunda
deluser --remove-home yeni kullanıcı
genişletilmiş ayrıcalıklara sahip bir kullanıcı oturumunda:
sudo deluser --remove-home yeni kullanıcı

Uzak kullanıcının süper kullanıcı hakları varsa, dosyayı düzenleyerek bu hakları iptal etmeniz gerekir:

görsel
Veya
sudo görsel
kök TÜMÜ = (TÜMÜ: TÜMÜ) TÜMÜ
newuser ALL = (ALL: ALL) ALL # bu satırı kaldır

Satır dosyada kalırsa ve aynı addaki kullanıcı sistemde belirirse, otomatik olarak genişletilmiş ayrıcalıklar alacaktı. Şimdi bu olmayacak.

Çözüm

Bir Ubuntu 16.04 sunucusunu yönetirken kullanıcı yönetimi gerekli bir beceridir. Kullanıcıları ayırmanıza ve onlara yalnızca çalışmak için ihtiyaç duydukları erişimi vermenize olanak tanır.

Sudo kurulumu hakkında daha fazla bilgi için sayfamıza göz atın.

Etiketler:,

Linux çok kullanıcılı bir sistem olduğundan, dosya ve dizinlere erişim kontrolünün organize edilmesi sorunu, işletim sisteminin çözmesi gereken temel sorunlardan biridir. 70'lerde UNIX sistemi için geliştirilen erişim kontrol mekanizmaları (belki de daha önce birileri tarafından önerildi), çok basit, ancak 30 yıldan fazla bir süredir var oldukları ve bu güne kadar etkili oldukları ortaya çıktı. karşı karşıya oldukları zorlukları başarıyla yerine getirirler.

Erişim kontrol mekanizmaları, kullanıcı adlarına ve kullanıcı grubu adlarına dayanır. Linux'ta her kullanıcının oturum açtığı (oturum açtığı) benzersiz bir adı olduğunu zaten biliyorsunuz. Ayrıca sistemde bir takım kullanıcı grupları oluşturulur ve her kullanıcı bir veya birkaç gruba dahil edilebilir. Süper kullanıcı grupları oluşturur ve siler, ayrıca belirli bir grubun üyelerinin kompozisyonunu da değiştirebilir. Farklı grupların üyeleri, dosyalara erişmek için farklı haklara sahip olabilir; örneğin, Yöneticiler grubu, Programcılar grubundan daha fazla hakka sahip olabilir.

Her dosyanın düğümü, dosyanın sözde sahibinin adını ve o dosyanın haklarına sahip olan grubu içerir. Başlangıçta, bir dosya oluşturulduğunda, dosyayı oluşturan kullanıcı sahibi olarak ilan edilir. Daha doğrusu, dosyayı oluşturan işlemin adına başlatılan kullanıcı. Grup, dosya oluşturulduğunda da atanır - dosyayı oluşturan işlemin grup kimliği tarafından. Dosyanın sahibi ve grubu, daha sonraki çalışmalar sırasında komutlar kullanılarak değiştirilebilir. yemek ve chgrp(onlar hakkında daha sonra tartışılacaktır).

Şimdi komutu tekrar çalıştıralım ls -l... Ama buna ek bir parametre olarak belirli bir dosyanın adını verelim, örneğin komutun kendisini ayarlayan bir dosya ls... (Bu arada, komutun bu olasılığına dikkat edin ls -l- dizindeki tüm dosyalar hakkında bir kerede değil, belirli bir dosya hakkında bilgi alın).

$ ls -l / bin / ls

Bu durumda dosyanın kök kullanıcıya ve kök gruba ait olduğunu görebilirsiniz. Ancak şimdi bu komutun çıktısında, dosya türünü ve dosya erişim haklarını belirleyen ilk alanla daha fazla ilgileniyoruz. Verilen örnekteki bu alan, karakter dizisi ile temsil edilmektedir. -rwxr-xr-x... Bu semboller kabaca 4 gruba ayrılabilir.

Tek bir karakterden oluşan ilk grup dosya tipini tanımlar. Bu sembol, önceki bölümde tartışılan olası dosya türlerine göre aşağıdaki değerleri alabilir:

    - = - normal dosya;

    d =- dizin;

    b =- cihaz dosyasını engelle;

    c =- karakter cihaz dosyası;

    s =- etki alanı soketi (soket);

    p =- adlandırılmış boru (boru);

    ben =- sembolik bağlantı (bağlantı).

Bunu, sırasıyla dosyanın sahibi, bu dosyayla ilişkili kullanıcı grubu ve sistemin diğer tüm kullanıcıları için dosyaya erişim haklarını belirleyen, her biri üç karakterden oluşan üç grup izler. Örneğimizde, sahibin izinleri rwx olarak tanımlanmıştır, yani sahip ( kök) (r) dosyasını okuma, bu dosyaya yazma (w) ve dosyayı (x) çalıştırma hakkına sahiptir. Bu sembollerden herhangi birinin kısa çizgi ile değiştirilmesi, kullanıcının ilgili haktan mahrum bırakıldığı anlamına gelir. Aynı örnekte, diğer tüm kullanıcıların (gruba dahil olanlar dahil) kök) bu dosyaya yazma hakkından yoksundurlar, yani dosyayı düzenleyemezler ve genel olarak bir şekilde değiştirirler.

Genel olarak, UNIX sistemlerinde erişim hakları ve dosya türüyle ilgili bilgiler, iki bayttan, yani 16 bitten oluşan ayrı bir yapıda düğümlerde saklanır (bu doğaldır, çünkü bilgisayar r, w, x ile değil bitlerle çalışır. ). Bu 16 bitin dördü kodlanmış dosya tipi kaydı için ayrılmıştır. Sonraki üç bit, biraz sonra bahsedeceğimiz yürütülebilir dosyaların özel özelliklerini belirler. Son olarak, kalan 9 bit dosyanın izinlerini belirler. Bu 9 bit, üç bitlik 3 gruba ayrılır. İlk üç bit kullanıcı haklarını, sonraki üç bit grup haklarını, son 3 bit ise diğer tüm kullanıcıların haklarını tanımlar (yani dosya sahibi ve dosya grubu hariç tüm kullanıcılar).

Bu durumda karşılık gelen bitin değeri 1 ise hak verilir, 0'a eşit ise hak verilmez. Hakların sembolik gösteriminde, biri karşılık gelen sembolle (r, w veya x) değiştirilir ve 0 bir tire ile gösterilir.

Bir dosyayı okuma (r) hakkı, kullanıcının komut gibi çeşitli görüntüleme komutlarını kullanarak dosyanın içeriğini görüntüleyebileceği anlamına gelir. daha fazla veya herhangi bir metin düzenleyiciyi kullanarak. Ancak, dosyanın içeriğini bir metin düzenleyicide düzenleyerek, bu dosyaya yazma izniniz (w) yoksa, diskteki dosyadaki değişiklikleri kaydedemezsiniz. Yürütme izni (x), bir dosyayı belleğe yükleyebileceğiniz ve onu yürütülebilir bir program olarak çalıştırmayı deneyebileceğiniz anlamına gelir. Tabii ki, gerçekte dosya bir program (veya bir kabuk betiği) değilse, o zaman bu dosyayı yürütmek için çalıştırmak mümkün olmayacaktır, ancak diğer yandan, dosya gerçekten bir program olsa bile, ancak bunun için yürütme izni ayarlanmadı, o zaman da başlamaz.

Böylece Linux'ta hangi dosyaların yürütülebilir olduğunu bulduk! Gördüğünüz gibi, dosya adı uzantısının bununla hiçbir ilgisi yok, her şey "executable" özelliği ayarlanarak belirlenir ve yürütme hakkı herkese verilmeyebilir!

Aynı komutu çalıştırırsanız ls -l, ancak buna son argüman olarak, dosya adını değil, dizinin adını belirtin, izinlerin dizinler için de tanımlandığını ve aynı rwx sembolleriyle belirtildiğini göreceğiz. Örneğin, komutu çalıştırarak ls -l /, satırın bin dizinine karşılık geldiğini göreceğiz:

Doğal olarak, dizinlerle ilgili olarak, "doğru oku", "doğru yaz" ve "doğru uygula" kavramlarının yorumu biraz değişir. Bir dizinin yalnızca belirli bir dizindeki dosyaların listesini içeren bir dosya olduğunu hatırladığınızda, dizinlere okuma erişimini anlamak kolaydır. Bu nedenle, dizini okuma hakkınız varsa, içeriğini görüntüleyebilirsiniz (dizindeki bu dosyaların listesi). Yazma hakkı da anlaşılabilir - bu hakka sahip olarak, bu dizinde dosyalar oluşturabilir ve silebilirsiniz, yani dizine bir dosyanın adını ve ilgili bağlantıları içeren bir giriş ekleyebilir veya silebilirsiniz. Yürütme hakkı daha az sezgiseldir. Bu durumda, bu dizine gitme hakkı anlamına gelir. Sahip olarak, diğer kullanıcılara dizininizdeki bir dosyayı görüntüleme erişimi vermek istiyorsanız, onlara dizine erişim izni vermelisiniz, yani onlara "dizini yürütme hakkı" vermelisiniz. Ayrıca, ağaçta bu dizinin üzerindeki tüm dizinler için kullanıcıya yürütme izni verilmelidir. Bu nedenle, ilke olarak, tüm dizinler için yürütme hakkı, hem sahip hem de grup için ve diğer tüm kullanıcılar için varsayılan olarak ayarlanır. Ve bir dizine erişimi kapatmak istiyorsanız, tüm kullanıcıları (grup dahil) bu dizine girme hakkından mahrum edin. Kendinizi bu haktan mahrum etmeyin, aksi takdirde süper kullanıcı ile iletişime geçmeniz gerekecektir! (Not 11)

Önceki paragrafı okuduktan sonra, dizini okuma hakkının yürütme hakkıyla karşılaştırıldığında yeni bir şey olmadığı görünebilir. Ancak yine de bu haklar arasında bir farklılık vardır. Yalnızca yürütme hakkını ayarlarsanız, dizine girebileceksiniz, ancak orada tek bir dosya görmeyeceksiniz (bu etki özellikle Midnight Commander programı gibi bir tür dosya yöneticisi kullanıyorsanız belirgindir) . Bu dizinin alt dizinlerinden herhangi birine erişme hakkınız varsa, ona gidebilirsiniz (komutla) CD), ancak "körü körüne" dedikleri gibi, bellekten, çünkü geçerli dizinin dosya ve alt dizinlerinin bir listesini görmezsiniz.

Bir dosyaya erişirken kullanıcı haklarını kontrol etme algoritması aşağıdaki gibi tanımlanabilir. Sistem önce kullanıcı adının dosyanın sahibiyle aynı olup olmadığını kontrol eder. Bu adlar aynıysa (yani, sahibi dosyasına erişiyorsa), sahibin uygun erişim haklarına sahip olup olmadığı kontrol edilir: okuma, yazma veya yürütme (şaşırmayın, süper kullanıcı bazılarını iptal edebilir). hakları ve dosyanın sahibi). Böyle bir hak varsa, ilgili işleme izin verilir. Sahip gerekli hakka sahip değilse, grup veya diğer kullanıcılar için erişim öznitelikleri grubu aracılığıyla verilen hakların kontrolü bile kontrol edilmez ve kullanıcıya, istenen işlemin gerçekleştirilemediğine dair bir mesaj verilir. eylem (genellikle "İzin reddedildi" gibi bir şey).

Dosyaya erişen kullanıcının adı, sahibinin adıyla eşleşmiyorsa, sistem, sahibin bu dosyayla ilişkili gruba ait olup olmadığını kontrol eder (bundan sonra buna yalnızca dosyanın grubu diyeceğiz). Aitse, dosyaya erişilip erişilemeyeceğini belirlemek için grup öznitelikleri kullanılır ve sahip ile diğer tüm kullanıcıların öznitelikleri yoksayılır. Kullanıcı dosyanın sahibi değilse ve dosya grubunun bir üyesi değilse, hakları diğer kullanıcılar için özniteliklere göre belirlenir. Böylece, dosya izinlerini belirleyen üçüncü öznitelik grubu, dosya sahibi ve dosya grubundaki kullanıcılar dışındaki tüm kullanıcılar için geçerlidir.

Bir dosyaya erişim haklarını değiştirmek için şu komutu kullanın: chmod... İki şekilde kullanılabilir. İlk seçenekte, kime hangi hakkı verdiğinizi veya bu haktan kimleri mahrum ettiğinizi açıkça belirtmelisiniz:

$ chmod wXp dosya adı

sembol yerine nerede w ikame edilmiş

    veya sembol sen(yani sahibi olan kullanıcı);

    veya G(grup);

    veya Ö(bu dosyanın ait olduğu gruba dahil olmayan tüm kullanıcılar);

    veya a(sistemin tüm kullanıcıları, yani sahip, grup ve diğer herkes).

Onun yerine x koyuldu:

    veya + (hakkı veriyoruz);

    veya - (ilgili haktan mahrum ediyoruz);

    veya = (mevcut olanlar yerine belirtilen hakları ayarlayın),

Onun yerine P- ilgili hakkı gösteren bir sembol:

    r(okuma);

    w(kayıt);

    x(verim).

İşte komutu kullanmanın bazı örnekleri chmod:

$ chmod a + x dosya_adı

sistemin tüm kullanıcılarına bu dosyayı yürütme hakkı verir.

$ chmod go-rw dosya_adı

dosyanın sahibi dışındaki herkes için okuma ve yazma erişimini kaldırır.

$ chmod ugo + rwx dosya_adı

herkese okuma, yazma ve yürütme hakkı verir.

Bu hakkın kime verildiğinin belirtilmesini atlarsak, genel olarak tüm kullanıcılardan bahsediyoruz demektir, yani $ chmod a + x dosya_adı

basitçe yazılabilir

$ chmod + x dosya_adı

Komutu ayarlamak için ikinci seçenek chmod(daha sık kullanılır) hakların dijital temsiline dayanır. Bunun için r karakterini 4 rakamı ile w karakterini 2 rakamı ile x karakterini 1 rakamı ile kodluyoruz. . Böylece dosya sahibi, dosya grubu ve diğer tüm kullanıcılar için gerekli dijital değerleri elde ettikten sonra, bu üç basamağı komuta argüman olarak ayarladık. chmod(Bu sayıları komut adından sonra, dosya adını belirten ikinci argümandan önce koyarız). Örneğin, tüm hakları sahibine (4 + 2 + 1 = 7) vermeniz gerekiyorsa, okuma ve yazma hakkı - gruba (4 + 2 = 6) ve geri kalanına hiçbir hak vermeyin. , o zaman aşağıdaki komutu vermelisiniz:

$ chmod 760 dosya_adı

Sekizli rakamların ikili kodlamasına aşina iseniz, o zaman bu temsil biçiminde komut adından sonraki rakamların, dosya sahibinin haklarını belirleyen 9 bitin sekizli gösteriminden başka bir şey olmadığını anlayacaksınız. dosya grubu ve tüm kullanıcılar için.

Komutu kullanarak dosya izinlerini değiştirin chmod yalnızca dosyanın sahibi veya süper kullanıcı olabilir. Bir grubun haklarını değiştirebilmek için, sahibinin ayrıca bu dosyaya hak vermek istediği grubun üyesi olması gerekir.

Dosya izinleriyle ilgili hikayeyi tamamlamak için, aynı komut kullanılarak ayarlanabilecek üç olası dosya özelliğinden daha bahsetmemiz gerekiyor. chmod... Bunlar, dosya türü kodundan hemen sonra dosyanın izinlerini tanımlayan iki baytlık yapıda dosyanın düğümünde 5-7 konumlarını işgal eden yürütülebilir dosyalar için aynı özniteliklerdir.

Bu özniteliklerden ilki, "kullanıcı kimliği değiştirme biti" olarak adlandırılır. Bu bitin anlamı aşağıdaki gibidir.

Genellikle, bir kullanıcı yürütülmek üzere bir program başlattığında, bu program, programı başlatan kullanıcının sahip olduğu dosyalar ve dizinler için aynı izinleri alır. "Kullanıcı kimliği değişiklik biti" ayarlanmışsa, program, program dosyasının sahibinin sahip olduğu dosyalara ve dizinlere erişim hakları kazanacaktır (bu nedenle, söz konusu özniteliğe "sahip kimliği değişiklik biti" adı verilir). Bu, aksi takdirde gerçekleştirilmesi zor olacak bazı görevlerin yapılmasına izin verir. En tipik örnek, parola değiştirme komutudur. şifre... Tüm kullanıcı şifreleri, süper kullanıcıya ait olan / etc / passwd dosyasında saklanır. kök... Bu nedenle, komut da dahil olmak üzere sıradan kullanıcılar tarafından başlatılan programlar şifre, bu dosyaya yazamaz. Bu, kullanıcının olduğu gibi kendi şifresini değiştiremeyeceği anlamına gelir. Ancak / usr / bin / passwd dosyası için, kullanıcı olan "sahip kimliğini değiştir" biti ayarlanır. kök... Bu nedenle, şifre değiştirici şifre haklarıyla çalışır kök ve / etc / passwd dosyasına yazma hakkını alır (programın kendisi sayesinde kullanıcının bu dosyada sadece bir satırı değiştirebilmesi sağlanır).

Süper kullanıcı, komutu kullanarak "sahip tanımlayıcı bitini değiştir" ayarlayabilir

# chmod + s dosya_adı

"Grup kimliği değişiklik biti" benzer şekilde çalışır.

Yürütülebilir bir dosyanın bir başka olası özelliği de "yapışkan bit" veya "yapışkan bit"tir. Bu bit, program bittikten sonra sisteme RAM'e kaydetmesini söyler. Bu biti, genellikle yürütme için çağrılan görevler için etkinleştirmek uygundur, çünkü bu durumda, her yeni başlatma ile programı yüklerken zamandan tasarruf edilir. Bu öznitelik daha eski bilgisayar modellerinde gerekliydi. Modern yüksek hızlı sistemlerde nadiren kullanılır.

Komutta öznitelikleri belirtmek için sayısal seçeneği kullanırsanız chmod, bu niteliklerin sayısal değeri, kullanıcının haklarını belirten rakamlardan önce gelmelidir:

# chmod 4775 dosya_adı

Bu durumda, istenen toplam sonucu elde etmek için bu bitlerin ağırlıkları aşağıdaki gibi ayarlanır:

    4 - "kullanıcı kimliği değiştirme biti",

    2 - "grup tanımlayıcı değişiklik biti",

    1 - "yapışkan uç".

Bu üç bitten herhangi biri 1'e ayarlanırsa, komut çıktısı biraz değiştirilir. ls -l erişim haklarının belirlenmiş özelliklerini görüntüleme açısından. "Kullanıcı kimliği değiştirme biti" 1 olarak ayarlanırsa, dosya sahibinin haklarını tanımlayan gruptaki "x" karakteri "s" karakteri ile değiştirilir. Ayrıca, sahibi dosyayı yürütme hakkına sahipse, "x" karakteri küçük bir "s" ile değiştirilir ve dosya sahibinin dosyayı yürütme hakkı yoksa (örneğin, dosya yürütülebilir değil) hiç), o zaman "x" yerine "S" konur. "Grup tanımlayıcı değişiklik biti" belirtildiğinde, ancak grubun haklarını tanımlayan nitelikler grubunda "x" karakteri değiştirildiğinde benzer ikameler gerçekleşir. "Yapışkan bit" 1 ise, diğer tüm kullanıcılar için hakları tanımlayan öznitelik grubundaki "x" karakteri değiştirilir ve tüm kullanıcılar dosyayı çalıştırabiliyorsa "x", "t" karakteri ile değiştirilir ve bu hakka sahip değillerse bir "T" ile.

Böylece, komutun çıktısında olmasına rağmen ls -l kimlik değiştirme bitlerinin ve görev kaydetme bitinin değerlerini görüntülemek için ayrı konumlar sağlanmaz, ilgili bilgiler görüntülenir. İşte bunun nasıl görüneceğine dair küçük bir örnek:

# ls -l prim1

V. Kostromin (rus-linux nokta ağında kos) - 4.5. Dosya ve dizin izinleri

Yeni bir Ubuntu Linux 16.04.xx LTS kullanıcısı olduğumu varsayalım. Hemen bir takım sorularım olabilir. Sunucumda nasıl yeni bir sudo kullanıcısı oluşturabilirim? Ubuntu'da komut satırı seçeneğini kullanarak sudoer dosyasına yeni kullanıcı nasıl eklenir?

Linux (ve genel olarak Unix) root adında bir süper kullanıcıya sahiptir. Kök kullanıcı her şeyi yapabilir ve bu nedenle sistemin normal kullanımı çok tehlikeli hale gelebilir. Komutu yanlış girebilir ve sistemi bozabilirsiniz. Sudo komutu, yetkili bir kullanıcının komutu süper kullanıcı (kök kullanıcı) veya güvenlik ilkesinde belirtildiği gibi başka bir kullanıcı olarak çalıştırmasını sağlar. Genellikle sudo, normal kullanıcılar için yönetici hakları ve ayrıcalıkları sağlamak için sunucularda kullanılır. Bu hızlı eğitimde, Ubuntu'da nasıl sudo kullanıcısı oluşturulacağını öğreneceksiniz.

Ubuntu'da sudo kullanıcısı oluşturmak için atılması gereken birkaç adım

Ubuntu sunucusunda yönetici grubu ve sudo grubu hakkında daha fazla bilgi

Yönetim grubunun üyeleri kök ayrıcalıkları alabilir. Sudo grubunun tüm üyeleri, Ubuntu sunucusunda herhangi bir komutu çalıştırır. Bu nedenle, kullanıcıyı Ubuntu sunucusundaki sudo grubuna eklemeniz yeterlidir. Yönetici grubu, Ubuntu 12.04 ve sonraki sürümlerden bu yana önemli ölçüde azaltılmıştır. Bu nedenle, yönetici grubu artık mevcut değil veya yalnızca Ubuntu 12.04 veya daha yüksek sürümlerde kullanılıyor. Çalışmasının nedeni:

# grep -B1 -i "^% sudo" / etc / sudoers

$ sudo grep -B1 -i "^% sudo" / etc / sudoers

# Sudo grubunun üyelerinin herhangi bir komutu yürütmesine izin ver % sudo ALL = (ALL: ALL) ALL

Bazı pratik örneklere bir göz atalım.

Komut satırını kullanarak sudo'ya vivek adlı yeni bir kullanıcıyı nasıl ekleyebilirim?

Bir terminal açın veya uzak sunucunuza giriş yapın:

$ ssh [e-posta korumalı]$ ssh [e-posta korumalı] { [e-posta korumalı]: / kök) #

# adduser vivek

$ sudo adduser vivek

Şekil 01: Ubuntu'da Yeni Bir Kullanıcı Nasıl Eklenir

Olası veri çıktılarına örnekler:

Vivek hesabı için Ubuntu'da sudo kullanıcısı nasıl oluşturulur

Aşağıdaki komutu girin:

# adduser vivek sudo

VEYA Linux'ta bir gruba kullanıcı eklemek için usermod komutunu kullanın:

# usermod -aG sudo vivek

$ sudo usermod -aG sudo vivek

$ sudo adduser vivek sudo

Olası veri çıktılarına örnekler:

Şekil 02: Yönetici haklarını almak için sudo'ya vivek kullanıcısı ekleyin

Yeni kullanıcıyı ve grup üyesini şu şekilde onaylayın:

$ kimliği vivek

Olası veri çıktılarına örnekler:

Şekil 03: Kullanıcı ve Grup Bilgilerini Görüntüle

Vivek kullanıcısı artık şu şekilde ssh komutunu kullanarak giriş yapabilir:

$ ssh [e-posta korumalı]

Vivek'in sudo komutunu kullanabileceğinden emin olun:

$ sudo kedisi / vb / sudoers

sudo komutunu ilk kez kullandığınızda, sizden vivek hesap şifreniz istenecektir. Bu yüzden root erişimi elde etmek için vivek şifresini girin. Sudo ile herhangi bir komut türü, vivek hesabı için kök ayrıcalıklarıyla çalıştırılmalıdır. Kök kabuk almak için şunu girin:

$ sudo –s

Olası veri çıktılarına örnekler:

Şekil 03: vivek kullanıcı hesabı için sudo erişimini test etme

Ve sen de yaptın. Artık diğer kullanıcıların Ubuntu sunucusunda sudo çalıştırmasına ve kullanıcılara yönetici hakları vermesine izin verebilirsiniz.