“Chmod 666” ın anlamı nedir?


47

Linux kullanıyorum Anlamı nedir chmod 666?


28
aka, Şeytan emri.
Moab

6
Bu sizi rahatsız ediyorsa (veya bu sayıları hatırlamakta zorlanamıyorsanız), olarak da yazabilirsiniz chmod a=rw.
starblue

yararsız komut, üçüncü argüman verilmediği için ^^
kokbira

ayrıca güvenlik açığı oluşturabilir (tüm kullanıcılar dosyayı / klasörü yazabilir) ya da işe yaramaz dosya / klasör izinlerini
verebilir

Yanıtlar:


112

chmod bir dosya / klasörden komut değiştirme öznitelikleri:

  • chmod 666 file/folder tüm kullanıcıların okuyabileceği ve yazabileceği ancak dosyayı / klasörü yürütemediği anlamına gelir;
  • chmod 777 file/folder tüm kullanıcılar için tüm işlemlere izin verir;
  • chmod 744 file/folderyalnızca kullanıcının (sahip) tüm işlemleri yapmasına izin verir; grup ve diğer kullanıcıların yalnızca okumasına izin verilir.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Alternatif olarak, komutu ikili veya sekizli olarak düşünmeye gerek kalmadan daha sezgisel bir sözdizimiyle çalıştırabilirsiniz (ancak sayısal sözdiziminin bilgisi çok önemlidir): chmod u=rw, g=rw, o=rw file/folder

Komutla yapılan izin değişikliklerinin chmoden az 3 argüman gerektirdiğini , izinleri değiştirmek için chmod 666açık dosya / klasör içermeyen hiçbir şey yapmadığını unutmayın.

Ayrıca, güvensiz sorunlar üretmediğini veya yalnızca işe yaramaz bir izin değişikliği olup olmadığını eleştirdiğinizden emin olun, çünkü chmod 666dosya / klasörün herkese yazmasına ve yürütmenin de hepsine yazılmasına izin verir.


5
Sadece "sekiz" dır, "ondalık" değil. Yine de +1.
Ben Voigt

1
İlk gönderide belirtilen üçüncü nokta yanlıştır - chmod 711 sadece sahibinin tüm eylemleri yapmasına izin verir, grup ve diğerlerinin sadece okumasına izin verir! [Buraya resim açıklamasını girin] [1] 010 011 100 101 110 111 Octal 001 veya 1, yürütme iznini belirtir. Octal 7, 111, okuma yazma ve yürütme iznini belirtir; bu nedenle 711, sahipler için rwx ve gruplar ve diğerleri için x anlamına gelir.

3
Yine de sadece 7'ye gidiyor, bu durumda octal ve ondalık arasında bir fark yok. : /
Rob,

evet, @Yash ve 1 yıl sonra, asıl gönderiden 2 ay ve 18 gün sonra birisi bu hatayı gördü :) Örnek olarak 744'e düzelteceğim.
kokbira

1
@KyleVassella, ownergenellikle onu oluşturan dosya veya klasörün sahibidir. groupBu dosya veya klasörle ilişkili kullanıcılar grubudur, genellikle sahibinin bulunduğu gruptur. Bu yüzden benim rootbira olduğumu ve benim grubumun rootusers olduğunu ve o grupta olduğunuzu ve diğer tüm SU forum üyelerinin diğer grupta olduğunu hayal edin. Eğer bir dosya oluşturup chmod 750 ile yaparsam, okur, yazar ve yürütürdüm, sadece okuyacak ve yürüteceksin ve SU kullanıcıları hiçbir şey yapmaz - bu bizim sırrımız kok
kokbira

7

Gerçekten açık konuşmada: bir dosyayı dosya sahibi, dosya sahibi grubu ve makineyi (tümü) kullanan her biri tarafından okunabilir ve yazılabilir kılar. Bir dizine uygulanırsa, herkesin bir dizini okumasını (dosya içeriği listelerini almasını) sağlar ve yazmasını (dizinde dosyaları oluşturmasını, düzenlemesini sağlar), ancak dizinde dosyaları yürütmemesini sağlar.

Daha ayrıntılı bilgi için nasıl chmodçalışır bu kullanışlı öğreticiyi inceleyin .


2
... Herkesin dosyaları okuyup yazmasına izin vermiyor, ancak yürütmüyor ve herkesin bir dizindeki dosyaları okuyup yazmasına izin veriyor, ancak tüm dosyaları listeleyemez mi?
Earlz

2
@earlz ne diyorsa, ayrıca bir dir üzerine yazmak, oradaki dosyaları düzenleyebileceğiniz anlamına gelmez (bir dosyanın üzerine yazma izni olur), ancak yalnızca yeni girişler oluşturabileceğiniz anlamına gelir (dirs, dosyalar, sembolik bağlantılar vb.). Ayrıca, eksiksizlik için direkten bahsetmek hoş, ama 666 dir için bir anlam ifade etmiyor; x sahibi için asla ortadan kaldırmazsın.
Rich Homolka,

1
@Earlz: Bunun için teşekkürler. 666'nın dirs için ne yaptığını her zaman unuturum, çünkü bir kullanıcı için hiçbir zaman dir. :)
Ian C.

7

Diğer cevaplarda belirtildiği gibi, chmod değişim modu anlamına gelir. Sahip, grup ve diğer kullanıcı kategorileri için okuma, yazma ve çalıştırma izinlerini etkiler. Komutu takip eden sayılar (bu durumda 666), komutun çalıştırıldığı dosya için bu izinlerin nasıl değiştirildiğini gösterir (666 için, sahip, grup ve diğerlerinin okuma ve yazma izinlerine sahip olduğu ancak çalıştırılabilir izinlerin olmadığı anlamına gelir) .

Numaraları farklı değerlere değiştirerek dosyanın izinlerini etkin bir şekilde değiştirirsiniz. Yukarıda bahsettiğim bağlantı, peşinde olduğunuz izinler şemasını almak için hangi değerleri koymanız gerektiğini bulmak için küçük bir araca sahiptir. Aynı zamanda komut için mevcut olan anahtarlama seçeneklerinin üzerinden geçiyor ve nasıl çalıştığını daha iyi anlamanıza yardımcı olacak bazı örnekler sunuyor.


1
Bu harika bir site. Yer imlerime giriyor. Teşekkürler!
Kirk

5

Chmod komutu (değiştirme modundan kısaltılır), operatörün sisteme bir dosyaya ne kadar (veya az) erişime izin vermesi gerektiğini söylemesini sağlayan bir Unix komutudur. Komut chmod 666, tüm kullanıcıların okuma ve yazma izinlerine sahip olacağı anlamına gelir.


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.