我在kubernetes中附加了一个路径为/var/www/aaa/tmp
的卷。
该卷是使用path.mkdir()创建的,当前具有755
权限。它最初是使用代码path.mkdir(parents=True, exist_ok=True)
创建的。
我正在尝试更新其权限而不删除现有路径。
我正在使用path.mkdir(parents=True, exist_ok=True, mode=0o777)
。我仍然面临与权限相关的问题,并且正在创建上述目录的flask应用程序获取502 Bad gateway
。
path.mkdir(parents=True, exist_ok=True, mode=0o777)
是否更新路径权限(如果已经存在并且具有755
权限?还是像我们提到的exists_ok=True
一样完全忽略它?我看不到该路径的权限正在更新。
我应该完全删除路径,然后用path.mkdir.....
重新运行mode=0o777
来创建新目录并设置权限吗?
如果路径已经存在,则应使用os.chmod(path, mode)
而不是删除/重新创建。
例如:
import os
os.chmod("/var/www/aaa/tmp", 777)
此外,chmod
可以从stat
模块获得许可。
例如:
import os
import stat
# Set a file write by others.
os.chmod("/var/www/aaa/tmp", stat.S_IWOTH)
您可以使用按位运算符设置更多权限。
例如:
import os
import stat
os.chmod(
'/var/www/aaa/tmp',
stat.S_IRUSR |
stat.S_IROTH |
stat.S_IRGRP
)
完整测试:
>>> touch test_perm.sh
>>> ll test_perm.sh
-rw-rw-r-- test_perm.sh
>>> python -c "import os; os.chmod('test_perm.sh', 0755)"
>>> ll test_perm.sh
-rwxr-xr-x test_perm.sh