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?

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 {} + 

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 {} \;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.