Kullanıyorsunuz -664
, sadece kullanın 664
. Ve ihtiyacınız olmadığında asla kullanmayın sudo
. Dosyanız buysa, aşağıdakilere ihtiyacınız yoktur sudo
:
chmod 644 my_file
Moddan önce chmod
a ile koştuğunuzda -
, o modu kaldırırsınız. Bakınız man chmod
(vurgu mayını):
Operatör +, seçilen dosya modu bitlerinin her bir dosyanın mevcut dosya modu bitlerine eklenmesine neden olur; - bunların çıkarılmasına neden olur ; ve = bunların eklenmesine neden olur ve dizinin belirtilmemiş ayarlanmış kullanıcı ve grup kimliği bitlerinin etkilenmemesi dışında sözü edilmeyen bitlerin kaldırılmasına neden olur.
Sayılar:
- 1: yürüt
- 2: yazma
- 4: okuyun
Böylece 777
izinleri olan bir dosya, herkesin üçünün hepsini yapma hakkına sahip olduğu anlamına gelir, çünkü 1 + 2 + 4 = 7 ve bu nedenle izinleri 7 olarak ayarlamak, okuma, yazma ve yürütmeye izin vermek anlamına gelir.
Modu olan bir dosya ile başlarsanız 777
:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
Ve şimdi çalıştırın chmod -644
, bitleri kaldıracak 644
ve modu olan bir dosya ile sonuçlanacaksınız 133
:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
Bunun nedeni, gruptan ve diğer izinlerden yalnızca 1 (yürütme) kümesi ve 4 (okuma) bırakarak, sahibinin izinlerinden 6 (okuma (4) + yazma (2)) öğesini kaldırmış olmanızdır. Sonuç, yalnızca sahip için yürütme (1) izinlerine ve geri kalanı için yazma ve yürütme (4'ü unset, 1 ve 3 bırakarak) izinlerine sahip bir dosyadır.
Dosyanız muhtemelen yeni dosyalar için varsayılan izinlere sahip olduğundan 644
, çalıştırdığınızda chmod -644 my_file
, ayarlanan tüm izin bitlerini kaldırdınız ve herkes için izni olmayan bir dosya aldınız.
$ ls -l my_file
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file
---------- 1 terdon terdon 0 May 28 13:45 my_file
-
644'ün önünde bir tane var ? Deneyinsudo chmod 644 my_file
.-644
hakları kaldıracak.