Kiedy uruchamiam chmod +w filename
, nie daje uprawnień do zapisu other
, po prostu daje uprawnienia do zapisu do user
i group
.
Po wykonaniu tego polecenia
chmod +w testfile.txt
uruchamianie ls -l testfile.txt
wydruków
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
ale w przypadku +r
i +x
działa poprawnie.
Nie chcę używać chmod ugo+w filename
.
linux
command-line
permissions
chmod
Ravi Sevta
źródło
źródło
ugo
, użyja
.+w
nie działa.askubuntu
odpowiedzi, że wspominasz powyżej, że „To zachowanie jest nakazane przez POSIX, a więc nie jest błędem”. Informujemy, że tekst użycia aplikacji POSIX jest nienormatywny i dlatego nie jest wymagany przez POSIX.Odpowiedzi:
Twoja konkretna sytuacja
W Twojej konkretnej sytuacji możemy zgadywać, że Twój prąd
umask
jest002
(jest to powszechna wartość domyślna) i to wyjaśnia twoje zaskoczenie.W tej konkretnej sytuacji, w której
umask
wartość wynosi 002 (wszystkie liczby ósemkowe).+r
znaczyugo+r
ponieważ002 & 444
jest000
, co pozwala ustawić wszystkie bity+x
znaczyugo+x
ponieważ002 & 111
jest000
, co pozwala ustawić wszystkie bity+w
znaczy „ug+w
ponieważ002 & 222
jest”002
, co uniemożliwia ustawienie bitu „o”.Inne przykłady
umask 022
+w
oznaczałbyu+w
.umask 007
+rwx
oznaczałbyug+rwx
.umask 077
+rwx
oznaczałbyu+rwx
.Co spełni twoje oczekiwania
Po zmianie
umask
na000
, wykonującwięc w twoim terminalu
ustawi uprawnienia do ugo + w.
Dygresja
Jak sugeruje ilkkachu, zauważ, że
umask 000
to nie znaczy, że każdy może czytać i zapisywać wszystkie twoje pliki.Ale
umask 000
oznacza, że każdy, kto ma jakiś dostęp do dowolnego konta użytkownika na twoim komputerze (który może obejmować programy z uruchomionymi usługami serwerowymi ofc), może odczytywać i zapisywać wszystkie pliki, które tworzysz z aktywną maską i nie zmieniają się (jeśli zawiera łańcuch katalogi do katalogu głównego również pozwala na to).źródło
r
bit dla stron, na które pozwala umask. Jest to wyraźnie określone w instrukcjach np. GNU chmod i FreeBSD chmod, a także w standardzie. To samo dotyczy+x
. Dla+w
masz rację, dla przypadku tej konkretnej umask.0
nie oznacza, że każdy może czytać i zapisywać wszystkie twoje pliki, ponieważ wiele aplikacji tworzy pliki, które są szczególnie prywatne w trybie0600
, co oznacza, że grupa i inni nie mają dostępu, niezależnie od umask.umask
jest to ważna część tego, jak się+r
zachowuje, a nie sidotota. Zresztą, nawet zakładając, że umask002
,chmod +r
nie znaczychmod ugo=r
, to znaczychmod ugo+r
Z:
Perms są dodawane do użytkownika , grupy i innych, ale z umask nadal obowiązującym. Zapewnia to, że plik nie uzyska więcej uprawnień niż nowo utworzony plik.
Jeśli chcesz dodać perms do użytkownika , grup i innych niezależnie od umask, użyj
co jest skrótem od
źródło
Musisz określić, komu udzielasz uprawnień, na przykład za
other
pomocąchmod o+w testfile.txt
źródło
+w
daje uprawnienia wszystkim (użytkownikom, grupom i innym).chmod a+w testfile.txt
. Użyju
dla użytkownika,g
dla grupy,o
dla innych ia
dla wszystkich.chmod a+w filename
,chmod +w filename
ichmod ugo+w filename
są alternatywą dla siebie, to dlaczego nie wystarczy użyć+w