SSD Nodes Learn 🎉 VPS od $5.50/mies.
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-13

Co oznacza drwxr-xr-x w Linux? Interpretacja uprawnień

Zrozumienie zapisu drwxr-xr-x oraz jego konwersji na system ósemkowy 755. Wyjaśnienie roli bitu x w katalogach oraz dlaczego stosowanie chmod 777 jest błędem bezpieczeństwa.

Co oznacza drwxr-xr-x

drwxr-xr-x opisuje katalog, który właściciel może modyfikować, a każdy inny użytkownik może odczytać i przejść przez niego bez wprowadzania zmian. W systemie ósemkowym ten tryb to 755. Linux wyświetla te dziesięć znaków na początku każdej linii wyjścia ls -l i zawsze oznaczają one to samo w tej samej kolejności, więc zrozumienie jednego ciągu pozwala interpretować wszystkie pozostałe.

Jedna zasada jest ważniejsza od pozostałych, ponieważ decyduje o tym, czy własne testy są miarodajne. Użytkownik root ignoruje bity uprawnień. Jądro przyznaje użytkownikowi root uprawnienie CAP_DAC_OVERRIDE (obejście uznaniowej kontroli dostępu), dzięki czemu root otwiera pliki, których tryb dostępu zabrania tego innym. Każdy przykład na tej stronie powiedzie się dla użytkownika root, niezależnie od ustawionych bitów. Aby obserwować działanie reguł, należy zalogować się jako zwykły użytkownik.

Dziesięć znaków, jeden po drugim

Utwórz katalog i plik do analizy. Operacje te nie wpływają na żadne elementy poza nowym katalogiem.

mkdir -p ~/permdemo/inner
printf 'hello\n' > ~/permdemo/inner/notes.txt
ls -ld ~/permdemo ~/permdemo/inner ~/permdemo/inner/notes.txt

Przy standardowej wartości umask wynoszącej 022, linie dla katalogów zaczynają się od drwxr-xr-x, a linia dla pliku od -rw-r--r--.

Pierwszy znak określa typ pliku, a nie uprawnienia. d oznacza katalog. - oznacza zwykły plik. l oznacza dowiązanie symboliczne. c oraz b to węzły urządzeń znakowych i blokowych. s to gniazdo (socket), a p to potok nazwany (named pipe). Znak ten znajduje się poza wartością ósemkową, dlatego drwxr-xr-x przyjmuje postać 755, a nie wartość zaczynającą się od d.

Dziewięć kolejnych znaków tworzy trzy grupy po trzy znaki, których kolejność jest niezmienna.

  • Znaki od 2 do 4 to triada właściciela, określająca uprawnienia użytkownika będącego właścicielem pliku.
  • Znaki od 5 do 7 to triada grupy, określająca uprawnienia przypisane do grupy pliku.
  • Znaki od 8 do 10 to triada pozostałych, określająca uprawnienia dla wszystkich innych użytkowników.

Wewnątrz triady pozycje są zawsze zajęte przez r, następnie w, a na końcu x; myślnik oznacza, że dany bit jest wyłączony. Litery nigdy nie zmieniają swojego położenia. r-x oznacza odczyt bez zapisu. -w- oznacza zapis bez odczytu, co jest dozwolone, choć rzadko spotykane.

Zatem drwxr-xr-x dzieli się następująco: d dla katalogu, następnie rwx dla właściciela, r-x dla grupy oraz r-x dla pozostałych.

Niektóre systemy wyświetlają jedenasty znak. Kropka na końcu, drwxr-xr-x., oznacza, że plik posiada kontekst SELinux (Security Enhanced Linux), co jest domyślnie wyświetlane w dystrybucjach takich jak Fedora czy Rocky. Znak plusa na końcu, drwxr-xr-x+, oznacza, że plik posiada listę kontroli dostępu POSIX ACL, czyli dodatkowy zestaw reguł wykraczający poza te dziewięć bitów. Dodatkowe reguły można odczytać za pomocą getfacl <path>.

Uprawnienia r, w oraz x pełnią różne funkcje w odniesieniu do katalogów

