it-swarm.com.de

Wie kann ich beschreibbare Dateien und Ordner auf der ganzen Welt finden und das Sticky-Bit setzen?

Ich möchte Folgendes tun:

  1. Sie müssen alle beschreibbaren Dateien und Ordner der Welt im Stammverzeichnis von / finden.
  2. Wenn gefunden, muss ich überprüfen, ob das Sticky-Bit gesetzt ist oder nicht.
  3. Wenn das Sticky-Bit nicht gesetzt ist, setzen Sie es.

Können wir eine Kommandozeilenlösung für diese Art von Problem finden?

10
snoop

Sie können dazu das -perm -mode-Format von find verwenden. Aus man find:

-perm -mode

Alle Berechtigungsbit-Modi werden für die Datei festgelegt. Symbolische Modi werden in dieser Form akzeptiert, und dies ist normalerweise die Art und Weise, wie sie verwendet werden sollen. Sie müssen u',g 'oder `o' angeben, wenn Sie einen symbolischen Modus verwenden. Im Abschnitt BEISPIELE finden Sie einige veranschaulichende Beispiele.

Um alle Dateien zu finden, die von der Welt geschrieben werden können, unabhängig von den anderen Berechtigungen, die sie haben, können Sie Folgendes tun:

find / -perm -o+w 

Verwenden Sie -exec, um das Sticky-Bit zu setzen:

find . -perm -o+w -exec chmod +t {} + 
12
terdon

Dieser Befehl sollte alle beschreibbaren Verzeichnisse in einem Befehl finden. Ich benutze diesen Befehl ziemlich oft. Das ist der optimale Befehl! ;) hoffe es tut dir gut:

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