作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Python 脚本,我想将其作为 sudo python script.py
运行,因为有许多 Pygame 命令需要 sudo 权限。
但是,脚本中只有一个 shell 命令(使用 os.system('...')
)如果以 sudo 运行则无法运行,但以标准用户运行则运行良好在命令行中的脚本之外。
是否有一种简单的方法来“取消 sudo”这一个命令?如果做不到这一点,我是否可以使用 python script.py
运行脚本并对除相关行之外的所有行拥有 sudo 权限?
最佳答案
可以使用 sudo 删除权限:
sudo -u unprivileged-user command ...
...但这并不意味着您可以回到权限升级之前的确切状态;补充组可能不对,安全标签可能不对等,简而言之,这是一种破坏性操作。
最佳做法是完全避免需要升级权限,例如直接向用户授予执行特定任务所需的访问权限。这种特定情况听起来您需要访问帧缓冲区;无需 root 即可轻松提供。
如果您的脚本真的需要升级它的某些权限,最佳实践方法是将您的应用程序分成两个独立的进程——一个执行特权工作,一个做其他事情——并在它们之间使用套接字或管道通信。这是很多工作——在大多数情况下,比配置东西要更多的工作要多得多,这样您根本就不需要权限升级。
关于python - 如何在 Python 脚本中执行 "un-sudo"一条命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21830945/
我是一名优秀的程序员,十分优秀!