Tidak mungkin, saya bisa melakukan ini:
file: dest=/foo/bar/somedir owner=root group=apache mode=0775 recurse=yes
Dan itu secara rekursif menetapkan pemilik, grup, dan izin ke 0775 pada semua direktori dan file di jalur itu. Tapi saya ingin mengatur direktori ke 0775, dan file ke 0664. Apakah ada cara untuk memungkinkan melakukan ini?
file-permissions
ansible
Edward Ned Harvey
sumber
sumber
Jawaban:
akan mengatur direktori ke 755, dan file ke 644.
sumber
X
adalahx
untuk direktori, dan bukan untuk file. Dan begitulahchmod
, tidakansible
memperlakukan string mode. Saya berharapS
akan diperlakukan juga.Sumber: https://stackoverflow.com/a/28782805/1306186
sumber
recurse
opsi tetapi tidak yang lain.Jika Anda ingin menggunakan file modul dengan cara yang memungkinkan, Anda dapat:
Dengan metode ini, pertama-tama Anda mengatur semua file (recurse = yes) ke '644' dan kemudian Anda mengatur / foo / bar / somedir ke '775'.
Ini tidak sempurna karena akan mengubah izin direktori Anda setiap kali Anda memainkan buku pedoman Anda. Tapi setidaknya itu idempoten, tidak seperti perintah modul.
Jika Anda tidak ingin memiliki status 'berubah', Anda dapat menggunakan stat modul. Ini akan mencantumkan semua file dan direktori di / foo / bar / somedir sehingga Anda mendaftarkan jawabannya dan kemudian membuat loop pada file-file itu saja.
sumber
Saya tidak yakin seberapa masuk akal untuk mengatur direktori menjadi 0775 (
rwxrwxr-x
) dan file menjadi 0644 (rw-r--r--
): direktori grup yang dapat ditulisi tetapi bukan file?Jika Anda bermaksud mengatur file ke 0664 (
rw-rw-r--
) untuk memastikan bahwa file tidak dapat dieksekusi sementara direktori dapat dilewati maka ada solusi elegan yang hanya melibatkan satuchmod
perintah:Inilah cara penggunaannya di Ansible :
chmod -c
mencetak semua perubahan yang dapat kita gunakan dengan mudah untuk mengisi status "diubah" di Ansible . Saya harap ini masuk akal.sumber
Untuk hanya mengubah mod saat dibutuhkan:
sumber