Daha yaygın olarak kullanılan: chmod 777 veya chmod a + rwx [kapalı]


20

İzinleri değiştirmek için iki seçenekten:

  • chmod 777 file.txt
  • chmod a+rwx file.txt

Kullanıcıların belirli bir dosyanın dosya izinlerini değiştirmesi gereken ayrıntıları belirten bir belge yazıyorum. Dosya izinlerini değiştirmenin en yaygın yolu olarak detaylandırmak istiyorum.

Şu anda diyor:

- Set permissions on file.txt as per the example below:
    - chmod 777 /tmp/file.txt

Bu sadece bir örnektir ve herkes için tam izinlere sahip olacak şekilde dosyaları değiştirmez.


6
ilk çözüm daha kısa ve daha yaygın olarak kullanılır, ikincisini hiç görmedim.
Archemar

2
herkes için okuma, yazma ve yürütme izinleri ayarlamak gerçekten güvenlik açısından iyi bir fikir değildir. Bunun yerine chmod 773 kullanmalısınız.
Martin Erhardt

1
@MartinErhardt Normalde yalnızca 775veya 755yürütülebilir dosyalar için kullanırım.
Kevdog777

3
chmod 777gibi chmod a=rwx, değil chmod a+rwx.
Stéphane Chazelas

1
777veya 666basit ve çok daha memorizable olduğunu ugo+rwx, a+rwxya da ugo+rwçok olarak kafa karıştırıcı olan obelirsiz ve sizin için ya sahibi ya da başkalarını anlamına gelebilir, seçtiğiniz. Bu yüzden büyük bir hata yapmak yerine man, hangisinin hangisi olduğunu doğrulamaya devam edersiniz veya sadece sayıları kullanırsınız.
kenorb

Yanıtlar:


29

Google şunu verir:

chmod 777 yaklaşık 3 kat daha popüler.

Bununla birlikte, belgeleme ve komut dosyalarında uzun seçenekler kullanmayı tercih ediyorum, çünkü bunlar kendi kendini belgeliyor. Talimatlarınızı " ls -l | grep file.txtİzinleri çalıştır ve doğrula" ile takip ediyorsanız,chmod a+rwx ls izinleri bu şekilde görüntüleyeceği .


Bunun için teşekkürler. Sanırım tam yazarak (alfasayısal) insanların ne anlama 7geldiğini vb.
Sormasını engelleyecektir

1
Nedeni chmod 777daha popüler olduğunu düşünüyorum (sayılarınızı görmeden önce conjetured olarak) sadece 2 karakter daha az yazmanız :)
Ángel

Belgelerinize ipuçları eklemek istiyorsanız chmod 777, aynı efekti elde etmek için kullanışlı bir kısayol olan bir ipucu ekleyebilirsiniz . Okuyucularınız belgelerinizdeki eğitim unsurunu takdir edecektir. 777 daha popüler çünkü 7'ye üç kez vurmak çok daha kolay ve hızlı, ancak yeni bir kullanıcı 777'yi ilk kez gördüğünde tam olarak ne anlama geldiğini bilmiyor olabilir. Bu yüzden birincil dokümantasyon olarak kötü bir seçimdir. Ama kesinlikle bir ipucu olarak bahsetmeye değer.
ADTC

Bir teğet olarak, kardeşim ve arkadaşları Scrabble kelimelerine izin vermek için bu tekniği kullanırlardı. Bir kelime 'gerçek' olarak kabul edilmeden önce Google isabetlerinin sayısı için bir eşikleri vardı
Wayne Werner

Bence popüler çünkü daha eski (daha sonra sembolik gösterim eklendi), bu yüzden herhangi biri seçtiğinde, google'da veya zamanın eşdeğeri olanı arar ve kalabalığa gider. Sembolik kullanımı daha kolay olduğunu düşünüyorum, çünkü sembolleri yazdığım sayıları çalıştığım zaman, ilk seferinde doğru olma eğilimindeyim.
ctrl-alt-delor

26

[Cevabındaki Dotancohen önerisini izleyerek en iyi uygulamaları eklemek için düzenleme yapıyorum. Umarım daha az netleştirmez ve iyi alışkanlık alınır]

Önemli ek bilgiler: Eşdeğer değildir .

chmod a+rwx: son 3 sekizliği 777 olarak ayarlayın, böylece Sahip, Grup ve Kullanıcıların "rwx" kümesine sahip olmasını sağlar. İlk sekizlik (setuid, setgid ve / veya Yapışkan bit) içinde ek bitler varsa, bu değerlere dokunulmaz. Bunu bir ikili "veya 00777" olarak düşünün.

chmod 777 : hakları 00777 olarak ayarlayın. Ayrıca ek bitlerin (setuid, setgid ve / veya Yapışkan bit) 0 olarak ayarlandığından emin olun.

Bu yüzden ilk formu kullanın, sadece herkese erişim izni verdiğinizden emin olmak istiyorsanız (ve lütfen bunun gerekli olduğundan iki kat, üç kat olun ... her türlü güvenlik sorununun kapısını açar, bazıları beklenmedik bir şekilde geniş kötü niyetli bir kullanıcının yapmasına izin verir)

Herhangi bir setuid / setgid / sticky bitini de sıfırladığınızdan emin olmak istiyorsanız 777 formunu kullanın, yani dosyaların büyük olasılıkla sizin durumunuzda daha olası olan "00777" olması gerekiyorsa (dosyanın hakkı bilinir ve : 00777). Burada da gerçekten gerekli olduğundan emin olun ...

