Jak mogę znaleźć pliki i foldery do zapisu na świecie i ustawić lepki bit?

13

Chcę wykonać następujące czynności:

  1. Musisz znaleźć wszystkie pliki i foldery do zapisu na świecie z /katalogu głównego.
  2. Jeśli znaleziono, muszę sprawdzić, czy bit lepki jest ustawiony, czy nie.
  3. Jeśli lepki bit nie jest ustawiony, ustaw go.

Czy możemy zaproponować rozwiązanie wiersza polecenia dla tego rodzaju problemu?

podejrzeć
źródło

Odpowiedzi:

13

Można to zrobić przy użyciu find„s -perm -modeformatu. Od man find:

-perm -mode

Wszystkie tryby bitów uprawnień są ustawione dla pliku. Tryby symboliczne są akceptowane w tej formie i zwykle jest to sposób, w jaki chciałby ich użyć. u',Jeśli używasz trybu symbolicznego, musisz podać g lub o. Zobacz przykłady w celu uzyskania przykładów.

Tak więc, aby znaleźć wszystkie pliki, które można zapisywać na całym świecie, niezależnie od innych posiadanych uprawnień, możesz:

find / -perm -o+w 

Aby ustawić lepki bit, użyj -exec:

find . -perm -o+w -exec chmod +t {} + 
terdon
źródło
2
Uwaga: użyj, find / -not -type l -perm -o+wjeśli nie chcesz, aby dane wyjściowe zawierały również nazwy dowiązań symbolicznych.
chb 10.10.16
2

To polecenie powinno znaleźć zapisywalne katalogi w jednym poleceniu, często go używam. To optymalne polecenie! ;) mam nadzieję, że dobrze ci to służy:

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;
Boschko
źródło