Dosya izinlerini yönetmek için kullanılan ana kavramları ve komut satırı araçlarını kısaca açıklayabilir misiniz?
Dosya izinlerini yönetmek için kullanılan ana kavramları ve komut satırı araçlarını kısaca açıklayabilir misiniz?
Yanıtlar:
Her dosyanın üç farklı kategori için hakları vardır:
Haklar, dosyayı okuma hakkı, dosyaya yazma hakkı veya bir komut dosyası veya program durumunda dosyayı yürütme hakkı anlamına gelir.
CLI’de
chown
örneğin sahibini değiştirmekchown guillermooo
chgrp
, örneğinchgrp root
chmod
, örneğin chmod u+w filename.ext
(dosyanın sahibine yazma izni ekler filename.ext
)Bu araçların her biri hakkında daha fazla bilgi edinmek istiyorsanız, bir terminal açın ve man [tool]
örn man chmod
.
chown guillermooo
bu olmamalı chown guillermooo filename
mıydı?
Uyarı: Dosyaların ve dizinlerin izinlerinin değiştirilmesi potansiyel olarak zararlıdır ve sisteminizi kullanılamaz duruma getirebilir. Özyinelemeli olarak yanlış yolda root olarak çalıştırıldığında, Ubuntu'yu yeniden kurmak zorunda kalacağımız bir noktaya gelebiliriz. Bu nedenle, HOME dizinleri dışındaki izinleri değiştirmemek ve komutları mümkünse root olarak tekrarlamak gerektiğinden kaçınılması iyi bir fikirdir.
Ubuntu, dosyalar veya dizinler için izin verebileceğimiz veya reddedebileceğimiz üç görev olduğunda Unix'ten izin kavramını devraldı:
( Bir dizine geçmek , esasen onu bir yol adının parçası olarak kullanmak anlamına gelir. Daha fazla açıklama için bkz. Https://unix.stackexchange.com/a/13891 veya https://unix.stackexchange.com/questions/21251 ).
Ek olarak, izin verdiğimiz üç dava var:
Şimdi bu dizilişlerin birleşimini elde etmek için her bitin bir izin tanımladığı bir ikili sistem kullanıyoruz. Bu en iyi aşağıdaki Tabloda gösterilebilir.
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Şimdi eğer örneğin istiyorsak
a) bir dosyaya (= kullanıcı) sahibi vardır r , EAD w ayin ve e x ecute izni,
b) dosyanın grup verilmiş r ead ve e x ecute izinleri ve
tüm diğerleri sadece olmalıdır) c r ead erişimini.
Ardından ortaya çıkan dosya izni:
u g o
rwx r-x r--
Bunu sekizli sayılarda elde etmek için, örneğin. için chmod
komuta veya biz aşağıdaki gibi tablosunun üzerindeki doldurmak için gereken bir hata mesajı anlamak varken:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Bir kullanıcı (4 + 2 + 1 = 7), grup (4 + 0 + 1 = 5) ve diğer (4 + 0 + 0 = 4) toplamını toplamak için her izin numarasının eklenmesi gerekir. Sonuçta ortaya çıkan sayı şudur:
u g o
7 5 4
Şimdi izin bitlerini değiştirmek için iki seçeneğimiz var chmod
:
chmod u+rwx g+rx o+r filename
veya çok daha basit
chmod 751 filename
Her iki komut da aynı şeyi yapacaktır.
Evimizde yeni oluşturulan bir dosyanın varsayılan izni 664 (-rw-rw-r--) olacaktır.
Dosyaların program olarak çalıştırılabilir olmasını istiyorsak, bu izni değiştirmemiz gerekir.
Biz de bu çalıştırılabilir olabilir dizinin yetkilerini değiştirmek zorunda olacağı. Her iki dosya en Yalnızca Not ve dizinin çalıştırılabilir bit bir program olarak bu dosyayı çalıştırmak için izin verilecektir ayarlanır.
Bir dosyayı evimize kopyalarken, kendi varsayılan izinlerimizle değiştirilecek izinlerini kaybedecektir (örneğin bir arşiv seçeneği gibi gelişmiş seçenekleri kullanarak kopyalamadıkça).
Ayrıca, dosyanın izinleri kendi bağlama noktalarından devralabileceğini de unutmayın. takma seçenekleri. Bu, Unix izinlerini desteklemeyen Windows biçimli sürücüleri takarken önemlidir.
Yakında bunun hikayenin sadece yarısı olduğunu fark ettik. Ayrıca eşyalarını da sıralamamız gerekiyor. Bunu yapmak için her dosya veya klasörün belirli bir sahibi ve tanımlanmış bir grup üyeliği vardır.
Bir dosya oluşturduğumuz her seferde bir dosyanın sahibi oluruz ve dosyanın grubu da biz oluruz. İle ls -l
biz izinleri, mülkiyet ve aşağıdaki örnek çıkışından görüldüğü gibi grup görebilirsiniz:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- Yalnızca bizim olan bir dosyanın izinlerini, gruplarını veya sahipliğini değiştirmemize izin verilir.
Dosya sahibi biz değilsek bir Permission denied
hata alırız . Tüm dosyalar için sadece root bunu değiştirebilir. Bu nedenle sudo
, bizim olmayan dosyaların izinlerini düzenlerken kullanmak zorundayız . chown
Kullanıcılar ve chgrp
gruplar için bunu yapmak için iki tane yerleşik komut vardır .
Bir dosya sahipliğini herhangi bir kişiden birine değiştirmek için takkat
bu komutu verebiliriz:
sudo chown takkat testfile
Bir dosyanın grubunu değiştirmek için takkat
biz sorunu
sudo chgrp takkat testfile
Daha fazla ayrıntı ve seçenek için komutların kılavuz sayfalarını okuyun. Ayrıca daha fazla okuma için önerilen bu güzel daha ayrıntılı bir rehber var:
Ayrıca burada bazı ilgili soruları bulabilirsiniz: