Klasörler ve dosyalar için yinelemeli olarak Chown. Her türlü erişim yasaktır. İzin Dosya Türleri

Linux'taki her dosya veya klasörün kendi izinleri vardır.

3 tür hak vardır:
oku(r),yaz(w),yürüt(x)

Haklar 3 tür kullanıcı için tanımlanır:
sahip(u), grup(g), diğerleri (o)

Yani, her dosyanın hakları 9 bitlik bilgidir (3 tür hak * 3 tür kullanıcı), her bit ayarlanabilir (=1) erişime izin verilir veya sıfırlanır (=0) erişim reddedilir.

Hakları atarken sekizlik sayı sistemini kullanmak gelenekseldir.

Hakların metin gösterimi (10 karakter):
- rwxr- - r - -
0123456789

0 konumundaki karakter:
"-" - normal dosya, "d" - klasör, "l" - bağlantı

1-3 konumundaki semboller:
"rwx" - sahip hakları

4-6 konumlarındaki semboller:
"r - -" - grup hakları

7-9 konumlarındaki semboller:
"r - -" - diğer herkes için haklar

Hakları belirleme tablosu:

Tablodan da görüleceği üzere haklar kolaylıkla hesaplanır.
basit toplama. 1=yürüt, 2=yaz, 4=oku.
örneğin, yürütme(1) ve okuma(4) gereklidir, 1+4=5 elde ederiz

Örnek 644:
- sahibi(u) okuma ve yazma
- grup(g) salt okunur
- diğerleri(o) salt okunur

Örnek 755:
- tüm hakların sahibi/sahipleri
- grup (g) okuma ve yürütme
- diğer(o) okuma ve yürütme

C gibi programlama dillerinde,
Her sayının başına sağa 0 eklenir, bu da sayının sekizli olduğu anlamına gelir, yani. 644 yerine 0644 yazın. Komut satırından hakları değiştirirken buna genellikle gerek yoktur.

Hakların dört haneli temsili (4755), ek haklar
SUID, SGID, yapışkan bitler:

  • SUID veya setuid: çalışma zamanında "Kullanıcı Kimliğini" değiştirin
  • SGID veya setgid: çalışma zamanında "Grup Kimliğini" değiştirin
  • Yapışkan bit: Sahip dışındaki tüm kullanıcılar için silme işlemini devre dışı bırakır. Daha önce bit, işlem tamamlandıktan sonra bellekte "tutmak" anlamına geliyordu
Masa. Ek hakların sayısal gösterimi:

Ek bitlerin metinsel gösterimi:
Ek bitler aşağıdaki sembollerle gösterilir:
"S", "s" - SUID, SGID
"T", "t" - yapışkan parça
bu bitlerin konumu "x" yürütme haklarının konumları (3,6,9) ile çakışır
Ancak icra hakkı yoksa “büyük harf” kullanılır, yani. büyük semboller. Yürütme izinleri ayarlanmışsa "küçük harf" kullanılır, yani. küçük semboller.

örnekler:

SUID seti:
- r w s - - - - - - Sahip için SUID bitlerinin ayarlanması ve çalıştırılması
- r - S - - - - - - SUID biti ayarlandı, yürütme biti ayarlanmadı

SGID seti:
- r w x r w s - - - SGID bitlerinin ayarlanması ve grup yürütülmesi
- r w x r - S - - - SGID biti ayarlandı, ayarlanmadı. grup için yürütme

yapışkan bit seti:
- r w x r w x r w t yapışkan bitlerin ayarlanması ve diğerleri için çalıştırılması
- r w x r w x r - T yapışkan biti ayarlandı ancak ayarlanmadı. başkaları için performans sergilemek

Dosya ve klasörlere kurulum sırasında hakların etkisindeki farklılıklar:

HaklarDosyalarklasörler
okuma içerik okumadosyaların listesini alma
kayıt içerik kaydıdosya listesini değiştirme
(oluşturma, silme, yeniden adlandırma)
verimdosya yürütülebilirkullanıcı veya işlem klasörü "geçerli/çalışıyor" hale getirebilir
SUID Çalıştırırken "Kullanıcı Kimliğini" ayarlayın Dosya/klasör oluştururken kullanıcı kimliğini geçersiz kılın (kök klasör sahibi kimliğini kullanın)
SGID Çalıştırırken "Grup Kimliğini" ayarlayın Dosya/klasör oluştururken grup kimliğini geçersiz kılın (kök klasörün grup kimliğini kullanın)
yapışkan sahibi dışında herkes tarafından silinmesini engelle

