Uprawnienia plików

Ogólne pytania dotyczące systemu
noiro
Posty: 23
Rejestracja: 15 stycznia 2018, 14:59

Uprawnienia plików

Post autor: noiro »

Czy istnieje jakiś sposób, aby ustawić, aby katalog wraz z zawartością kopiowany do innego folderu przyjmował jego wszystkie uprawnienia jak i zmieniał właściciela?
Awatar użytkownika
dedito
Moderator
Posty: 3581
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Uprawnienia plików

Post autor: dedito »

Czyli przykładowo kopiujesz katalog A do katalogu B i kopia katalogu A wraz zawartością ma przyjąć uprawnienia i właściciela katalogu B ?
noiro
Posty: 23
Rejestracja: 15 stycznia 2018, 14:59

Re: Uprawnienia plików

Post autor: noiro »

dedito pisze: 12 lutego 2025, 06:16 Czyli przykładowo kopiujesz katalog A do katalogu B i kopia katalogu A wraz zawartością ma przyjąć uprawnienia i właściciela katalogu B ?
Tak dokładnie oto mi chodzi.
Do katalogu "audiobooki" którego właścicielem jest user1, nadałem uprawnienia odczytu i zapisu dla audiobookshelf, aby miał pełen dostęp do plików i katalogów w tym folderze. I teraz gdy przenoszę katalog z innego dysku do tego folderu audiobookshelf nie widzi tych plików albo nie może nadpisać danych z powodu uprawnień. Pytałem się nawet deepseek o pomoc :) Pozwolę sobie zacytować (przepraszam trochę długie):
Właścicielem katalogu i zawartych w nim podkatalogów i plików jest user1 chciałbym teraz nadać prawa zapisu w tym drzewie dla user2, czy wystarczy, że dodam użytkownika user2 do grupy user1, aby nadać mu te uprawnienia?

Nie, dodanie użytkownika user2 do grupy user1 nie wystarczy, aby nadać mu prawa zapisu w drzewie katalogów, chyba że:

Grupa user1 jest właścicielską grupą plików i katalogów.

Uprawnienia grupy (g) dla tych plików i katalogów zawierają prawa zapisu (w).

Jeśli te warunki nie są spełnione, samo dodanie user2 do grupy user1 nie da mu praw zapisu. Wyjaśniam krok po kroku, jak to działa i co możesz zrobić:

1. Sprawdź właściciela i uprawnienia

Najpierw sprawdź, kto jest właścicielem plików i katalogów oraz jakie są ich uprawnienia. Użyj polecenia:

Kod: Zaznacz cały

ls -ld /ścieżka/do/katalogu
Przykładowy wynik:

Kod: Zaznacz cały

drwxr-xr-x 5 user1 user1 4096 Oct 10 12:00 /ścieżka/do/katalogu
Pierwsza kolumna (drwxr-xr-x) pokazuje uprawnienia:

d — katalog.

rwx — uprawnienia właściciela (user1).

r-x — uprawnienia grupy (user1).

r-x — uprawnienia innych użytkowników.

Trzecia kolumna (user1) to właściciel.

Czwarta kolumna (user1) to grupa właścicielska.

W tym przypadku:

Właściciel (user1) ma pełne uprawnienia (rwx).

Grupa (user1) ma tylko uprawnienia do odczytu i wykonywania (r-x), bez zapisu.

Inni użytkownicy również mają tylko uprawnienia do odczytu i wykonywania (r-x).

2. Dodanie user2 do grupy user1

Jeśli dodasz user2 do grupy user1, to:

Kod: Zaznacz cały

sudo usermod -aG user1 user2
Następnie użytkownik user2 będzie członkiem grupy user1, ale nie otrzyma automatycznie praw zapisu, ponieważ grupa user1 nie ma praw zapisu do plików i katalogów (patrz uprawnienia r-x).

3. Nadanie grupie praw zapisu

Aby user2 mógł zapisywać w tych plikach i katalogach, musisz zmienić uprawnienia grupy na rwx (lub przynajmniej rw-). Użyj polecenia:

Kod: Zaznacz cały

sudo chmod -R g+rw /ścieżka/do/katalogu
-R — rekursywnie (dla wszystkich plików i podkatalogów).

g+rw — dodaj prawa zapisu (w) i odczytu (r) dla grupy.

Po tym poleceniu uprawnienia grupy zmienią się na rwx (lub rw-), a user2 (jako członek grupy user1) będzie miał prawa zapisu.

4. Alternatywa: Użyj ACL

Jeśli nie chcesz zmieniać uprawnień grupy user1, możesz użyć ACL, aby nadać user2 prawa zapisu bez modyfikowania uprawnień grupy. Wykonaj:

Kod: Zaznacz cały

sudo setfacl -R -m u:user2:rwx /ścieżka/do/katalogu
-R — rekursywnie.

-m u:user2:rwx — nadaj użytkownikowi user2 prawa odczytu, zapisu i wykonywania.

Aby sprawdzić, czy ACL zostały poprawnie ustawione, użyj:

getfacl /ścieżka/do/katalogu

Podsumowanie

Dodanie user2 do grupy user1 nie wystarczy, jeśli grupa user1 nie ma praw zapisu do plików i katalogów.

Aby user2 miał prawa zapisu, musisz:

Zmienić uprawnienia grupy na rwx (lub rw-) za pomocą chmod.

Lub użyć ACL, aby nadać user2 prawa zapisu bez zmiany uprawnień grupy.

