以非 root 用户身份运行具有 root 权限的命令

以非 root 用户身份运行具有 root 权限的命令

我想将 steam 设置为自动运行,优先级高于默认优先级,这需要使用 nice 启动它。但要设置低于 0 的优先级,我必须是 root。问题是 steam 不喜欢以 root 身份启动,因此如果我执行 sudo nice -n -1 steam 之类的操作,它会说无法以 root 身份启动。此外,如果我使用 sudo -u myusername nice -n -1 steam,nice 会抱怨它没有设置该优先级的权限。

我使用 visudo 授予 myuser 无需密码运行 sudo nice 的权限,但这是徒劳的。

我知道这个问题肯定在其他地方得到解答,但我不知道如何搜索......这是一个相当具体的问题。

提前致谢

编辑:在我启动 steam 之后使用 renice 是行不通的,因为子进程(游戏)不会以这种方式从父进程继承 nice 值

答案1

steam 论坛上的一些人建议启动 screen,重新设置屏幕大小,然后在其控制下运行 steam。这对你有用吗?

答案2

我相信你只需要重新安排你已经拥有的部分:成为 root,然后输入

nice -n -1 sudo -u您的用户名steam

[编辑]

nice -n -1 su您的用户名-c steam

你的想法是

  1. 获得特权,
  2. 将优先级设置为高于默认值(数值低于 0),这需要特权,
  3. 使用sudosu恢复到您的正常(非特权)身份(但希望保留您在上一步中设置的优先级),然后
  4. 运行(steam)命令,具有提升的优先级,但没有提升的权限。

相关内容