chmod u+x
Ve sadece arasındaki fark nedir chmod +x
? u+x
Komut dosyalarını çalıştırılabilir yapmak için kullanılabilecek bir sürü ders gördüm . Ancak, ihmal etmenin u
bir etkisi görünmüyor.
chmod u+x
Ve sadece arasındaki fark nedir chmod +x
? u+x
Komut dosyalarını çalıştırılabilir yapmak için kullanılabilecek bir sürü ders gördüm . Ancak, ihmal etmenin u
bir etkisi görünmüyor.
Yanıtlar:
Bunu adam sayfası chmod
kapsar.
Bu, chmod u+x somefile
yalnızca bu dosya yürütme izinlerinin sahibine izin verirken chmod +x somefile
, aynı olduğu anlamına gelir chmod a+x somefile
.
Chmod man sayfasında diyor ki:
Sembolik bir modun formatı
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Virgülle ayrılmış olarak birden fazla sembolik işlem yapılabilir.'Ugoa' harflerinin bir kombinasyonu, hangi kullanıcıların dosyaya erişiminin değiştirileceğini kontrol eder: ona sahip olan kullanıcı (u), dosya grubundaki diğer kullanıcılar (g), dosya grubundaki olmayan diğer kullanıcılar (o), veya tüm kullanıcılar (a). Bunlardan hiçbiri verilmezse, etki 'a' verildi gibi görünür, ancak umask'ta belirlenen bitler etkilenmez.
chmod +x file
farklıdır chmod a+x file
- ayrıntılar için Ravexina'nın cevabına bakınız.
Sadece yapmak +x
onu bütün bayraklara uygulayacak: [u] ser, [g] roup, [o].
Tip man chmod
Daha fazla bilgi için.
Öncelikle bu soruları ve aşağıda verilen cevapları okumanızı öneriyorum:
Bilmeniz gereken tüm gerekli parçaları anlamanıza yardımcı olur.
chmod +x
eşittir chmod ugo+x
( umask
değere göre)chmod a+x
eşittir chmod ugo+x
( umask
değer dikkate alınmadan )Bunun sonucu, chmod a+x
herkes için çalıştırılabilir biti (Sahip, Grup, Diğerleri) ayarlamak kolay, değil mi?
Bununla birlikte chmod +x
, biraz zor olduğu için, umask
değer kullandığını ve bu değere dayanarak x
izin verilen herkesi eklediğini söylüyor .
Öyleyse umask
benim ortamımın ise 0002
:
$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx
x
Kullanıcıya (sahibine), gruba ve diğerlerine ekleyecektir , bu durumda (çoğu sistem için varsayılan durumdur) tam olarak chmod ugo+x
aynı veya aynı chmod a+x
veya daha ayrıntılı bir biçimde:
chmod u+x,g+x,o+x
İle chmod u+x,g+x,o+x
çıkış arasındaki bağlantıyı bulabilir misiniz umask -S
?
Şimdi umask
mevcut kabuğun yerini değiştirelim 0003
:
$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r
Gördüğünüz gibi şimdi sadece sahibi ve grubu çalıştırılabilir biti alacak, diğerleri değil. Bu chmod +x
şimdi chmod u+x,g+x
veya eşittir demektir chmod ug+x
.
Ben çalıştırırsanız ne olur chmod +w
ayarladıktan sonra bir dosya üzerinde umask
hiç 0003
?
Daha önce olduğu gibi aynı, sadece etkiler user
ve group
3 de yazma izni (2) kaldırır çünkü dosyanın.
Gibi biraz kaldırırken aynı etkiye sahiptir chmod -w
:
$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx
chmod u+x
dosyayı kullanıcı için çalıştırılabilir hale getirir (grup sahibi ya da "diğer" tarafından zaten çalıştırılabilir olsa da, dosyayı yalnızca kullanıcı için ekleyecektir).
chmod +x
veya chmod a+x
('all plus çalıştırılabilir bit') dosyayı herkes tarafından çalıştırılabilir yapar.
Bunu bir dizine yaparsanız, dizini aranabilir hale getirir. Yani, + x izniniz olan bir dizinin içeriğini listeleyebilirsiniz.
chmod u+x file
yoksayılırken yürütülebilir dosyaya, dosya sahibine eklemek anlamına gelir umask
(Modunuz ayarlanacak, soru yok).
chmod +x file
göz önünde bulundurarak sahibi, grubu ve diğerleri için çalıştırılabilir biraz eklemek anlamına gelir umask
(İlk kontrol umask
sonra mods uygulamak, bu umask değerini dayalı farklı etkileri olabilir).
iki dosya oluşturalım:
$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:45 file2
Şimdi ayarlamak umask
için "111" çalıştırılabilir parçaları kaldırmak için: umask 111
.
$ chmod u+x file1
$ chmod +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug 5 01:47 file2
Gördüğünüz gibi chmod
göz ardı umask
ve dosya1 o umask'ı değerini dikkate çünkü ancak ikincisi hiçbir şey yapmadı sahibi için çalıştırılabilir ısırmış.