Folder utworzony w niewłaściwym miejscu lub z zbyt szerokimi uprawnieniami często staje się problemem później. Komenda mkdir wystarcza, aby zacząć, ale nie zastępuje kontroli właściciela, grupy i uprawnień.
Dla katalogu osobistego stwórz go w swoim katalogu użytkownika. W przypadku katalogu współdzielonego lub używanego przez usługę najpierw zidentyfikuj konto, które powinno móc pisać do niego. Komenda chmod 777 czasami maskuje prawdziwy problem z właścicielem i pozwala wszystkim lokalnym kontom na modyfikację zawartości.
Utwórz folder we właściwej lokalizacji
Z bieżącego folderu następująca komenda tworzy jeden katalog:
mkdir sauvegardes
Używając ścieżki absolutnej, wiesz dokładnie, gdzie folder zostanie utworzony. Dodaj -p, jeśli katalogi nadrzędne mogą brakować:
mkdir -p ~/projets/site-test/logs
Bez -p, mkdir zatrzymuje się, jeśli ~/projets/site-test nie istnieje. Opcja ta zapobiega również błędowi, gdy ostatni folder już istnieje. Nie zamienia błędnej ścieżki na prawidłową: sprawdź ją za pomocą pwd przed uruchomieniem komendy.
Aby przygotować przestrzeń, która ma należeć do twojego konta, pozostań w swoim katalogu osobistym. Unikniesz użycia sudo, co sprawi, że folder utworzony przez root nie będzie mógł być wypełniony przez twojego użytkownika:
mkdir -p ~/archives/2026
stat -c '%A %U:%G %n' ~/archives ~/archives/2026
Wybierz odpowiednie uprawnienia do użytku
Folder wymaga prawa x, aby można go było przeglądać. W katalogu r pozwala na wymienienie nazw, a w pozwala na dodawanie, renomowanie lub usuwanie wpisów. Faktycznie zastosowane uprawnienia zależą również od twojego umask.
Dla folderu prywatnego utwórz go z wyraźnym trybem:
mkdir -m 700 ~/archives-privees
stat -c '%A %a %U:%G %n' ~/archives-privees
Tryb 700 zapewnia dostęp właścicielowi i zamyka folder dla innych użytkowników. Dla katalogu, w którym grupa robocza musi mieć możliwość odczytu i zapisu, wybierz lepiej znaną grupę i tryb 2770:
sudo install -d -o alice -g equipe-web -m 2770 /srv/equipe-web
stat -c '%A %a %U:%G %n' /srv/equipe-web
Cyfra 2 na początku aktywuje bit setgid dla folderu. Nowe pliki i podfoldery dziedziczą wtedy grupę equipe-web. To rozwiązanie zapobiega otwieraniu zapisu dla wszystkich kont na serwerze. Sprawdź, czy oczekiwani członkowie są w tej grupie, używając id nazwa_użytkownika.
mkdir -m 777 tworzy katalog, który może być modyfikowany przez każdego, a następnie umask może jeszcze zmniejszyć ten tryb. Nie używaj go do naprawy błędu Permission denied. Zamiast tego przeczytaj pełną ścieżkę, jej właściciela i prawa każdego folderu nadrzędnego:
namei -l /srv/equipe-web
ls -ld /srv /srv/equipe-web
id
Sprawdź przed przekazaniem folderu usłudze
Usługa uruchomiona pod www-data, postgres lub dedykowanym kontem niekoniecznie widzi takie same uprawnienia jak twoja sesja. Skonsultuj się z jej użytkownikiem przed zmianą czegokolwiek. Dla systemd ta komenda podaje konta skonfigurowane przez jednostkę:
systemctl show mon-service
-p User -p Group -p DynamicUser
Następnie utwórz folder z oczekiwanym właścicielem, a potem przetestuj plik z tego konta. Na maszynie testowej:
sudo install -d -o www-data -g www-data -m 750 /var/lib/mon-service
sudo -u www-data touch /var/lib/mon-service/test-ecriture
ls -l /var/lib/mon-service/test-ecriture
sudo rm /var/lib/mon-service/test-ecriture
Ta weryfikacja mówi ci, czy konto usługi może rzeczywiście pisać. Jeśli to zawiedzie, nie dodawaj uprawnień przypadkowo. Najpierw sprawdź właściciela, grupę, ewentualne ACL z getfacl i prawa katalogów nadrzędnych.
- Używaj
mkdir -pdla ścieżki, której rodzice mogą brakować. - Używaj
statlubls -ldtuż po utworzeniu. - Dla folderu współdzielonego, ustal właściciela, grupę i tryb przed uruchomieniem usługi.
- Zarezerwuj
chmoddla ukierunkowanej naprawy, po zidentyfikowaniu zablokowanego konta.
Przewodnik po setfacl w systemie Linux pomaga, gdy jeden użytkownik potrzebuje dodatkowego dostępu. Jeśli musisz zmienić uprawnienia w istniejącym drzewie katalogów, użyj raczej procedury poświęconej chmod rekurencyjnym: zmiana wszystkich plików i folderów tym samym trybem łatwo łamie prawa wykonawcze katalogów.
Strona podręcznika mkdir(1) szczegółowo opisuje opcje, a mkdir(2) wyjaśnia wpływ umask i dziedziczenie grupy. Pamiętaj o tych dwóch punktach przed utworzeniem folderu używanego przez usługę.
