Saya menjalankan server unRAID (unRAID didasarkan pada Slackware) dan ingin menemukan cara untuk secara otomatis mengubah izin dan kepemilikan setiap file yang ditambahkan ke direktori tertentu.
Secara khusus, saya ingin mengunggah .torrent
file dari laptop saya ke folder "Tonton" tertentu di server saya menggunakan SFTP. Masalahnya adalah wadah buruh pelabuhan rTorrent yang menonton direktori itu tidak dapat memuat .torrent
file yang diunggah karena owner:user
grup mereka berbeda dari wadah - root:root
untuk .torrent
file yang dikirim melalui SFTP, dan nobody:users
untuk kontainer.
Saya menduga bahwa izin file juga dapat menjadi masalah karena .torrent
file yang diunggah memiliki 0644
izin dan saya percaya bahwa mereka harus memiliki 0755
izin. Saya sudah bisa mendapatkan rTorrent untuk memuat .torrent
file - file ini secara otomatis dengan chown nobody:users
dan chmod secara manual 0755
, jadi saya tahu bahwa Autowatch bekerja dengan perubahan-perubahan ini di tempat.
Jadi, saya berharap bahwa mungkin ada cara mudah untuk secara otomatis chown dan chmod setiap file yang ditambahkan ke direktori ini. Ada ide?
#!/bin/sh if [ -x /tmp/watchy ]; then rm -rf /tmp/watchy fi while inotifywait -e moved_to -o /tmp/watchy --format %w%f /mnt/cache/Downloads/watched do found=$( tail -n1 /tmp/watchy | grep -E '.torrent$' ) && chown nobody:users $found && chmod 0755 $found done
close_write
acara inotifywaitcreate
agar dapat berfungsi dengan file yang diunggah, tetapi sekarang berfungsi dengan baik. Saya juga menambahkan skrip sebagai daemon startup "Skrip Pengguna" (yang tidak ditambahkan setara dengan menambahkannya ke/etc/rc.local
) sehingga skrip tersebut akan berjalan di latar belakang setiap saat, karena saya segera menyadari bahwa skrip akan berhenti berjalan segera setelah saya menutup ssh shell ke server tanpa kepala.