umask
जैसे सम्मानchmod +x
man chmod
का कहना है कि अगर augo
में नहीं दिया गया है:
chmod +x mypath
तब a
उपयोग किया जाता है लेकिन इसके साथ umask
:
अक्षरों का एक संयोजन ugoa नियंत्रित करता है कि किस उपयोगकर्ता की फ़ाइल तक पहुँच बदली जाएगी: वह उपयोगकर्ता जो इसका मालिक है (u), फ़ाइल के समूह में अन्य उपयोगकर्ता (g), अन्य उपयोगकर्ता फ़ाइल के समूह में नहीं (o), या सभी उपयोगकर्ता (ए)। यदि इनमें से कोई भी नहीं दिया गया है, तो प्रभाव ऐसा है जैसे (क) दिया गया था, लेकिन umask में सेट बिट्स प्रभावित नहीं होते हैं।
यहां एक संस्करण है जो उस व्यवहार को बिल्कुल अनुकरण करता है:
#!/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')
यह भी देखें: मैं पायथन में डिफ़ॉल्ट फ़ाइल अनुमतियां कैसे प्राप्त कर सकता हूं?
उबंटू 16.04, पायथन 3.5.2 में परीक्षण किया गया।