Wie kann ich weltweit beschreibbare Dateien und Ordner finden und das Sticky Bit setzen?

13

Ich möchte Folgendes tun:

  1. Müssen alle weltweit beschreibbaren Dateien und Ordner von /root 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 Befehlszeilenlösung für diese Art von Problem finden?

schnüffeln
quelle

Antworten:

13

Sie können dies mit tun find‚s - -perm -modeFormat. Von man find:

-perm -modus

Alle Berechtigungsbits sind für die Datei festgelegt. Symbolische Modi werden in dieser Form akzeptiert, und dies ist normalerweise die Art und Weise, wie sie verwendet werden möchten. 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 weltweit beschreibbar sind, unabhängig von den anderen Berechtigungen, können Sie Folgendes tun:

find / -perm -o+w 

Verwenden Sie zum Setzen des klebrigen Bits -exec:

find . -perm -o+w -exec chmod +t {} + 
Terdon
quelle
2
NB: Verwenden find / -not -type l -perm -o+wSie diese Option, wenn die Ausgabe nicht auch die Namen symbolischer Links enthalten soll.
chb
2

Dieser Befehl sollte beschreibbare Verzeichnisse in einem Befehl finden, ich benutze ihn ziemlich oft. Dies ist der optimale Befehl! ;) hoffe es dient dir gut:

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