python - 不允许的 Chown 操作:
问题描述
os.chown
主要问题是shutil.chown
我还没有重新启动计算机
我从 api 下载了一个 zip 文件并使用以下方法保存它:
with urllib.request.urlopen(req) as response, \
open(out_folder, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
我想允许其他用户访问此文件。但是,我无法这样做。我试过了:
process = subprocess.Popen(['chown', '-R', f"{user}:{user}", out_folder],
stdout=subprocess.PIPE)
process.communicate()
对于每条告诉我不允许该操作的语句,它都失败了。
接下来,我尝试添加sudo
到命令列表中,但这只会导致该process.communicate()
行永远挂起。
接下来,我尝试了:
shutil.chown(out_folder, user=user)
这也没有奏效。我想如果我将它写到我和其他用户都属于的共享组中,也许它会起作用:
shutil.chown(out_folder, group=shared_group)
这也失败了,再次出现权限错误。
我的想法很新鲜,不知道该怎么做。是否可以立即将文件写入正确的用户?
解决方案
可以随时执行 a 的用户chown
是root
。我建议您以root
用户身份(或使用sudo
)启动您的程序/脚本。
chown
也可以使用,当您要更改其权限的文件与您在同一个组中时,或者如果两个组都已链接(请参阅/etc/groups
,对不起,我不知道语法)。
推荐阅读
- python - 如何使用 Python exchangelib v 4.5.1 过滤“作者”或“发件人”?
- r - DataExplorer,自定义单变量分布
- powerquery - 如何按天“合并”具有专有员工姓名的日期表
- heroku - HTTPS 与 HTTP 和 IoT 设备交互
- flutter - 从外部类获取变量值
- google-tag-manager - 如何将 Matomo Analytics 与 Google Tag Manager 结合使用
- r - R 中 tidyverse 中的 session_submit() 错误:“必须命名查询的所有组件”
- node.js - Node.js 收到的 POST 请求可以调用 Angular 组件吗?
- xcode - 像 Apple 一样构建 3D 拟我表情
- svelte - 如何在 svelte kit 的加载函数中访问 jwt 令牌?