Genellikle sahibine (ve bazen gruba) erişmeye devam etmek en iyisidir: daha sonra dosyaları / dizine bazı belirli kullanıcılara erişim vermek için grupları kullanın. a + rwx hem kolay hem de erişim vermek için yanlış bir yoldur (elbette çok nadirdir) tek yol olduğu zaman durumlar ...)

http://en.wikipedia.org/wiki/Chmod , her sayı veya harfin neyi temsil ettiğini (setuid / setgid / sticky dahil) açıkladığı için iyi bir okumadır.


1
Buna ek olarak, bir suid dosyasındaki chmod a + w (a + rwx'in içerdiği) çok tehlikelidir. Chmod a + w * üzerinde ayrıntılı olarak durmam gerekir mi?
Joshua

İznin ayarlanmasının anlamı nedir others? Makinede kullanıcı olarak oturum açtıysanız, kesinlikle usersiznini kullanabilirsiniz ?
Kevdog777

@ Kevdog777: Diğerleri, sahibi veya grubu olmayan insanlar için, diğer bir deyişle sistemdeki herkes için
Olivier Dulac

1
@ Kevdog777: yalnızca kök ve kullanıcının erişime ihtiyacı varsa: chmod 00600 (dosyayı yürütmeye gerek yoksa) veya chmod 00700 (dosyayı yürütmesi gerekiyorsa -veya- bir dizindir). veya chmod 00400 dosyasını dosyada değişiklik / yazmaya karşı (küçük, kolayca geçersiz kılınan) bir koruma eklemek için (bir dizin için 00500). Sonra diğer kullanıcılar (ve gruptaki kullanıcılar ancak kullanıcı olmayanlar) dosyaya / dir dosyasına erişemez. (dotandcohen notunu takiben, oradaki 4. sekizlik + bir "0" eklerim: kabuk için bir fark yaratmaz, ancak perl / C / etc ile ayarladıysanız ve 4. sekizli var olduğunu hatırlatıyorsa yardımcı olur. ve bu da ayarlanmış)
Olivier Dulac

4
chmod 777gibidir chmod a=rwx.
Stéphane Chazelas

1

Ben genellikle fark 0777 için izinleri açıkça onları 0777 olarak ayarlamak olduğunu düşünüyorum. Daha önce de belirtildiği gibi, sadece 777 yazarsanız önde gelen 0 çıkarım olacaktır. Oysa + rwx setuid / yapışkan bırakarak okuma / yazma / yürütme ekler biraz dokunulmamış.

Bir dosyanın çalıştırılabilir olduğundan emin olmak istediğinizi varsayalım, + x kullanabilirsiniz, böylece diğer izinler hakkında endişelenmeden veya değiştirmeden yürütme ayrıcalığını değiştirebilirsiniz. Sekizli gösterimi kullandıysanız, izinlerin istediğiniz gibi başka bir şekilde değiştirmediğinizden emin olmak için şu anda hangi izinlerin ayarlandığını bilmeniz gerekir.


0

Sayısal değerleri vererek bütçe web barındırma kullanıcıları için üretilen gibi "basit halklar kılavuzları" çok daha yaygın olduğunu söyleyebilirim. Ancak, bunları ondalık değil sekizli olarak belirtmeye dikkat edin :

$ chmod 0777 Instagram Hesabındaki Resim ve Videoları some_dir

Lider Not 0içinde 0777. Bash ve diğer CLI ortamları, unpadded kullanımı ile doğru şeyi yapsa da 777, PHP ve Perl gibi birçok programlama dili liderlik gerektiren benzer işlevlere sahiptir 0. Bu yüzden orada olması gerektiğini hatırlamak için Bash'te de kullanılmasını öneriyorum.

Downvoters için not: Yorumlarda açıklandığı gibi, chmodkomut aslında ondalık gösterim belirtilse bile yönergeyi sekizlik olarak geçirmeyi bilir. Bununla birlikte, tüm ortamlar bunu desteklemez, bu nedenle açıkça belirtmeye alışmak en iyi uygulamadır .


10
chmodsayıyı hiçbir zaman ondalık sayı olarak kabul etmez. chmod 777 fileve chmod 0777 filetamamen eşdeğerdir.
celtschk

3
@ Kevdog777: "sekizli" sadece baz-8 anlamına gelir. Ancak chmodshell komutunun kullanımı söz konusu olduğunda bununla ilgilenmeniz gerekmez ; üç basamağı birbirinden bağımsız olarak düşünebilirsiniz, her biri size bir dizi izin verir.
celtschk

3
Chmod için, 0777'deki 0 aslında “setuid, setgid ve yapışkan bitleri temizle” anlamına gelir. Bu argüman 777'ye eşittir, çünkü argüman her zaman dört basamağa sıfırlarla yerleştirilir. Aynı nedenle, chmod 77eşdeğerdir chmod 077.
Emil Jeřábek

1
chmodKomut sekizlik onun mod argümanı yorumlar. Çoğu programlama dilini (C, Perl,…) kullanıyorsanız, ancak sekizgen bir kabuk betiğinde dikkat etmeniz gerekir chmod.
Gilles 'SO- kötü olmayı kes'

1
Notunuz için +1, çünkü kabukta hiçbir fark yaratmadığı için her zaman 0'ı (4 oktalın tümünü ayarlarken bile: örneğin 01777) yerleştirmek iyidir, ancak C, perl ve diğerlerinin sekizlik olarak yorumladığından emin olun
Olivier Dulac
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.