方法一:修改 sudoers
运行自动脚本,您可能需要配置 sudoers
文件并允许某些用户运行 sudo
命令而不要求输入密码。
我们要将用户添加到 sudoers文件,sudoers 文件包含确定用户和组的 sudo 权限的信息。
向下滚动到文件的末尾并添加以下行,该行允许用户 “nvidia”
使用 sudo
运行任何命令而无需开始询问密码:
sudo vi /etc/sudoers # sudo visudo 也可以
nvidia ALL=(ALL) NOPASSWD:ALL
用户名(nvidia)为自己用户的名字
在你的sudo
不可用的情况下pkexec su
可进入你的root
pkexec visudo 进入visudo命令
直接编辑修改
ctrl + o 保存
会弹出tmp,继续回车
然后ctrl + x退出
pkexec的官方定义
allows an authorized user to execute PROGRAM as another user.
If username is not specified, then the program will be executed as the administrative super user, root.
如果要允许用户仅运行特定命令而不输入密码,请在 NOPASSWD
关键字后指定命令。
例如,要仅允许使用 mkdir
和 mv
命令:
在/etc/sudoers
文件
nvidia ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
完成后,保存文件并退出编辑器。
方法二:使用 /etc/sudoers.d
您可以使用授权规则将新文件添加到 /etc/sudoers.d
目录,而不是编辑 sudoers
文件。 这种方法将使 sudo
权限的管理更加可维护。
打开文本编辑器并创建文件:
sudo vi /etc/sudoers.d/nvidia
您可以根据需要命名文件,但通常最好使用用户名作为文件名。
添加与添加到 sudoers
文件中相同的规则:
nvidia ALL=(ALL) NOPASSWD:ALL
最后,保存文件并关闭编辑器。
总结
当您拥有非root用户需要执行管理任务的脚本时,运行不带密码的sudo非常有用。