Używasz -664
, po prostu użyj 664
zamiast tego. I nigdy nie używaj, sudo
kiedy nie musisz. Jeśli to twój plik, nie potrzebujesz sudo
:
chmod 644 my_file
Po uruchomieniu chmod
z -
przed trybie, można usunąć ten tryb. Zobacz man chmod
(moje podkreślenie):
Operator + powoduje, że wybrane bity trybu pliku są dodawane do istniejących bitów trybu pliku każdego pliku; - powoduje ich usunięcie ; i = powoduje ich dodanie i usunięcie niewymienionych bitów, z wyjątkiem tego, że nie ma to wpływu na niewymienione bity identyfikatora użytkownika i grupy w katalogu.
Liczby to:
- 1: wykonaj
- 2: pisz
- 4: przeczytaj
Tak więc plik z 777
uprawnieniami oznacza, że każdy ma prawo zrobić wszystkie trzy, ponieważ 1 + 2 + 4 = 7, a zatem ustawienie uprawnień na 7 oznacza umożliwienie odczytu, zapisu i wykonania.
Jeśli zaczynasz od pliku, którego tryb to 777
:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
A teraz uruchom chmod -644
, usuniesz bity 644
i skończysz na pliku, którego tryb to 133
:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
Wynika to z faktu, że usunąłeś 6 (odczyt (4) + zapis (2)) z uprawnień właściciela, pozostawiając tylko 1 (wykonanie) i 4 (odczyt) z grupy oraz innych uprawnień. Rezultatem jest plik z uprawnieniami tylko do wykonania (1) dla właściciela oraz do zapisu i wykonania (cofniesz ustawienie 4, pozostawiając 1 i 3) dla reszty.
Ponieważ plik prawdopodobnie miał domyślne uprawnienia do nowych plików, więc 644
po uruchomieniu chmod -644 my_file
usunąłeś wszystkie ustawione bity uprawnień i otrzymałeś plik bez uprawnień dla nikogo.
$ 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
-
przed 644? Spróbowaćsudo chmod 644 my_file
.-644
usunie prawa.