Jaka jest różnica między chmod u+x
i sprawiedliwy chmod +x
? Widziałem mnóstwo samouczków, które mówią, aby używać u+x
skryptów do wykonywania. Jednak pominięcie u
nie wydaje się mieć żadnego efektu.
źródło
Jaka jest różnica między chmod u+x
i sprawiedliwy chmod +x
? Widziałem mnóstwo samouczków, które mówią, aby używać u+x
skryptów do wykonywania. Jednak pominięcie u
nie wydaje się mieć żadnego efektu.
Strona chmod
podręcznika użytkownika obejmuje to.
Oznacza to, że chmod u+x somefile
przyzna tylko właścicielowi uprawnień do wykonywania tego pliku, ale chmod +x somefile
jest taki sam jak chmod a+x somefile
.
Strona podręcznika użytkownika chmod mówi:
Format trybu symbolicznego to
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Można podać wiele operacji symbolicznych, oddzielonych przecinkami.Kombinacja liter „ugoa” kontroluje 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 „a”, ale nie wpływa to na bity ustawione w umask.
chmod +x file
różni się odchmod a+x file
- szczegóły patrz odpowiedź Ravexiny.Po prostu
+x
zastosuje to do wszystkich flag: [u] ser, [g] roup, [o] thers.Wpisz
man chmod
więcej informacji.źródło
Wymagania
Przede wszystkim proponuję przeczytać poniższe pytania i odpowiedzi, do których łącza znajdują się poniżej:
Pomaga zrozumieć wszystkie niezbędne części, które musisz znać.
Krótka wersja
chmod +x
jest równachmod ugo+x
(na podstawieumask
wartości)chmod a+x
jest równachmod ugo+x
(bez uwzględnieniaumask
wartości)Wyjaśnienie
Wynikiem
chmod a+x
jest ustawienie bitu wykonywalnego dla wszystkich (Właściciel, Grupa, Inni), łatwe, prawda?Jednak
chmod +x
jest to trochę trudne, mówiumask
wartość użytkowa i na podstawie tej wartości dodajx
każdemu, kto jest dozwolony.Jeśli więc
umask
moim środowiskiem jest0002
:Zostanie dodany
x
do użytkownika (właściciela), grupy i innych, w tej sytuacji (która jest sytuacją domyślną dla większości systemów) jest dokładnie takachmod ugo+x
sama lub taka samachmod a+x
, lub w bardziej szczegółowej formie:Czy potrafisz dostrzec związek pomiędzy
chmod u+x,g+x,o+x
i wyjściemumask -S
?Teraz zmieńmy
umask
bieżącą powłokę na0003
:Jak widać teraz tylko właściciel i grupa otrzymają bit wykonywalny, a nie pozostali. Oznacza
chmod +x
to, że jest teraz równechmod u+x,g+x
lubchmod ug+x
.Czas pytań!
Co się stanie, jeśli uruchomię
chmod +w
plik po ustawieniuumask
na0003
?Tak samo jak przedtem, to wpływa tylko
user
igroup
pliku bo 3 usuwa również uprawnienie write (2).Premia
Ma taki sam efekt, gdy usuwasz trochę
chmod -w
:źródło
chmod u+x
sprawi, że plik będzie wykonywalny dla twojego użytkownika (doda go tylko dla twojego użytkownika, chociaż może być już wykonywalny przez właściciela grupy lub „inny”).chmod +x
lubchmod a+x
(„bit wykonywalny plus”) powoduje, że plik jest wykonywalny przez wszystkich.Jeśli zrobisz to w katalogu, katalog będzie można przeszukiwać. To znaczy, możesz wyświetlić zawartość katalogu, na którym masz uprawnienia + x.
źródło
chmod u+x file
oznacza dodanie bitu wykonywalnego do właściciela pliku, ignorującumask
(Twój mod zostanie ustawiony, bez wątpienia).chmod +x file
oznacza dodanie bitu wykonywalnego do właściciela, grupy i innych osób, biorąc pod uwagęumask
(Najpierw sprawdź, aumask
następnie zastosuj mody, może to mieć różne efekty w zależności od wartości umask).stwórzmy dwa pliki:
Teraz mogę ustawić
umask
na „111”, aby usunąć bitów wykonywalnych:umask 111
.Jak widać,
chmod
zignorowanoumask
i plik1 otrzymał bit wykonywalny dla swojego właściciela, jednak drugi nie zrobił nic, ponieważ rozważa wartość umask.źródło