'chmod u + x' karşı 'chmod + x'


112

chmod u+xVe sadece arasındaki fark nedir chmod +x? u+xKomut dosyalarını çalıştırılabilir yapmak için kullanılabilecek bir sürü ders gördüm . Ancak, ihmal etmenin ubir etkisi görünmüyor.

Yanıtlar:


149

Bunu adam sayfası chmodkapsar.

  • u kullanıcı anlamına gelir.
  • g , grup anlamına gelir.
  • o diğerleri için duruyor.
  • herkes için bir stand.

Bu, chmod u+x somefileyalnı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.


Küçük bir sorum var, a + x arasındaki fark nedir ve diyelim 111 diyelim. Her ikisini de çalıştırılabilir kılar
TheBro21

Çünkü 1, yürütme izninin kısaltması olan sekizli gösterimdir. 111 kullanıcı, grup ve diğer kullanıcılar için yürütülebilir anlamına gelir.
Octavian Damiean

Mükemmel temiz cevap
m4heshd

Umask etkisi önemlidir ve chmod +x filefarklıdır chmod a+x file- ayrıntılar için Ravexina'nın cevabına bakınız.
Cinnam

19

Sadece yapmak +xonu bütün bayraklara uygulayacak: [u] ser, [g] roup, [o].

Tip man chmodDaha fazla bilgi için.


Söz veriyorum ilk önce el kitabını kontrol ettim, ancak açıklamaları atlayıp seçeneklere atladığımdan beri görmedim. Onları şimdi görüyorum ama :-)
Nathan Schwermann

14

Gereksinimler

Öncelikle bu soruları ve aşağıda verilen cevapları okumanızı öneriyorum:

Bilmeniz gereken tüm gerekli parçaları anlamanıza yardımcı olur.


Kısa versiyon

  • chmod +xeşittir chmod ugo+x( umaskdeğere göre)
  • chmod a+xeşittir chmod ugo+x( umaskdeğer dikkate alınmadan )

açıklama

Bunun sonucu, chmod a+xherkes 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, umaskdeğer kullandığını ve bu değere dayanarak xizin verilen herkesi eklediğini söylüyor .

Öyleyse umaskbenim ortamımın ise 0002:

$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx

xKullanıcıya (sahibine), gruba ve diğerlerine ekleyecektir , bu durumda (çoğu sistem için varsayılan durumdur) tam olarak chmod ugo+xaynı veya aynı chmod a+xveya 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 umaskmevcut 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+xveya eşittir demektir chmod ug+x.


Soru Zamanı!

Ben çalıştırırsanız ne olur chmod +wayarladıktan sonra bir dosya üzerinde umaskhiç 0003?

Daha önce olduğu gibi aynı, sadece etkiler userve group3 de yazma izni (2) kaldırır çünkü dosyanın.


Bonus

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

7

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 +xveya 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.


üzgünüm ama bu şey benim için işe yaramadı. Ben sudo ile denedim ve bilgisayarımda işe yaramadı. askubuntu.com/questions/178231/how-to-set-permission-in-ubuntu
Anirudha Gupta

@AnkitGupta Ne söylediğinden emin değilim. Yorumum, farklı bir soru ve cevapta bir sorunu çözmeyi amaçlamıyordu. Bunun yerine cevaplara açıklık getirmeyi istemeyi deneyin. Ne denediğinizi söylemek için sorunuzu düzenleyin. Çıktıyı göster.
belacqua

1
  • chmod u+x fileyoksayılırken yürütülebilir dosyaya, dosya sahibine eklemek anlamına gelir umask(Modunuz ayarlanacak, soru yok).

  • chmod +x filegöz önünde bulundurarak sahibi, grubu ve diğerleri için çalıştırılabilir biraz eklemek anlamına gelir umask(İlk kontrol umasksonra 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 umaskiç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 chmodgöz ardı umaskve dosya1 o umask'ı değerini dikkate çünkü ancak ikincisi hiçbir şey yapmadı sahibi için çalıştırılabilir ısırmış.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.