Chmod zezwala na uprawnienia do odczytu i zapisu dla katalogu

62

Utworzyłem katalogi w katalogu głównym. Szukam chmodpolecenia, aby zezwolić wszystkim użytkownikom na odczytywanie i zapisywanie uprawnień do określonego katalogu. Zrobiłem chmod 775dla pliku, ale potrzebuję tego dla katalogu. Obejmuje to uprawnienia do wszystkich plików i podkatalogów.

chrissygormley
źródło

Odpowiedzi:

34

0775rzadko jest poprawny dla pliku. Następujące doda odpowiednie pożądane uprawnienia do odpowiedniego typu, bez zakłócania innych istniejących uprawnień:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Zobacz stronę podręcznika, aby znaleźć find, który pomoże to rozszyfrować.

Ignacio Vazquez-Abrams
źródło
47

Dla wszystkich użytkowników, którzy mają dostęp do odczytu i zapisu, byłoby 0777to nieco niebezpieczne, szczególnie jeśli korzystasz z serwera WWW. Jak powiedział @unwind:

chmod -R 0777 /mydirectory Umożliwi wszystkim użytkownikom dostęp do odczytu i zapisu do wszystkich plików i folderów w tym katalogu

W zależności od celu możesz przeczytać o lepkich bitach, które pozwalają wszystkim użytkownikom tworzyć nowe pliki, ale nie mogą usuwać ani edytować innych plików w katalogu:

chmod +t /mydirectory

Ponadto, jeśli nie wiesz, man chmodpojawi się strona podręcznika dla chmodpolecenia, w której możesz wyszukać tekst „rekurencyjny”, wpisując/recursive


źródło
15

Tak nie działa model ochrony Unixa, nie można rekurencyjnie ustawiać uprawnień. Musisz ustawić je w każdym katalogu do samego końca.

Oczywiście można wykonać ustawienie rekurencyjnie, ale to tylko oznacza „przejść i ustawić te uprawnienia na wszystkich plików i folderów na dole”, co nie jest, jak rozumiem Twoje pytanie.

Aby to zrobić, użyj opcji -R, aby chmod:

$ chmod -R 0755 /my-cool-directory
rozwijać
źródło
@ unwind - Mam na myśli każdy plik i podkatalog katalogu, który chmod ma uprawnienia do odczytu i zapisu dla wszystkich. Czy to właśnie robi to polecenie? Dzięki
1
Kiedy wstawiam -r przed 0755, otrzymuję 0755 - nie ma takiego pliku ani katalogu .. umieszczenie -r po rozwiązuje mój problem.
Tim Mottram
„zrób”. lol. miły.
ytpillai