chmod: Co oznacza parametr `+ a`?

16

Postępowałem zgodnie z samouczkiem, który kazał mi biegać

sudo chmod +a "SOME_PARAMS" some/dir

Byłem zaskoczony widząc, że to mi nie mówi

chmod: invalid mode: `+a'

Zastanawiam się: co oznacza +atryb? Jak mam to przełożyć na coś, co rozumie Ubuntu? Chcę też wiedzieć, dlaczego nie jest powszechnie obsługiwany.

k0pernikus
źródło

Odpowiedzi:

24

Nigdy nie widziałem +a, tylko coś takiegochmod a+r co oznacza „dodaj uprawnienia do odczytu wszystkim użytkownikom” (właściciel / użytkownik, grupa, inni).

Od man 1 chmod :

Format trybu symbolicznego to [ugoa ...] [[+ - =] [perms ...] ...], gdzie perms to zero lub więcej liter z zestawu rwxXst lub pojedyncza litera z zestawu ugo. Można podać wiele trybów symbolicznych, oddzielonych przecinkami.

Kombinacja liter ugoa określa, który dostęp użytkowników do pliku zostanie zmieniony: użytkownik, który jest jego właścicielem (u), inni użytkownicy w grupie plików (g), inni użytkownicy spoza grupy plików (o) lub wszyscy użytkownicy (a). Jeśli nie podano żadnego z nich, efekt jest taki, jakby podano, ale nie wpływa to na bity ustawione w umasce.

Tak, jak powiedziałeś w komentarzu, jest on specyficzny dla Mac OS X. From http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/chmod.1.html :

Opcje manipulacji ACL są następujące:

+ a
Tryb + a analizuje nowy wpis ACL z następnego argumentu w linii poleceń i wstawia go do kanonicznej lokalizacji na ACL. Jeśli dostarczony wpis odnosi się do tożsamości już wymienionej, dwa wpisy są łączone.

Lekensteyn
źródło
5
To nie jest tak duży błąd, ale bardziej specyficzny dla MacOS developer.apple.com/library/mac/#documentation/Darwin/Reference/…
k0pernikus