To pierwsza zasada, w której początkujący popełniają błędy. Litery oznaczają to samo dla plików i katalogów, ale przyznawane przez nie uprawnienia różnią się.

  • r dla pliku pozwala na odczyt jego zawartości. r dla katalogu pozwala na wyświetlenie nazw plików w nim zawartych, co jest niezbędne do działania polecenia ls.
  • w dla pliku pozwala na zmianę jego zawartości. w dla katalogu pozwala na dodawanie i usuwanie wpisów wewnątrz niego. Usunięcie pliku jest zmianą w katalogu, dlatego o możliwości usunięcia decydują uprawnienia katalogu, a nie samego pliku.
  • x dla pliku pozwala na jego uruchomienie jako programu. x dla katalogu pozwala na przechodzenie przez niego (traversal), co oznacza, że jądro systemu może rozpoznać nazwę wewnątrz katalogu podczas wyszukiwania ścieżki.

Przechodzenie przez katalog (traversal) jest elementem, który często zaskakuje użytkowników. x dla katalogu nie uruchamia żadnego programu. Otwarcie /srv/site/index.html wymaga uprawnienia x dla /, następnie x dla /srv, potem x dla /srv/site, a na końcu r dla samego pliku. Jeśli w tym łańcuchu brakuje uprawnienia x, wyszukiwanie ścieżki zostaje przerwane, a użytkownik otrzymuje komunikat Permission denied dla całej ścieżki, nawet jeśli plik końcowy jest dostępny dla wszystkich. Polecenie namei -l /srv/site/index.html wyświetla każdy krok łańcucha wraz z jego trybem i właścicielem, co pozwala zidentyfikować ogniwo blokujące dostęp.

Katalog z uprawnieniem r, ale bez x, znajduje się w nietypowym stanie pośrednim, który warto znać. Zwykły użytkownik może wyświetlić nazwy plików, ponieważ pozwala na to r, ale nie może pobrać metadanych żadnego wpisu. W rezultacie ls -l wypełnia kolumny rozmiaru i trybu znakami zapytania oraz wyświetla ls: cannot access ...: Permission denied dla każdego z nich.

Nadawanie uprawnień 755

Każda triada jest liczbą trzybitową. r to 4, w to 2, x to 1. Należy zsumować aktywne bity.

  • rwx to 4 + 2 + 1 = 7
  • rw- to 4 + 2 = 6
  • r-x to 4 + 1 = 5
  • r-- to 4
  • --- to 0

drwxr-xr-x oznacza zatem 7 dla właściciela, 5 dla grupy i 5 dla pozostałych użytkowników: 755. -rw-r--r-- to 6, 4, 4: 644. drwxrwxr-x to 7, 7, 5: 775, co stanowi 755 z dodanym uprawnieniem do zapisu dla grupy. Nie ma potrzeby ręcznego przeliczania znaków, ponieważ stat wyświetla obie formy jednocześnie.

stat -c '%A %a %U %G %n' ~/permdemo ~/permdemo/inner/notes.txt

%A to forma literowa, %a to postać ósemkowa, a %U oraz %G wskazują właściciela i grupę właścicielską.

Ciągi uprawnień, których szukają użytkownicy

Są to tryby spotykane na rzeczywistym serwerze, wraz z wartościami ósemkowymi oraz miejscami ich występowania.

  • -rw-r--r-- to 644. Zwykłe pliki odczytywane tylko przez usługę, takie jak plik konfiguracyjny lub strona HTML.
  • -rw------- to 600. Dane poufne: klucz prywatny SSH lub plik .env aplikacji.
  • -rw-rw-r-- to 664. Plik w katalogu współdzielonym przez grupę, w którym członkowie zespołu muszą mieć uprawnienia do zapisu.
  • -rwxr-xr-x to 755. Skrypty i pliki binarne, takie jak /usr/local/bin/backup.sh oraz większość zawartości /usr/bin.
  • -rwx------ to 700. Prywatny skrypt, który może uruchomić tylko jego właściciel.
  • drwxr-xr-x to 755. Prawie każdy katalog systemowy oraz główny katalog dokumentów witryny internetowej.
  • drwx------ to 700. ~/.ssh oraz katalogi domowe na zabezpieczonym serwerze.
  • drwxrwxr-x to 775. Katalog, do którego grupa właściciela może zapisywać dane.
  • drwxrwsr-x to 2775. To samo, co powyżej, z dodatkowym bitem setgid, dzięki czemu nowe pliki wewnątrz dziedziczą grupę katalogu.
  • drwxrwxrwt to 1777. /tmp. Końcowe t to sticky bit, dzięki któremu użytkownik może usunąć tylko własne pliki.
  • -rwsr-xr-x to 4755. Plik binarny z ustawionym setuid, który działa z uprawnieniami właściciela, taki jak /usr/bin/passwd lub /usr/bin/sudo.
  • -rw-rw-rw- to 666, a drwxrwxrwx to 777. Uprawnienia do zapisu dla wszystkich, co na serwerze prawie zawsze jest błędem.
  • lrwxrwxrwx to wartość wyświetlana dla każdego dowiązania symbolicznego. System Linux ignoruje bity trybu na dowiązaniu i sprawdza obiekt docelowy, więc ten ciąg nie ma żadnego znaczenia.

