Comment puis-je trouver des fichiers et des dossiers accessibles en écriture dans le monde et définir le bit collant?

13

Je veux faire ce qui suit:

  1. Besoin de trouver tous les fichiers et dossiers accessibles en écriture à partir de la /racine.
  2. S'il est trouvé, je dois vérifier si le bit collant est défini ou non.
  3. Si le bit collant n'est pas défini, définissez-le.

Pouvons-nous trouver une solution en ligne de commande pour ce type de problème?

fouiner
la source

Réponses:

13

Vous pouvez le faire en utilisant findle -perm -modeformat de. De man find:

-perm -mode

Tous les modes de bits d'autorisation sont définis pour le fichier. Les modes symboliques sont acceptés sous cette forme, et c'est généralement de cette façon que l'on voudrait les utiliser. Vous devez spécifier u',g 'ou `o' si vous utilisez un mode symbolique. Voir la section EXEMPLES pour quelques exemples illustratifs.

Donc, pour trouver tous les fichiers accessibles en écriture, quelles que soient les autres autorisations dont ils disposent, vous pouvez faire:

find / -perm -o+w 

Pour définir le bit collant, utilisez -exec:

find . -perm -o+w -exec chmod +t {} + 
terdon
la source
2
NB: utilisez find / -not -type l -perm -o+wsi vous ne voulez pas que la sortie inclue également les noms des liens symboliques.
chb
2

Cette commande devrait trouver des répertoires inscriptibles dans une seule commande, je me retrouve à l'utiliser assez souvent. C'est la commande optimale! ;) j'espère que cela vous sert bien:

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