Po uzyskaniu odpowiedzi na moje pytanie i po przeprowadzeniu badań dotyczących rezultatu znalazłem artykuł, który wyjaśnia wszystko bardzo dobrze. Chciałbym udostępnić tutaj niektóre części tego artykułu do wykorzystania w przyszłości.
Przeglądanie uprawnień
Aby użyć chmod
do zmiany uprawnień do pliku lub katalogu, najpierw musisz wiedzieć, jaki jest obecny tryb dostępu. Możesz wyświetlić zawartość katalogu w terminalu, przechodząc cd
do tego katalogu, a następnie użyć:
$ ls -l
-l
Przełącznik jest ważne, ponieważ używając ls
bez niego będą wyświetlane tylko nazwy plików lub folderów w katalogu.
Poniżej znajduje się przykład użycia ls -l
w moim katalogu domowym:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
Co oznaczają kolumny?
Pierwsza kolumna to typ każdego pliku:
-
oznacza normalny plik.
d
oznacza katalog, tzn. folder zawierający inne pliki lub foldery.
p
oznacza nazwaną potok (aka FIFO).
l
oznacza łącze symboliczne.
Kolejne litery to uprawnienia, ta pierwsza kolumna najbardziej nas interesuje. Druga to liczba linków w pliku, które możemy bezpiecznie zignorować. Trzecia kolumna ma dwie wartości / nazwy: Pierwsza (w moim przykładzie „peter”) to nazwa użytkownika, który jest właścicielem pliku. Druga wartość (w tym przykładzie „użytkownicy”) to grupa, do której należy właściciel (czytaj więcej o grupach).
Następna kolumna to rozmiar pliku lub katalogu w bajtach, a informacje to daty i godziny ostatniej modyfikacji pliku lub katalogu oraz oczywiście nazwa pliku lub katalogu.
Co oznaczają uprawnienia?
Pierwsze trzy litery, po pierwszej -
lub d
, są uprawnieniami właściciela. Następne trzy litery to uprawnienia dotyczące grupy. Ostatnie trzy litery to uprawnienia, które dotyczą wszystkich pozostałych.
Każdy zestaw trzech liter składa się z r
w
i x
. r
jest zawsze na pierwszej pozycji, w
jest zawsze na drugiej pozycji i x
zawsze jest na trzeciej pozycji. r
jest uprawnieniem do odczytu, w
jest uprawnieniem do zapisu i x
jest uprawnieniem do wykonania. Jeśli -
w miejscu jednej z tych liter znajduje się myślnik ( ), oznacza to, że pozwolenie nie zostało udzielone, a jeśli list jest obecny, to jest przyznawany.
Lornetka składana
W przypadku folderów bity trybu można interpretować w następujący sposób:
r
(czytaj) oznacza zdolność do czytania spisu treści danego katalogu,
w
(zapis) oznacza możliwość zapisu spisu treści danego katalogu (tworzenie nowych plików, folderów; zmiana nazwy, usuwanie istniejących plików, folderów) tylko wtedy, gdy ustawiony jest bit wykonania. W przeciwnym razie to uprawnienie nie ma znaczenia.
x
(wykonanie) oznacza możliwość wejścia do danego katalogu za pomocą polecenia cd i dostępu do plików, folderów w tym katalogu.
Zmiana uprawnień za pomocą komendy chmod
chmod
to polecenie w Linuksie i innych systemach operacyjnych typu Unix. Pozwala zmienić uprawnienia (lub tryb dostępu) do pliku lub katalogu.
Możesz zmienić uprawnienia na dwa różne sposoby: - Na podstawie tekstu - Na podstawie chmod
liczbchmod
Metoda tekstowa
Aby zmienić tryb uprawnień lub dostępu do pliku, używamy komendy chmod w terminalu. Poniżej znajduje się ogólna struktura polecenia:
chmod who=permissions filename
Gdzie jest ktokolwiek z szeregu liter, a każdy oznacza, komu masz zamiar udzielić pozwolenia. Są to:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
Uprawnienia są takie same jak już omówione ( r
, w
, i x
).
Polecenie chmod pozwala nam dodawać i odejmować uprawnienia od istniejącego zestawu za pomocą + lub - zamiast =. To różni się od powyższych poleceń, które zasadniczo re-write uprawnienia (tj zmienić pozwolenie r--
na rw-
, trzeba jeszcze to r
, jak w
po =
w chmod
komendzie. Jeżeli przegapiłeś r
, to zabrać r
pozwolenie jako są one przepisywane przy pomocy =. Używając + i - unikaj tego przez dodanie lub odebranie bieżącego zestawu uprawnień).
Metoda numeryczna
chmod
może również ustawiać uprawnienia za pomocą liczb.
Używanie liczb to kolejna metoda, która pozwala edytować uprawnienia wszystkich trzech właścicieli, grup i innych jednocześnie. Ta podstawowa struktura kodu jest następująca:
chmod xxx file/directory
Gdzie xxx jest trzycyfrową liczbą, przy czym każda cyfra może być dowolna od 1 do 7. Pierwsza cyfra dotyczy uprawnień właściciela, druga cyfra dotyczy uprawnień grupy, a trzecia cyfra dotyczy uprawnień wszystkich pozostałych.
W tej notacji liczbowej wartości r, w i x mają swoją własną wartość liczbową:
r=4
w=2
x=1
Aby wymyślić trzycyfrową liczbę, należy rozważyć, jakie uprawnienia ma mieć właściciel, grupa i użytkownik, a następnie zsumować ich wartości. Powiedzmy na przykład, że chciałem udzielić właścicielowi katalogu uprawnień do odczytu i zapisu oraz wykonywania, a także chciałem zgrupować i wszystkich innych, aby mieli tylko uprawnienia do odczytu i wykonywania. Wymyśliłbym takie wartości liczbowe, jak:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Jest to równoważne z użyciem następujących:
chmod u=rwx filename
chmod go=rx filename
Większość folderów / katalogów jest ustawiona na 755, aby umożliwić odczyt i zapis oraz wykonanie właścicielowi, ale odmawia zapisu wszystkim innym, a pliki mają zwykle 644 pliki, aby umożliwić odczyt i zapis właścicielowi, ale tylko odczyt dla wszystkich innych, patrz ostatnia uwaga na brak uprawnień x dla plików niewykonywalnych - tutaj ta sama sprawa.