Która triada ma zastosowanie

Oto druga zasada, w której początkujący popełniają błąd. Jądro systemu wybiera dokładnie jedną triadę i na niej kończy sprawdzanie.

Jeśli Twój identyfikator użytkownika (UID) jest zgodny z właścicielem pliku, otrzymujesz triadę właściciela, a bity grupy oraz pozostałych użytkowników nie są nigdy sprawdzane. W przeciwnym razie, jeśli grupa pliku znajduje się na liście Twoich grup, otrzymujesz triadę grupy. W innym przypadku otrzymujesz triadę pozostałych użytkowników.

Wynikają z tego dwie kwestie. Triada właściciela ma zastosowanie nawet wtedy, gdy jest najbardziej restrykcyjna. Plik o uprawnieniach 0466, wyświetlany jako -r--rw-rw-, zapewnia właścicielowi tylko odczyt, podczas gdy wszyscy inni mogą zapisywać, ponieważ sprawdzenie właściciela nastąpiło jako pierwsze i żadne kolejne nie zostało wykonane. Jest to poprawne technicznie, choć dezorientuje każdego przy pierwszym kontakcie.

Triada grupy jest wybierana na podstawie grupy przypisanej do pliku, a nie na podstawie listy grup, do których należysz. ls -l wyświetla dwie nazwy w każdej linii: właściciela, a następnie grupę. Tylko ta druga grupa ma jakikolwiek wpływ na dany plik. Przynależność do dwudziestu grup pomaga tylko wtedy, gdy plik jest przypisany do jednej z nich.

id
stat -c '%U %G %A %n' ~/permdemo/inner/notes.txt

id wyświetla Twojego użytkownika oraz wszystkie grupy, do których należysz. stat wyświetla właściciela i grupę pliku. Porównaj te dane, aby ustalić, której triady użyje jądro systemu w Twoim przypadku.

Dlatego współdzielony katalog zazwyczaj otrzymuje grupę oraz bit setgid. sudo chmod 2775 /srv/shared wyświetla się jako drwxrwsr-x, a pliki tworzone wewnątrz dziedziczą grupę katalogu zamiast osobistej grupy twórcy, dzięki czemu kolejna osoba może nadal je edytować. Przypisanie każdej usłudze własnego konta to druga połowa tego zagadnienia, omówiona w jeden użytkownik Linux na usługę na VPS.

umask określa uprawnienia każdego nowego pliku

Nowy plik nie przejmuje uprawnień od użytkownika. Pobiera je od programu, który go utworzył, pomniejszone o bity wyczyszczone przez umask. Umask to maska bitów do usunięcia, więc wyższa wartość umask skutkuje bardziej prywatnymi plikami.

Większość dystrybucji dostarcza wartość 022. Program tworzący zwykły plik żąda 0666. Program tworzący katalog żąda 0777. Umask usuwa 022 z obu żądań, co daje 644 dla plików i 755 dla katalogów. Jest to dokładnie ta para uprawnień, którą można zaobserwować w całym świeżym systemie VPS.

umask
umask -S
touch ~/permdemo/new.txt && mkdir -p ~/permdemo/newdir
ls -ld ~/permdemo/new.txt ~/permdemo/newdir

umask -S wyświetla tę samą wartość w formie literowej, co jest łatwiejsze do odczytania niż 0022. Ustaw umask 027 w ~/.profile, aby uzyskać bardziej restrykcyjne ustawienia domyślne: 640 dla plików i 750 dla katalogów. Dzięki temu grupa może odczytywać pliki, a nikt inny nie ma do nich dostępu.

