我正在尝试为此 PHP 代码找到等效的 Python 代码,但我不确定如何翻译0640
:< / p>
PHP 代码:
chmod($credentials_file, 0640);
chown($credentials_file, 'webapp');
我正在查看os.chmod文档here,但我不确定0640
如何等同于stat.SOMETHING_HERE
。有没有人知道如何将这两行移植到 Python ?
答案 0 :(得分:5)
0640
是八进制号码(这是前导0
的含义,不计入数字),表示以下权限(请参阅例如Wikipedia):
6
为110
为二进制,其中位为 r ead, w rite和e x 分别执行权限)表示
读写权限; 4
为100
为二进制)表示只读;和0
为000
!)因此,在这种情况下,您希望合并S_IRUSR
(用户阅读),S_IWUSR
(用户写入)和S_IRGRP
(组阅读):
>>> import stat
>>> oct(stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP)
'0640'
您可以通过以二进制形式显示八进制数来单独查看每个权限:
>>> bin(0640)
'0b110100000'
这分解如下:
# USR
0b 110 100 000
# ^ user read (yes)
# ^ user write (yes)
# ^ user execute (no)
# GRP
0b 110 100 000
# ^ group read (yes)
# ^ group write (no)
# ^ group execute (no)
# OTH
0b 110 100 000
# ^ other read (no)
# ^ other write (no)
# ^ other execute (no)