Hormati umask
sepertichmod +x
man chmod
mengatakan bahwa jika augo
tidak diberikan seperti pada:
chmod +x mypath
kemudian a
digunakan tetapi dengan umask
:
Kombinasi huruf ugoa mengontrol akses pengguna ke file mana yang akan diubah: pengguna yang memilikinya (u), pengguna lain di grup file (g), pengguna lain yang tidak ada di grup file (o), atau semua pengguna (a). Jika tidak ada yang diberikan, efeknya seolah-olah (a) diberikan, tetapi bit yang disetel dalam umask tidak terpengaruh.
Berikut adalah versi yang mensimulasikan perilaku itu dengan tepat:
#!/usr/bin/env python3
import os
import stat
def get_umask():
umask = os.umask(0)
os.umask(umask)
return umask
def chmod_plus_x(path):
os.chmod(
path,
os.stat(path).st_mode |
(
(
stat.S_IXUSR |
stat.S_IXGRP |
stat.S_IXOTH
)
& ~get_umask()
)
)
chmod_plus_x('.gitignore')
Lihat juga: Bagaimana saya bisa mendapatkan izin file default dengan Python?
Diuji di Ubuntu 16.04, Python 3.5.2.