Istotne są dwa ograniczenia. Umask może jedynie usuwać bity, nigdy ich nie dodawać, dlatego nowo utworzony plik nigdy nie jest wykonywalny, niezależnie od ustawień. Usługa systemd nie odczytuje profilu powłoki użytkownika, dlatego wartość tę należy ustawić bezpośrednio w pliku jednostki.

[Service]
UMask=0027

Dlaczego pliki WWW mają uprawnienia 644, a katalogi 755

Serwer WWW działa na własnym koncie użytkownika, www-data w systemach Debian i Ubuntu, nginx w systemach Rocky i Alma. Proces ten wymaga uprawnień do odczytu plików, które serwuje, oraz do przechodzenia przez katalogi nadrzędne. Nie ma potrzeby, aby serwer zapisywał pliki, a w przypadku statycznej witryny nie powinno się na to pozwalać.

Uprawnienia 644 dla pliku umożliwiają zapis właścicielowi oraz odczyt wszystkim użytkownikom, dzięki czemu użytkownik wdrażający może publikować treści, a użytkownik serwera WWW może je udostępniać. Uprawnienia 755 dla katalogu umożliwiają zapis właścicielowi oraz przechodzenie przez katalog wszystkim użytkownikom, co pozwala serwerowi WWW na dostęp do ścieżki bez możliwości dodawania lub usuwania plików. Błąd w aplikacji nie spowoduje wówczas nadpisania serwowanych stron.

Zasada przechodzenia przez katalogi jest kluczowa. Jeśli witryna znajduje się w /home/deploy/site, a /home/deploy ma uprawnienia 750, użytkownik serwera WWW nie może wejść do katalogu domowego, a żądanie kończy się błędem HTTP 403 z wpisem w /var/log/nginx/error.log podobnym do poniższego:

open() "/home/deploy/site/index.html" failed (13: Permission denied), client: 203.0.113.5

Wartość 13 to EACCES, czyli odmowa dostępu zgłoszona przez jądro systemu. Z siecią wszystko jest w porządku: port nasłuchuje, a żądanie dotarło do serwera, co bywa mylące podczas nauki jak działają porty nasłuchujące w systemie Linux. Uruchom namei -l /home/deploy/site/index.html i sprawdź kolejne elementy ścieżki, aby znaleźć pierwszy katalog bez uprawnienia x dla pozostałych użytkowników.

Wyjątkiem jest katalog, do którego aplikacja musi zapisywać dane, na przykład ścieżka do przesyłania plików. Należy nadać mu odpowiedniego właściciela zamiast rozszerzać uprawnienia: sudo chown -R www-data:www-data /srv/site/uploads, pozostawiając tryb 755. Zapis powinien być możliwy tylko w tym jednym katalogu, który tego wymaga.

chmod bez modyfikacji całego drzewa katalogów

chmod obsługuje obie formy zapisu. Zapis ósemkowy ustawia wszystkie dziewięć bitów jednocześnie: chmod 644 notes.txt. Zapis symboliczny zmienia tylko wskazane uprawnienia, pozostawiając resztę bez zmian: chmod u+x deploy.sh dodaje uprawnienie do wykonywania dla właściciela, a chmod go-w notes.txt usuwa uprawnienie do zapisu dla grupy i pozostałych użytkowników.

Rekurencja prowadzi do uszkodzeń struktury uprawnień. chmod -R 755 . oznacza każdy obraz i każdy plik konfiguracyjny jako wykonywalny, ponieważ chmod nie odróżnia skryptu od pliku JPEG. Należy użyć wielkiej litery X.

chmod -R u=rwX,go=rX ~/permdemo
stat -c '%a %n' ~/permdemo ~/permdemo/inner/notes.txt

Wielka litera X nadaje uprawnienie do wykonywania katalogom oraz plikom, które już posiadały ten bit w dowolnej sekcji. Katalogi otrzymują uprawnienia 755, zwykłe pliki 644, a skrypty, które już były wykonywalne, zachowują swój status. Jeśli dany plik posiada już zaufany zestaw uprawnień, chmod --reference=good.sh other.sh pozwala skopiować go na inne obiekty.

Komunikaty wyświetlane w przypadku błędnych uprawnień bitowych

