Czym są uprawnienia plików w systemie Linux?

Uprawnienia plików w systemie Linux kontrolują, kto może odczytywać, zapisywać lub wykonywać plik bądź katalog. Każdy plik w systemie Linux ma trzy grupy uprawnień: właściciel (użytkownik, który go utworzył), grupa (użytkownicy należący do wspólnej grupy) oraz pozostali (wszyscy inni). Każdej grupie można przyznać trzy rodzaje dostępu: odczyt (r), zapis (w) i wykonanie (x).

Uprawnienia można wyrażać w dwóch notacjach. Notacja symboliczna używa liter, np. rwxr-xr-x, gdzie każdy znak reprezentuje określone uprawnienie dla konkretnej grupy. Notacja ósemkowa (numeryczna) używa trzycyfrowej lub czterocyfrowej liczby, np. 755, gdzie każda cyfra jest sumą wartości uprawnień: odczyt = 4, zapis = 2, wykonanie = 1.

Opcjonalna wiodąca cyfra w notacji ósemkowej reprezentuje bity specjalne: setuid (4), setgid (2) i sticky bit (1). Setuid pozwala programowi działać z uprawnieniami właściciela pliku, setgid sprawia, że nowe pliki dziedziczą grupę katalogu nadrzędnego, a sticky bit uniemożliwia użytkownikom usuwanie plików, których nie są właścicielami, w katalogach współdzielonych.

Opis narzędzia

To narzędzie umożliwia interaktywne tworzenie i dekodowanie uprawnień plików w systemie Linux. Zaznaczaj pola wyboru dla właściciela, grupy i pozostałych, aby ustawiać flagi odczytu, zapisu i wykonania, i natychmiast widzieć wynik zarówno w notacji ósemkowej, jak i symbolicznej. Możesz również wpisać wartość ósemkową, np. 755, lub ciąg symboliczny, np. rwxr-xr-x, bezpośrednio — pola wyboru i wizualne wyjście aktualizują się automatycznie. Kolorowe wizualne wyświetlanie ułatwia szybkie zrozumienie, które uprawnienia są aktywne, a gotowe polecenie chmod jest generowane automatycznie.

Przykłady

Ósemkowo Symbolicznie Znaczenie
755 -rwxr-xr-x Właściciel: pełny dostęp. Grupa i pozostali: odczyt i wykonanie.
644 -rw-r--r-- Właściciel: odczyt i zapis. Grupa i pozostali: tylko odczyt.
700 -rwx------ Właściciel: pełny dostęp. Brak dostępu dla grupy i pozostałych.
777 -rwxrwxrwx Pełny dostęp dla wszystkich.
1755 -rwxr-xr-t Jak 755 z ustawionym sticky bit.
4755 -rwsr-xr-x Jak 755 z ustawionym bitem setuid.

Funkcje

  • Przełączanie indywidualnych uprawnień odczytu, zapisu i wykonania dla każdej grupy za pomocą pól wyboru
  • Wpisywanie notacji ósemkowej (np. 755) lub symbolicznej (np. rwxr-xr-x) bezpośrednio z natychmiastową konwersją
  • Kolorowe bloki wizualne do szybkiego rozpoznawania aktywnych uprawnień
  • Obsługa bitów specjalnych: setuid, setgid i sticky bit
  • Automatycznie generowane polecenie chmod gotowe do skopiowania i użycia w terminalu

Przypadki użycia

  • Konfiguracja serwera WWW: Szybkie określenie właściwego zestawu uprawnień dla plików serwowanych przez Apache lub Nginx, np. 644 dla plików statycznych i 755 dla skryptów wykonywalnych.
  • Debugowanie błędów odmowy dostępu: Wklej ciąg uprawnień z wyjścia ls -l, aby wizualnie zrozumieć, której grupie brakuje dostępu.
  • Nauka uprawnień w systemie Linux: Interaktywne odkrywanie, jak przełączanie poszczególnych flag zmienia reprezentacje ósemkową i symboliczną.

Jak to działa

Każdy typ uprawnienia ma wagę numeryczną: odczyt = 4, zapis = 2, wykonanie = 1. Cyfra ósemkowa dla grupy jest sumą wag włączonych uprawnień. Na przykład odczyt + wykonanie = 4 + 1 = 5. Pełna notacja ósemkowa łączy cyfry dla właściciela, grupy i pozostałych — zatem rwxr-xr-x daje 755.

Bity specjalne dodają opcjonalną wiodącą cyfrę obliczaną w ten sam sposób: setuid = 4, setgid = 2, sticky = 1. Wartość 1755 oznacza sticky bit (1) plus właściciel=7, grupa=5, pozostali=5.

Objaśnienie opcji

  • Pola wyboru Właściciel / Grupa / Pozostali: Przełączanie odczytu (r), zapisu (w) i wykonania (x) dla każdej grupy uprawnień niezależnie.
  • Setuid: Po ustawieniu na pliku wykonywalnym, uruchamia go z uprawnieniami właściciela pliku zamiast uprawnień wywołującego użytkownika.
  • Setgid: Na katalogu nowe pliki dziedziczą grupę katalogu. Na pliku wykonywalnym uruchamia go z uprawnieniami grupy pliku.
  • Sticky bit: Na katalogu tylko właściciel pliku może usuwać lub zmieniać nazwy plików wewnątrz niego, nawet jeśli inni mają uprawnienie zapisu.
  • Wejście ósemkowe: Wpisz 3-cyfrową lub 4-cyfrową liczbę ósemkową, aby ustawić wszystkie uprawnienia jednocześnie.
  • Wejście symboliczne: Wpisz 9- lub 10-znakowy ciąg symboliczny (z opcjonalnym prefiksem typu pliku), aby ustawić uprawnienia.

FAQ

Co oznacza chmod 777? Nadaje uprawnienia odczytu, zapisu i wykonania właścicielowi, grupie i wszystkim pozostałym użytkownikom. Jest to generalnie niebezpieczne dla systemów produkcyjnych.

Jaka jest różnica między małą literą s a wielką literą S? Mała litera s oznacza, że bit wykonania oraz bit specjalny (setuid lub setgid) są oba ustawione. Wielka litera S oznacza, że ustawiony jest tylko bit specjalny, bez uprawnienia wykonania.

Do czego służy sticky bit? Sticky bit jest powszechnie ustawiany na katalogach współdzielonych, takich jak /tmp, aby uniemożliwić użytkownikom usuwanie lub zmianę nazw plików należących do innych, nawet jeśli wszyscy mają uprawnienie zapisu do katalogu.