Respeto umask
comochmod +x
man chmod
dice que si augo
no se da como en:
chmod +x mypath
luego a
se usa pero con umask
:
Una combinación de las letras ugoa controla qué usuarios cambiarán el acceso al archivo: el usuario que lo posee (u), otros usuarios en el grupo del archivo (g), otros usuarios que no están en el grupo del archivo (o), o todos usuarios (a). Si no se da ninguno de estos, el efecto es como si se diera (a), pero los bits que se establecen en la umask no se ven afectados.
Aquí hay una versión que simula ese comportamiento exactamente:
#!/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')
Consulte también: ¿Cómo puedo obtener los permisos de archivo predeterminados en Python?
Probado en Ubuntu 16.04, Python 3.5.2.