Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Prawa dostępu

Zaczęty przez Qloda, Listopad 08, 2017, 10:44:54 AM

Poprzedni wątek - Następny wątek

Qloda

Witam,
Mam pytanie odnośnie praw dostępu dla plików i katalogów.
Jakie prawa są konieczne (minimalny zestaw), aby wykonać operację: cp, mv i rm na pliku?
Czy dobrze myślę?





Operacja   Katalog źródłowy   Katalog docelowy   Plik
rwxrwx-wxr--
rwxrw-rw-r--
rwxr-xr-xr--

I jakie uprawnienia potrzebuję do usunięcia całej gałęzi? Czyli katalogu wraz z zawartymi plikami i podkatalogami.

pavroo

Jeśli chcesz wykonywać działania jako zwykły użytkownik to:
pliki chmod 644:
-rw-r--r--
katalogi chmod 755:
drwxr-xr-x
Czasami lepiej trzymać usta zamknięte i być traktowany jak idiota, niż je otworzyć i rozwiać wszelkie wątpliwości. Mark Twain

lesio

Tabelka chyba się nieco "rozjechała", szczególnie w rubryce "operacja".
Przy poleceniu "cp" nie zmieniamy zawartości katalogu źródłowego, w związku z czym nie musimy mieć prawa do zapisu w katalogu - "w". Przy poleceniu "mv" i "rm" już tak, bo zmieniamy zawartość katalogu źródłowego. Ciekawie jest w wypadku pliku. Jeśli do pliku nie mamy żadnych uprawnień, to i tak możemy go skasować, jeśli mamy uprawnienia do zamiany zawartości katalogu, chociaż system dla pewności spyta się nas, czy na pewno chcemy to zrobić. Żeby usunąć całe drzewko katalogów, to zasadniczo musimy mieć prawa do pisania i przechodzenia przez katalog (czyli wx), bo usuwanie odbywa się od najniższych gałęzi. Nie pamiętam, czy konieczne jest "r". Jeśli pracujemy indywidualnie na swoich danych i nie musimy tych danych współdzielić, to w zupełności wystarczające są uprawnienia tylko dla nas (czyli rwx------). Wtedy inni członkowie grupy oraz "inni" użytkownicy nie mają do nich dostępu.

Qloda

Rzeczywiście trochę się "rozwaliła" tabelka.
Czyli tabelka teraz po waszych poradach wyglądała by następująco.






Operacja    Katalog źródłowy    Katalog docelowy    Plik
rm    -wx    -wx   ---
mv    rwx    rwx   ---
cp    r-x    r-x    -w-

Czy jednak się mylę?

lesio

Następujące założenia początkowe dla każdej operacji:
- mam 2 podkatalogi: źródłowy "z" i docelowy "d"
- plik "p" znajduje się w podkatalogu "z"

Minimalne uprawnienia dla każdej operacji wychodzą mi następujące:

operacja                    katalog źródłowy              katalog docelowy               plik w katalogu źródłowym
cp z/p d                    d--x------ z/                     d-wx------ d/                     -r-------- z/p
mv z/p d                   d-wx------ z/                    d-wx------ d/                     ---------- z/p
rm z/p                      d-wx------ z/                                                            ---------- z/p

Kopiowanie odbywa się poprzez odczytanie pliku, więc musi być prawo czytania dla pliku.
Żeby cokolwiek zrobić w katalogu, trzeba do niego wejść (czyli "wykonać" - prawo wykonywania).
Żeby utworzyć w katalogu plik lub skasować plik, trzeba zmienić zawartość katalogu, stąd prawo pisania.
To są oczywiście PRAWA MINIMALNE DLA TRZECH WYMIENIONYCH OPERACJI PRZY ZAŁOŻENIACH POCZĄTKOWYCH PODANYCH NA WSTĘPIE. Mało wygodne jest przechowywanie pliku, którego nie możemy chociażby czytać, a także operowanie na katalogach, których zawartości nie możemy przeglądnąć poleceniem "ls"  :-)

Qloda

Dzięki wielkie.
Wszystko bardzo fajnie mi opisałeś i już wiem co i jak :)

Temat można zamknąć

lesio

Pozwolę sobie dodać jedną ciekawostkę. Jeżeli do katalogu docelowego chcemy skopiować (lub przenieść) plik o nazwie, która już występuje w katalogu docelowym, to oprócz uprawnień d-wx dla katalogu docelowego potrzebne jest także uprawnienie "r" (a więc ostatecznie drwx------). Dzieje się tak dlatego, że w tym wypadku nie chodzi jedynie o dodanie nowego wpisu w katalogu (do tego wystarcza "w"), ale o uaktualnienie istniejącego wpisu w katalogu (a więc jego modyfikację, czyli odczytanie i zapisanie - a więc potrzebne jest "rw").

Zobacz najnowsze wiadomości na forum