Як я можу знайти файли та папки, що записуються у світі, і встановити клейкий біт?


13

Я хочу зробити наступне:

  1. Потрібно знайти всі файли та папки, що записуються у світі, з /root.
  2. Якщо його знайдено, мені потрібно перевірити, встановлений клейкий біт чи ні.
  3. Якщо клейкий біт не встановлений, то встановіть його.

Чи можемо ми вирішити командний рядок для такого типу проблем?

Відповіді:


13

Це можна зробити findу -perm -modeформаті 's . Від man find:

-perm -мода

Усі файли дозволу встановлені для файлу. Символічні режими приймаються в такому вигляді, і це, як правило, спосіб їх використання. u',Якщо символічний режим використовується, ви повинні вказати g 'або `o'. Див. Розділ ПРИКЛАДИ для деяких ілюстративних прикладів.

Отже, щоб знайти всі файли, які можна записати у всьому світі, незалежно від того, які інші дозволи вони мають:

find / -perm -o+w 

Щоб встановити клейкий біт, використовуйте -exec:

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

2
Примітка: використовуйте, find / -not -type l -perm -o+wякщо ви не хочете, щоб вихідні дані включали також імена символічних посилань.
чб

2

Ця команда повинна знаходити файли, що записуються, в одній команді, і я досить часто використовую це. Це оптимальна команда! ;) сподіваюся, що він вам добре послужить:

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.