bash: ./deploy.sh: Permission denied oznacza, że skrypt nie posiada bitu x w odpowiedniej triadzie uprawnień lub jeden z katalogów w jego ścieżce nie posiada bitu x. Polecenie chmod u+x deploy.sh rozwiązuje pierwszy przypadek.

bash: ./deploy.sh: cannot execute: required file not found to inny błąd o mylącej nazwie. Bit x jest poprawny, natomiast brakuje interpretera wskazanego w pierwszej linii pliku. Częstą przyczyną są znaki końca linii w formacie Windows, przez co jądro systemu poszukuje interpretera o nazwie /bin/bash\r. Problem można naprawić za pomocą sed -i 's/\r$//' deploy.sh.

Permissions 0644 for '/home/deploy/.ssh/id_ed25519' are too open. pochodzi od klienta SSH, który odmawia użycia klucza prywatnego dostępnego dla innych kont. Klucz wymaga uprawnień 600, a katalog ~/.ssh wymaga 700. Pełny opis obsługi kluczy znajduje się w zarządzanie kluczami SSH i ich uprawnieniami do plików.

Authentication refused: bad ownership or modes for directory /home/deploy/.ssh pojawia się w dzienniku systemowym serwera, gdy katalog domowy lub jego .ssh jest zapisywalny przez grupę. Ustawienie StrictModes w sshd odrzuca klucz, co z perspektywy klienta wygląda jak nieoczekiwane żądanie hasła bez żadnego wyjaśnienia.

sudo: /etc/sudoers is world writable, po którym następuje sudo: no valid sudoers sources found, quitting, oznacza, że sudo sprawdziło tryb własnego pliku konfiguracyjnego i odmówiło wykonania operacji. Plik ten musi mieć uprawnienia 0440. Jest to klasyczny skutek nadania zbyt szerokich uprawnień za pomocą rekurencyjnego chmod. Błąd ten może wystąpić jednocześnie z powyższym komunikatem sshd, co sprawia, że jedyną drogą dostępu do systemu pozostaje konsola dostarczona przez operatora.

Dlaczego 777 nie jest rozwiązaniem

Uprawnienie 777 nadaje dostęp do zapisu każdemu kontu w systemie oraz każdemu procesowi działającemu w ramach tych kont. Serwer uruchamia usługi na dedykowanych użytkownikach, więc "wszyscy" na VPS oznacza znacznie szerszy zakres niż na komputerze osobistym. Usługa, która zostanie przejęta, może zapisywać dane wszędzie tam, gdzie pozwala na to uprawnienie 777.

W katalogu głównym serwera WWW szkody są bezpośrednie. Katalog z uprawnieniami zapisu dla wszystkich, który jest jednocześnie serwowany przez serwer, sprawia, że luka w przesyłaniu plików staje się metodą na umieszczenie skryptu, a następnie jego wywołanie.

777 prawie zawsze jest błędną odpowiedzią na problem z własnością plików. Objawem jest komunikat "aplikacja nie może zapisać danych w tym katalogu". Przyczyną jest fakt, że katalog należy do niewłaściwego użytkownika. sudo chown -R appuser:appuser /srv/app/storage z trybem 755 rozwiązuje ten problem i blokuje dostęp pozostałym kontom. Tworzenie tych kont przed wdrożeniem jakichkolwiek usług powinno być częścią procedury opisanej w pierwsze dziesięć minut na nowym VPS.

Zapis dla wszystkich jest uzasadniony w jednym znanym miejscu, /tmp, i zapisuje się go jako drwxrwxrwt. Końcowe t to tzw. sticky bit: katalog jest zapisywalny dla wszystkich, jednak użytkownik może usunąć tylko te pliki, których jest właścicielem. Bez tego bitu każde konto mogłoby usuwać pliki tymczasowe należące do innych użytkowników.

Zapoznaj się z trybem przed jego zmianą

Poniższe polecenia służą wyłącznie do odczytu stanu, dlatego ich uruchomienie jest bezpieczne w każdym środowisku.

id
umask
stat -c '%A %a %U %G %n' ~/permdemo ~/permdemo/inner/notes.txt
namei -l ~/permdemo/inner/notes.txt
find ~/permdemo -perm -0002

find <path> -perm -0002 wyświetla wszystkie elementy w ścieżce, dla których ustawiono bit zapisu dla wszystkich użytkowników (world write bit). Jest to najszybsza metoda audytu serwera po tym, jak ktoś wprowadzał zmiany przy użyciu chmod 777.

Aby sprawdzić, czy konkretne konto serwisowe ma dostęp do katalogu, należy wykonać zapytanie jako ten użytkownik. sudo -u www-data test -x /srv/site && echo yes || echo no wyświetla yes, jeśli użytkownik posiada uprawnienie do przechodzenia przez katalog, oraz no, jeśli go nie posiada. Wykonywanie zapytania jako root nie jest miarodajne, ponieważ root pomija sprawdzanie uprawnień i zawsze otrzymuje odpowiedź yes.

FAQ

Co oznacza drwxr-xr-x w systemie Linux?

Jest to katalog, co wskazuje początkowe d, o trybie 755. Triada właściciela to rwx, więc właściciel posiada wszystkie uprawnienia. Triada grupy to r-x, a triada pozostałych użytkowników to r-x, co oznacza, że każdy może wyświetlić zawartość katalogu i przejść przez niego, ale tylko właściciel może dodawać lub usuwać pliki. Uprawnienia dowolnej ścieżki można sprawdzić za pomocą stat -c '%A %a %U %G %n' <path>, co wyświetla postać literową oraz ósemkową obok siebie.

Dlaczego pliki WWW mają tryb 644, a katalogi 755?

Serwer WWW działa na koncie o innej nazwie, www-data w systemie Ubuntu. Wymaga on uprawnienia do odczytu serwowanych plików oraz uprawnienia do przechodzenia przez każdy katalog nadrzędny; nie ma natomiast potrzeby zapisu. Tryb 644 nadaje właścicielowi prawo zapisu, a wszystkim innym prawo odczytu. Tryb 755 nadaje właścicielowi prawo zapisu, a wszystkim innym prawo przechodzenia. Katalog, do którego aplikacja musi faktycznie zapisywać dane, powinien zostać przekazany użytkownikowi tej aplikacji za pomocą chown, zamiast rozszerzania uprawnień dla wszystkich.

Czy bit x oznacza, że mogę wykonać katalog?

Nie. W przypadku katalogu x oznacza prawo przechodzenia, czyli możliwość rozpoznania nazwy wewnątrz katalogu podczas śledzenia ścieżki przez jądro systemu. cd wymaga tego uprawnienia, podobnie jak każda operacja otwarcia pliku znajdującego się wewnątrz. Każdy katalog na ścieżce musi mieć ustawione x, więc plik z trybem 644 pozostaje niedostępny, jeśli użytkownik nie posiada x dla katalogu nadrzędnego. namei -l /path/to/file wyświetla tryb każdego katalogu w ścieżce, co pozwala wskazać miejsce, w którym wyszukiwanie zostaje przerwane.

Czy chmod 777 jest kiedykolwiek właściwym rozwiązaniem?

Prawie nigdy na serwerze. Nadaje on prawo zapisu każdemu kontu w systemie, w tym kontom, na których działają usługi, więc jedna przejęta usługa może nadpisać plik. Gdy aplikacja nie może zapisać danych w katalogu, rzeczywistym problemem jest zazwyczaj właściciel: sudo chown -R appuser:appuser /srv/app/storage z trybem 755 zapewnia aplikacji niezbędne uprawnienia, nie dając ich nikomu innemu. Znany wyjątek stanowi /tmp z trybem 1777; działa to tylko dlatego, że sticky bit uniemożliwia użytkownikom usuwanie plików należących do innych osób.

Dlaczego ls wyświetla kropkę lub plus po uprawnieniach?

Jedenasty znak opisuje reguły wykraczające poza dziewięć bitów uprawnień. Kropka, jak w drwxr-xr-x., oznacza, że przypisany jest kontekst bezpieczeństwa SELinux, co jest standardem w systemach Fedora i Rocky. Plus, jak w drwxr-xr-x+, oznacza, że ustawiona jest lista kontroli dostępu POSIX ACL, więc niektórzy użytkownicy lub grupy posiadają prawa, których nie widać w trzech triadach. Należy uruchomić getfacl <path>, aby wyświetlić te dodatkowe wpisy.

#permissions#ls#chmod#linux-basics#octal