これは私のスクリプトです。
#!/usr/bin/python
import os
print "hello world from python"
os.system("echo 'hello world from bash'")
os.system("umask 055")
os.system("ls -alh > test")
このコードを実行すると、test ファイルに対する権限が 722 ではなく 600 に設定されます。なぜですか?
私の殻のUmaskは0077です。
ベストアンサー1
umask
これを実行すると、system
シェルで実行されます。umask
そのシェルのマスクは変更されますが、シェルはすぐに終了し、変更は失われます。
Pythonプロセスのumaskを変更するには、使用os.umask()
、こうなります:
現在の数値umaskを設定し、古いumaskを返します。
これにより、すぐに終了する他のプログラムではなく、実行中のプログラムが変更されます。