Jeśli chcesz zachować prostotę, zmiana uprawnień grupy (chmod) jest najprostszym rozwiązaniem. Jeśli jednak chcesz zachować obecne uprawnienia grupy, ACL jest bardziej elastycznym podejściem. 😊


Jeżeli użyje chmod g+s to wszystkie nowe pliki i katalogi będą miały uprawnienia katalogu nadrzędnego?

Nie do końca. Polecenie chmod g+s ustawia bit SGID (Set Group ID) na katalogu, ale nie działa on dokładnie tak, jak opisujesz. Wyjaśniam, jak działa g+s i jak wpływa na nowe pliki i katalogi:

Co robi chmod g+s?

Bit SGID ustawiony na katalogu powoduje, że wszystkie nowo tworzone pliki i podkatalogi w tym katalogu będą dziedziczyć grupę właścicielską katalogu nadrzędnego, a nie domyślną grupę użytkownika, który je tworzy.

Nie zmienia to uprawnień (rwx) nowych plików i katalogów — one nadal będą miały domyślne uprawnienia określone przez maskę (umask) użytkownika.

Przykład działania g+s:

1. Załóżmy, że masz katalog /home/user/magazyn z grupą właścicielską user1:

Kod: Zaznacz cały

drwxr-sr-x 2 user1 user1 4096 Oct 10 12:00 /home/user/magazyn
r-s w uprawnieniach grupy oznacza, że bit SGID jest ustawiony.

2. Jeśli użytkownik user2 (którego domyślna grupa to user2) utworzy nowy plik lub katalog w /home/user/magazyn, to:

* Grupa właścicielska nowego pliku/katalogu będzie user1 (dziedziczona z katalogu nadrzędnego).

* Uprawnienia nowego pliku/katalogu będą zależeć od maski (umask) użytkownika user2.

Przykład:

Kod: Zaznacz cały

    touch /home/user/magazyn/nowy_plik.txt
    ls -l /home/user/magazyn/nowy_plik.txt
Wynik:

Kod: Zaznacz cały

    -rw-r--r-- 1 user2 user1 0 Oct 10 12:00 /home/user/magazyn/nowy_plik.txt
Właścicielem jest user2, ale grupa właścicielska to user1.

Jak g+s wpływa na uprawnienia?

Bit SGID nie zmienia uprawnień (rwx) nowych plików i katalogów. Uprawnienia są nadal określane przez maskę (umask) użytkownika.

Domyślna maska (umask) w większości systemów to 022, co oznacza, że nowe pliki będą miały uprawnienia 644 (rw-r--r--), a katalogi 755 (rwxr-xr-x).

Jeśli chcesz, aby nowe pliki i katalogi miały określone uprawnienia, musisz użyć ACL (Access Control Lists) z domyślnymi regułami.

Jak ustawić domyślne uprawnienia dla nowych plików i katalogów?

Aby nowe pliki i katalogi miały określone uprawnienia (np. dla grupy user1), użyj ACL z domyślnymi regułami:

Ustaw domyślne ACL dla katalogu:

Kod: Zaznacz cały

    sudo setfacl -d -m g:user1:rwx /home/user/magazyn
-d — ustaw domyślne reguły ACL.

-m g:user1:rwx — nadaj grupie user1 uprawnienia rwx dla nowych plików i katalogów.

Sprawdź ACL:

Kod: Zaznacz cały

    getfacl /home/user/magazyn
Powinieneś zobaczyć wpisy podobne do:

Kod: Zaznacz cały

    # file: /home/user/magazyn
    # owner: user1
    # group: user1
    user::rwx
    group::r-x
    other::r-x
    default:user::rwx
    default:group::r-x
    default:group:user1:rwx
    default:mask::rwx
    default:other::r-x
Teraz, gdy użytkownik utworzy nowy plik lub katalog w /home/user/magazyn, będzie miał odpowiednie uprawnienia:

Nowe pliki: rw-rw-r-- (odczyt i zapis dla właściciela i grupy).

Nowe katalogi: rwxrwxr-x (odczyt, zapis i wykonywanie dla właściciela i grupy).

Podsumowanie

chmod g+s powoduje, że nowe pliki i katalogi dziedziczą grupę właścicielską katalogu nadrzędnego, ale nie zmienia ich uprawnień.

Aby nowe pliki i katalogi miały określone uprawnienia, użyj ACL z domyślnymi regułami (setfacl -d).

Jeśli chcesz, aby user2 mógł zapisywać w nowych plikach i katalogach, upewnij się, że:

1. Grupa user1 ma odpowiednie uprawnienia (np. rwx).

2. Użyj ACL, aby ustawić domyślne uprawnienia dla grupy user1.
Nie mam żadnej wiedzy jeżeli chodzi o ACL, i tu moje pytanie jak to najprościej zrobić?
Awatar użytkownika
dedito
Moderator
Posty: 3581
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: Uprawnienia plików

Post autor: dedito »

Myślę, że standardowe uprawnienia tutaj wystarczą i nie trzeba zaprzęgać ACL do tego zadania.
audiobookshelf to użytkownik czy katalog?
Przydałby się wynik

Kod: Zaznacz cały

ls -la
z poziomu katalogu audiobooki
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Re: Uprawnienia plików

Post autor: fnmirk »

Autora przeraziła odpowiedź jaką uzyskał od tzw. SI. Uprawnienia dotyczące plików i katalogów w większości przypadków wystarczy wyklikać z poziomu dowolnego menadżera plików. Np. mc, thunar itp.
ODPOWIEDZ