izinleri değiştirme komutu chmod:
chmod [-R] dosya/klasör izinleri

"-R", izinleri tüm dosyalara ve alt klasörlere yinelemeli olarak uygular

Örnekler:
chmod -R 755 klasörü/
chmod644 dosyası
vesaire.

Hakları tamamen değiştirmek değil, yalnızca belirli kullanıcı grupları için hak eklemek veya hakları iptal etmek mümkündür.
sekizlik sayılar yerine sembollerin kullanılması.
"u" - kullanıcı/sahip
"g" - kullanıcı grubu
"o" - diğer kullanıcılar
"a" - tüm kullanıcı grupları

İzin formatı[[+-=], ...

Örnekler:
chmod -R a+x klasörü/tüm gruplar için yinelemeli olarak çalıştır
chmod a+rx dosyası herkes için okunur ve yürütülür
chmod u+rx,g-rx dosya ekleme, sahibi için okuma ve yürütme ve
bir grubun izinlerini iptal etme
chmod a+r,o= dosya ekleme, tüm grup türleri için okuma ve iptal etme
tüm diğer kullanıcılar için tüm haklar

chown sahibini değiştirme komutu:

Chown [-R] sahibi:grup dosyası/klasörü

Örnekler:
chown -R 0:0 klasör/sahibi/grubu ayarla = yinelemeli olarak kök
chown kullanıcım:grubum dosyası, dosya için kullanıcımı/grubumu ayarla

Linux'ta chown komutuyla ilgili yardım

Linux'ta bir dosya ve/veya klasörün kullanıcısını ve/veya grubunu değiştirmek için chown komutunu kullanın. Her zamanki gibi öncelikle bu komut için işletim sisteminin komut istemine bakalım:

Kök@sunucu:~# chown --help Kullanım: chown ... [:] DOSYA... veya: chown ... --reference=RFİLE DOSYASI... Her DOSYA'nın sahibini ve/veya grubunu SAHİP olarak değiştirin ve/veya GRUP. --reference ile her DOSYA'nın sahibini ve grubunu RFILE'ınkilerle değiştirin. -c, --changes ayrıntılı gibidir ancak yalnızca değişiklik yapıldığında rapor verir -f, --silent, --quiet çoğu hata mesajını bastırır -v, --verbose işlenen her dosya için bir tanı çıktısı verir --dereference referansını etkiler sembolik bağın kendisinden ziyade her bir sembolik bağ (bu varsayılandır) -h, --no-dereference başvurulan herhangi bir dosya yerine sembolik bağları etkiler (yalnızca bir sembolik bağın sahipliğini değiştirebilen sistemlerde faydalıdır) --from= CURRENT_OWNER:CURRENT_GROUP her dosyanın sahibini ve/veya grubunu yalnızca mevcut sahibi ve/veya grubu burada belirtilenlerle eşleşiyorsa değiştirir. Her ikisi de atlanabilir, bu durumda atlanan öznitelik için bir eşleşme gerekli değildir --no-preserve-root "/" özel olarak ele alınmaz (varsayılan) --preserve-root "/" üzerinde yinelemeli olarak çalışmaz -- reference=RFILE, OWNER:GROUP değerlerini belirtmek yerine RFILE'ın sahibini ve grubunu kullanır -R, --recursive dosyalar ve dizinler üzerinde yinelemeli olarak çalışır Aşağıdaki seçenekler, -R seçeneği de belirtildiğinde bir hiyerarşinin nasıl geçileceğini değiştirir. birden fazla belirtilmişse, yalnızca sonuncusu geçerli olur. -H, eğer bir komut satırı argümanı bir dizine giden sembolik bir bağlantıysa, onu çaprazlayın -L karşılaşılan bir dizine giden her sembolik bağlantıyı çaprazlayın -P herhangi bir sembolik bağlantıyı çaprazlamayın (varsayılan) ) - -help bu yardımı görüntüler ve çıkar --version sürüm bilgilerinin çıktısını alır ve çıkar Eksikse Sahip değişmez Grup eksikse değişmez, ancak sembolik bir SAHİP ve GRUP sayısal olabilir. ve sembolik Örnekler: chown root /u /u'nun sahibini "root" olarak değiştirin. chown root:staff /u Aynı şekilde, ancak grubunu da "personel" olarak değiştirin. chown -hR root /u /u ve alt dosyaların sahibini "root" olarak değiştirin. GNU coreutils çevrimiçi yardımı: Tam belgeler şu adreste: veya yerel olarak şu yolla kullanılabilir: info "(coreutils) chown invokasyon"

Linux'ta bir dosya ve/veya klasörün kullanıcısını hızlı bir şekilde değiştirme

Bu komuta alışmak için harcanan zamanı azaltmak için, size hemen Linux'ta bir dosya ve/veya klasörün kullanıcısını hızlı bir şekilde nasıl değiştirebileceğinize dair hazır bir tarif vereceğim. Bu komutun formatı şöyledir:

Chown kullanıcısı:grup /yama/dosyaadı chown -R kullanıcı:grup /yama/klasöradı

İlk satırda kullanıcı user olarak değiştirilecek, grup /patch/filename dosyası için grup olarak değiştirilecek.

Yukarıdaki örnekteki ikinci satır, yinelemeli işleme anlamına gelen ek -R seçeneğini kullanır. Yani /patch/klasöradı klasörü sahibi ve grubu değiştirecek ancak bu burada bitmeyecek, bu dizinde bulunan tüm klasör ve dosyalar da sahip ve grup değiştirme sürecinden geçecektir. Sistemdeki bir politika grubunda genel değişiklikler yapılırken özyineleme çok kullanışlı olabilir.

Chown komutunun geri kalan seçenekleri çok sık talep edilmiyor ve kullanılmıyor, bu yüzden şimdilik onlarla ilgilenmeyeceğim.

Linux felsefesinin temeli, tüm işletim sistemi nesnelerinin dosyalar olmasıdır; belirli sistem özelliklerine erişim sağlamak için, kullanıcıya yalnızca gerekli dosyalara erişim sağlarız veya bunları kaldırırız. Makalede tüm haklardan daha ayrıntılı olarak bahsettim, ancak burada sadece her dosyanın üç hak grubuna sahip olduğunu söyleyeceğim: sahip, grup ve diğer herkes için.

Bir dosya oluşturulduğunda, adına oluşturulduğu kullanıcı dosyanın sahibi olur ve grup, sahibin ana grubu olarak ayarlanır. Ancak dosya sahibi ve grup chown ve chgrp komutları kullanılarak değiştirilebilir. Bu makale chown linux komutunu ve kullanımının temel örneklerini kapsayacaktır.

1. Sözdizimi ve seçenekler

Chown'un sözdizimi diğer benzer Linux komutları gibi çok basittir:

$ chown kullanıcı seçenekleri /yol/giden/dosya

Kullanıcı alanında dosyayı aktarmak istediğimiz kullanıcıyı belirtmeliyiz. Ayrıca iki nokta üst üste işaretiyle ayrılmış bir grup da belirtebilirsiniz; örneğin, Kullanıcı grubu. O zaman sadece kullanıcı değil, grup da değişecektir. İhtiyacınız olabilecek ana seçenekler şunlardır:

  • -c, --değişiklikler- yapılan tüm değişikliklerin ayrıntılı çıktısı;
  • -f, --sessiz, --sessiz- minimum bilgi, hata mesajlarını gizleme;
  • --dereferans- bağlantının kendisi yerine sembolik bağlantının yönlendirdiği dosyanın haklarını değiştirin (varsayılan davranış);
  • -h, --no-reference- sembolik bağlantıların haklarını değiştirin ve yönlendirdikleri dosyalara dokunmayın;
  • --itibaren- kullanıcıyı yalnızca sahibi belirtilen kullanıcı ve grup olan dosyalar için değiştirin;
  • -R, --özyinelemeli- tüm alt dizinlerin yinelemeli işlenmesi;
  • -H- bir dizine sembolik bir bağlantı aktarılırsa, ona gidin;
  • -L- dizinlere giden tüm sembolik bağlantıları takip edin;
  • -P- dizinlere giden sembolik bağlantıları takip etmeyin (varsayılan).

Yardımcı programın birkaç seçeneği daha vardır, ancak bunlar en temel olanlardır ve çoğuna ihtiyacınız olmayacaktır. Şimdi chown'un nasıl kullanılacağını görelim.

2. Chown'u kullanma

Örneğin, birkaç dizin klasörümüz var ve bunların sahibi kullanıcı sergiy'dir:

Dir1 klasörünün sahibini root olarak değiştirelim:

seçilmiş kök ./dir1

Bir dizinin veya dosyanın sahibini ve grubunu hemen değiştirmek istiyorsanız, bunları iki nokta üst üste işaretiyle ayırarak yazın; örneğin, dir2 dizininin kullanıcısını ve grubunu kök olarak değiştirin:

chown root:root ./dir2

Değişikliklerin yalnızca bu dizine değil tüm alt dizinlere de uygulanmasını istiyorsanız -R seçeneğini ekleyin:

chown -R kök:kök ./dir3

chown --from=root:root www-data:www-data -cR ./

Kurucu ve site yöneticisi, açık kaynaklı yazılım ve Linux işletim sistemi konusunda tutkuluyum. Şu anda ana işletim sistemim olarak Ubuntu'yu kullanıyorum. Linux'un yanı sıra bilgi teknolojisi ve modern bilimle ilgili her şeyle ilgileniyorum.

Sizlere Linux'ta kullanıcı ve grupları detaylı olarak anlatmaya devam ediyoruz ve bugün chown ve chmod komutlarının nasıl kullanılacağından bahsedeceğiz.

CHOWN

Chown - İngilizce'den kendi adını değiştir. Ve bildiğiniz gibi Linux'un kullanıcıları ve grupları var. Her kullanıcının kendi oluşturduğu veya yüklediği dosyaları vardır. Her kullanıcı kendi grubundadır ve diğer gruplardaki diğer kullanıcılarla birleştirilebilir.

Bir dosyanın sahibinin kim olduğunu ve hangi grupta olduğunu öğrenmek için şu komutu kullanın:

Bir dosyanın sahibini (kullanıcısını) değiştirmek veya değiştirmek istiyorsanız komut size yardımcı olacaktır:

Sudo chown kullanıcıAdı text.txt

Bu örnekte text.txt dosyasını userName'e atadık.

Yalnızca grubu değiştirmek istiyorsanız chgrp komutunu kullanabilirsiniz:

Sudo chgrp grupAdı text.txt

2 farklı komut girmemek için şunu yapın:

Sudo chown kullanıcıAdı:grupAdı text.txt

Önce dosyanın sahibi, ardından grup belirtilir:

sudo chownSahibinin adı : grup ismi metin.txt

Bir dizindeki sahibi ve grubu değiştirmeniz gerekiyorsa ve orada çok sayıda dosya ve klasör varsa -R anahtarını kullanın:

Sudo chown -R kullanıcıAdı:grupAdı /var/www/site/

CHMOD

Ve böylece kullanıcıların ve grupların olduğunu biliyoruz. Şimdi erişim haklarından bahsedelim. Bu neden gerekli? Örneğin, kişisel dosyalarınızı içeren bir dizininiz var. böylece sen mal sahibi örneğin dosyaları düzenleyebilir, görüntüleyebilir, grup , yalnızca verileri, dosyaları ve dinlenmek Hiçbir gruba üye olmayan ve sahibi olmayan kullanıcılar hiçbir şey yapamadıklarından erişim haklarına ihtiyaç duyulmaktadır.

Dosya izinleri sayı ve harflerle belirtilebilir:

Sayılarla hakların değerleri özetlenmiştir:

  • tüm haklar (rwx) 7 = 4 + 2 +1
  • okuma ve yazma (rw-) 6 = 4 + 2 + 0
  • oku ve çalıştır (r-x) 5 = 4 + 0 + 1
  • sadece okuyorum 4 (r—) = 4 + 0 + 0
  • yalnızca kayıt 2 (-w-) = 0 + 2 + 0
  • hak yok (-) 0 = 0 + 0 + 0

Her dosya ve dizin için, sahibine, grubuna ve diğer kullanıcılara ayrı ayrı haklar atanır.

Mal sahibi Grup Dinlenmek
sen G Ö
izin mektupları erişim hakları numaraları
rwxrwxrwx 777 oku, yaz, her şeyi yap
rwxr-xr-x 755 okur, yazar, çalıştırır oku ve çalıştır
rw-r—r— 644 oku ve yaz yalnızca çiftler
R--- 400 Sadece sahibi okur

Sayıları veya harfleri kullanarak chmod komutunu kullanarak bir dosyaya veya dizine erişim haklarını değiştirebilirsiniz.

Sayılara erişim haklarını atama

Bir dosyanın veya dizinin izinlerini sayıları kullanarak chmod komutuyla değiştirmek için şu komutu girin:

Sudo chmod 755 text.txt

Dizinler için chmod'dan sonra -R anahtarını eklemeniz gerekir.

Aşağıda, tüm klasörler ve alt klasörlerdeki izinlerin toplu olarak nasıl değiştirileceğine ilişkin yararlı bir komut bulunmaktadır.

Klasörler için:

Bulmak/ senin yolun -d tipi -exec chmod 755 () \;

Dosyalar için:

Bulmak/ senin yolun -f tipi -exec chmod 644 () \;

Erişim haklarının harflerle atanması

Yeni başlayanlar için erişim haklarını harflerle değiştirmek biraz daha zor olacaktır ancak bu bilgi faydalı olacaktır.

Bildiğiniz gibi bir sahip, bir grup ve diğer kullanıcılar var ve bunlar şu şekilde belirlenmiş:

sen kullanıcı Mal sahibi
G grup

Linux ve *BSD sistemlerindeki dosya ve klasörlerin sahipliğini ve izinlerini değiştirin

Aşağıdaki bilgiler yeni başlayanlar için faydalı olacaktır Linux Ve * BSD sistem yöneticileri. Genel olarak, ister Linux, Windows veya FreeBSD olsun, herhangi bir işletim sisteminde, uygulamaların, hizmetlerin ve bir bütün olarak sistemin güvenliğinin doğru çalışması, doğrudan dosya ve klasörlere erişim haklarına bağlıdır. Aşağıdaki araçları kullanarak erişim haklarını ayarlarken ortaya çıkan sorunların neredeyse %90'ını çözebilirsiniz.

Tüm klasör ve dosyaların sahibini değiştirin. Unix bu amaçlar için şu komutu kullanır: yenilmiş. Bir dizi parametresi vardır:

  • Seçenekler. Örneğin, değişikliklerin yalnızca bu dizini değil tüm alt dizinleri etkilemesi için komutu yinelemeli olarak uygulamanız gerekir, yani. "-R" parametresi ile.
  • Sahip veya sahipler grubu (“kullanıcı:grup” veya “kullanıcı”).
  • Komutun uygulanması gereken klasörlerin/dosyaların yolları. Örneğin, "/mnt/pool1/dts1/backup".

Böylece, dizinlerin ve tüm alt klasörlerin ve dosyaların sahibini (ve sahip grubunu) değiştirme komutu şöyle görünecektir:

sudo chown -R kullanıcı:grup /ev/kullanıcı/dir/

Bir dosya veya klasördeki izinleri değiştirme Linux ve *BDS sistemlerinde bu komutu kullanabilirsiniz. mod. Bu komutun işleyişinde ve haklar ayrılığı ilkesinde Unix'in kendine has özellikleri olduğunu belirtmekte fayda var. Böylece, bir dosya veya klasörün sahibine ek olarak, aynı sahibin, grubun ve diğer tüm kullanıcıların hangi işlemleri gerçekleştirebileceğini yapılandırabilirsiniz. Unix'te yetenekler şu şekilde bölünmüştür: sahip, sahipler grubu ve diğerleri. Ayrıca aşağıdaki hak paylaşımı da vardır:

  • Bir dosyayı çalıştırma hakkı (klasörler için - dizinde geçiş yapma).
  • Bir dosyayı değiştirme hakkı (bir dizinde dosya ve klasör oluşturma ve silme)
  • Dosya okuma hakkı (klasörler için bu, dizinin içeriğini görüntüleme hakkıdır)

Kullanım kolaylığı ve ezberleme için aşağıdaki kodlama kullanılır:

  • lansman - 1
  • değişiklik - 2
  • okuma - 4

Bu dijital sembolleri ekleyerek, sahibine/grubuna/diğerlerine verilen bir dizi hak elde ederiz. Bir örnek kullanarak bu bilgilere bakalım:

Yalnızca dosyanın sahibi dosyayı değiştirme hakkına sahiptir, sahibin grubu okuyabilir, geri kalanı hiçbir şey yapamaz, dolayısıyla komut şu şekilde olacaktır:

chmod 640 /media/fileshare/file.txt

Herkes klasörde dosya oluşturabilir ancak bunları yalnızca sahibi görebilir:

chmod 622 /medya/dosya paylaşımı/mesajlar/

Böylece herkes bir programı çalıştırabilir ancak sahibi dışında hiç kimse onu düzenleyemez:

chmod 711 /medya/paylaşım/exec

Ekli tüm dosya ve klasörlerin haklarını değiştirmek için (yani yinelemeli olarak), “-R” anahtarı tekrar kullanılır.

Bu işlemleri gerçekleştirirken, dosya ve dizin haklarını yalnızca yöneticilerin ve bu klasörlerin ve dosyaların sahiplerinin değiştirebileceğini anlamakta fayda var.

Yalnızca dosyalara veya yalnızca klasörlere ilişkin izinleri değiştirme- takım bulmak. Bu durumda dosyalar sırasıyla dosya (f) ve dizinler d olarak belirtilir. Örneğin: