15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
16.08.2025

Jak sprawdzić uprawnienia plików w Linux: Kompletny przewodnik

Linux napędza większość serwerów na świecie — od środowisk VPS Hosting po klasy enterprise Dedicated Servers — i to z dobrego powodu. Jest szybki, stabilny i zbudowany z bezpieczeństwem w rdzeniu. Jednym z najbardziej fundamentalnych filarów tego bezpieczeństwa jest system uprawnień do plików: precyzyjny, elegancki mechanizm, który kontroluje dokładnie, kto może czytać, modyfikować lub wykonywać dowolny plik lub katalog w systemie.

Niezależnie od tego, czy jesteś programistą wdrażającym aplikację internetową, administratorem systemu zabezpieczającym serwer, czy początkującym uczącym się linii poleceń, zrozumienie, jak sprawdzać i interpretować uprawnienia do plików w Linux, jest umiejętnością niezbędną. Ten przewodnik obejmuje wszystko, co musisz wiedzieć — od podstaw modelu uprawnień po zaawansowane bity specjalne — z praktycznymi poleceniami i przykładami z rzeczywistego świata.

Czym są uprawnienia do plików w Linux?

Każdy pojedynczy plik i katalog w Linux ma przypisany zestaw uprawnień. Te uprawnienia definiują, jakie działania są dozwolone i przez kogo. Istnieją trzy podstawowe typy uprawnień:

UprawnienieSymbolCo robi na plikuCo robi na katalogu
OdczytrWyświetl zawartość plikuWyświetl nazwy plików wewnątrz
ZapiswModyfikuj lub usuń plikUtwórz lub usuń pliki wewnątrz
WykonaniexUruchom plik jako programWejdź (nawiguj do) katalogu

Te trzy uprawnienia są stosowane niezależnie do trzech odrębnych kategorii użytkowników:

  • Właściciel (użytkownik) — Użytkownik, który jest właścicielem pliku, zwykle jego twórca.
  • Grupa — Każdy użytkownik, który należy do przypisanej grupy pliku.
  • Inni — Wszyscy pozostali w systemie.

Ta macierz uprawnień trzy na trzy daje administratorom Linux szczegółową, potężną kontrolę nad dostępem do każdego zasobu w systemie.

Jak sprawdzić uprawnienia do pliku: polecenie ls -l

Najszybszą i najczęściej używaną metodą sprawdzenia uprawnień do pliku jest polecenie ls -l (format długiej listy).

ls -l file.txt

Przykładowe wyjście:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Rozłóżmy każdy komponent tego wyjścia:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Tak więc -rw-r--r-- mówi nam:

  • Właściciel (alice): Odczyt + Zapis (rw-)
  • Grupa (developers): Tylko odczyt (r--)
  • Inni: Tylko odczyt (r--)

Sprawdzanie uprawnień dla wielu plików

Aby zobaczyć uprawnienia dla wszystkich plików w katalogu na raz:

ls -la /var/www/html

Flaga -a zawiera ukryte pliki (te zaczynające się od kropki). Jest to szczególnie przydatne podczas audytu katalogów serwera internetowego w środowisku Shared Web Hosting lub VPS.

Uzyskiwanie szczegółowych informacji o uprawnieniach za pomocą stat

Aby uzyskać bardziej szczegółowy przegląd — w tym zarówno reprezentacje symboliczne, jak i numeryczne — użyj polecenia stat:

stat file.txt

Przykładowe wyjście:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Kluczowa linia to:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

To daje Ci:

  • Notacja numeryczna (ósemkowa): 0644
  • Notacja symboliczna: -rw-r--r--
  • Identyfikator użytkownika (UID) i identyfikator grupy (GID) z ich czytelnymi nazwami

Polecenie stat jest nieocenione podczas rozwiązywania problemów z uprawnieniami na serwerach produkcyjnych, ponieważ zapewnia cały potrzebny kontekst w jednym wyjściu.

Zrozumienie notacji numerycznej (ósemkowej) uprawnień

Uprawnienia Linux można wyrazić jako liczby, co jest formatem używanym przez polecenia takie jak chmod. Każdemu typowi uprawnienia przypisana jest wartość:

UprawnienieWartość numeryczna
Odczyt (r)4
Zapis (w)2
Wykonanie (x)1
Brak uprawnienia (-)0

Obliczasz wartość uprawnienia dla każdej kategorii użytkownika, dodając wartości razem:

KombinacjaObliczenieWartość numeryczna
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Trzycyfrowa liczba ósemkowa reprezentuje pełny zestaw uprawnień:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Sprawdzanie uprawnień do katalogów

Katalogi używają tego samego modelu uprawnień, ale znaczenie każdego bitu jest nieco inne. Użyj ls -ld (zwróć uwagę na flagę -d), aby sprawdzić sam katalog, a nie jego zawartość:

ls -ld myfolder

Przykładowe wyjście:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

Wiodący d potwierdza, że to katalog. Uprawnienia rozkładają się na:

  • Właściciel (alice): rwx — Może wyświetlać listę, tworzyć/usuwać pliki i wchodzić do katalogu
  • Grupa (developers): r-x — Może wyświetlać listę plików i wchodzić, ale nie może tworzyć ani usuwać
  • Inni: --- — Brak dostępu

> Ważne: Bit wykonania (x) na katalogu oznacza możliwość wejścia do niego (tj. użycia cd). Bez x użytkownik nie może nawigować do katalogu, nawet jeśli ma uprawnienie do odczytu. To jest częste źródło zamieszania dla początkujących.

Specjalne bity uprawnień: setuid, setgid i sticky bit

Poza standardowymi dziewięcioma bitami uprawnień, Linux obsługuje trzy specjalne bity uprawnień, które zapewniają zaawansowaną kontrolę dostępu:

1. setuid (s na bicie wykonania właściciela)

Gdy jest ustawiony na pliku wykonywalnym, program uruchamia się z uprawnieniami właściciela pliku, a nie użytkownika wywołującego. W ten sposób polecenia takie jak passwd pozwalają zwykłym użytkownikom modyfikować /etc/shadow (który jest własnością root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

s w pozycji wykonania właściciela wskazuje setuid.

2. setgid (s na bicie wykonania grupy)

Na pliku program uruchamia się z uprawnieniami grupy. Na katalogu nowe pliki utworzone wewnątrz automatycznie dziedziczą grupę katalogu — przydatne dla udostępnionych folderów projektów.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t na bicie wykonania innych)

Gdy jest ustawiony na katalogu, tylko właściciel pliku (lub root) może usuwać lub zmieniać nazwy plików wewnątrz niego, nawet jeśli inni mają uprawnienie do zapisu. To jest standardowa konfiguracja dla /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

t na końcu sygnalizuje, że sticky bit jest aktywny.

Reprezentacja numeryczna bitów specjalnych:

Bit specjalnyWartość numeryczna
setuid4000
setgid2000
Sticky bit1000

Tak więc drwxrwxrwt = 1777 (1000 + 777).

Kompletna tabela referencji uprawnień

SymbolicznyNumerycznyZnaczenie na plikuZnaczenie na katalogu
---0Brak dostępuBrak dostępu
--x1Tylko wykonanieTylko wejście
-w-2Tylko zapisModyfikuj zawartość (z x)
-wx3Zapis + WykonanieWejdź i modyfikuj
r--4Tylko odczytWyświetl nazwy (wymaga x aby być przydatnym)
r-x5Odczyt + WykonanieWyświetl listę i wejdź
rw-6Odczyt + ZapisWyświetl listę i modyfikuj (bez wejścia)
rwx7Pełny dostępPełna kontrola

Przykłady uprawnień z rzeczywistego świata

Oto najczęstsze wzorce uprawnień, które napotkasz w praktyce:

-rw-r--r-- (0644) — Standardowy plik

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Właściciel może czytać i pisać. Grupa i inni mogą tylko czytać. Typowe dla plików konfiguracyjnych i zawartości internetowej.

-rwxr-xr-x (0755) — Skrypt wykonywalny lub plik binarny

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Właściciel ma pełny dostęp. Wszyscy inni mogą czytać i wykonywać, ale nie mogą modyfikować. Standard dla skryptów powłoki, plików binarnych serwera internetowego i publicznych plików wykonywalnych.

-rw------- (0600) — Plik prywatny

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Tylko właściciel może czytać lub pisać. Brak dostępu dla nikogo innego. Wymagane dla prywatnych kluczy SSH — SSH odmówi użycia pliku klucza z szerszymi uprawnieniami.

drwxr-xr-x (0755) — Standardowy katalog publiczny

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Wspólny dla katalogów głównych sieci Web. Właściciel ma pełną kontrolę; inni mogą przeglądać i wchodzić.

drwx------ (0700) — Katalog prywatny

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Całkowicie prywatny. Tylko właściciel może uzyskać dostęp. Wymagane dla katalogu ~/.ssh.

drwxrwxrwt (1777) — Dostępny dla wszystkich z Sticky Bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Każdy może tworzyć pliki, ale tylko właściciel każdego pliku może usunąć swoje własne pliki.

Praktyczne porady dla środowisk serwerowych

Jeśli zarządzasz serwerem Linux — niezależnie od tego, czy jest to VPS uruchamiający aplikację internetową, serwer poczty zab

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij