Bagaimana saya bisa menemukan file dan folder yang bisa ditulis dunia dan mengatur bit sticky?

13

Saya ingin melakukan hal berikut:

  1. Perlu menemukan semua file dan folder dunia yang dapat ditulis dari /root.
  2. Jika ditemukan, saya perlu memeriksa apakah bit lengket diatur atau tidak.
  3. Jika bit lengket tidak disetel, maka setel.

Bisakah kita menghasilkan solusi baris perintah untuk masalah seperti ini?

mengintip
sumber

Jawaban:

13

Anda dapat melakukan ini dengan menggunakan find's -perm -modeFormat. Dari man find:

-perma -mode

Semua mode bit izin diatur untuk file. Mode simbolik diterima dalam bentuk ini, dan ini biasanya cara yang ingin digunakan. Anda harus menentukan u',g 'atau `o' jika Anda menggunakan mode simbolis. Lihat bagian CONTOH untuk beberapa contoh ilustrasi.

Jadi, untuk menemukan semua file yang dapat ditulisi dunia, terlepas dari apa izin lain yang mereka miliki, Anda dapat melakukannya:

find / -perm -o+w 

Untuk mengatur bit yang lengket, gunakan -exec:

find . -perm -o+w -exec chmod +t {} + 
terdon
sumber
2
NB: gunakan find / -not -type l -perm -o+wjika Anda tidak ingin keluaran menyertakan nama tautan simbolik juga.
chb
2

Perintah ini harus menemukan direktori yang dapat ditulis semua dalam satu perintah, saya cukup sering menggunakan ini. Ini perintah optimal! ;) harap ini membantu Anda dengan baik:

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