Как я могу найти доступные для записи файлы и папки и установить бит?

13

Я хочу сделать следующее:

  1. Нужно найти все доступные для записи файлы и папки из /корня.
  2. Если найден, мне нужно проверить, установлен ли липкий бит или нет.
  3. Если липкий бит не установлен, установите его.

Можем ли мы найти решение для командной строки для этого типа проблемы?

шпионить
источник

Ответы:

13

Вы можете сделать это , используя find«s -perm -modeформат. От man find:

режим

Все режимы битов разрешений установлены для файла. Символические режимы принимаются в этой форме, и это обычно способ, которым хотелось бы их использовать. Вы должны указать u',g 'или `o', если вы используете символический режим. В разделе ПРИМЕРЫ приведены некоторые иллюстративные примеры.

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

find / -perm -o+w 

Чтобы установить липкий бит, используйте -exec:

find . -perm -o+w -exec chmod +t {} + 
terdon
источник
2
NB: используйте, find / -not -type l -perm -o+wесли вы не хотите, чтобы вывод включал также имена символических ссылок.
БКИ
2

Эта команда должна находить доступные для записи каталоги в одной команде, я использую это довольно часто. Это оптимальная команда! ;) надеюсь, это вам хорошо

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;
Boschko
источник