可以在 需要密码的地方提前设置密码,但不安全
如 echo $pw | sudo -S xxx 大写的S
第二种:
/etc/sudoers中
username ALL=NOPASSWD:ALL
如果不放心,可以只指定 一部分路径的权限
username ALL=NOPASSWD:/usr/bin: 等等
此方法就是添加了一个免密的sudo 用户
如果想组用的话 %组名
或者加入某个组内,也不用输入sudo了 比如docker
cat /etc/group | grep docker
没有的话新建一个组 sudo groupadd docker
sudo gpasswd -a username docker
restart
简单来说
对/etc/sudoers
文件进行编辑的代码公式可以概括为: 以sudo切换 此用户
授权用户/组 主机=[(切换到哪些用户或组)] [是否需要输入密码验证] 命令1,命令2,...
凡是[ ]
中的内容, 都能省略; 命令和命令之间用,
号分隔;
组名前面需加%
用户/组(此电脑的用户或组) 从哪个主机 = [(切换到哪个用户:切换到哪个组)] [是否输入密码可选值NOPASSWD:] 命令1,命令2(为用sudo切换到是否需要密码执行命令1 命令2)
注意NOPASSWD带着: 命令1 2之间以 ,分割 且 NOPASSWD 只对命令1有效
ALL表示所有 默认切换到(root:root)需加括号
from https://segmentfault.com/a/1190000007394449
Linux是多用户多任务的操作系统, 共享该系统的用户往往不只一个。
出于安全性考虑, 有必要通过useradd
创建一些非root用户, 只让它们拥有不完全的权限; 如有必要,再来提升权限执行。
sudo就是来解决这个需求的: 这些非root用户不需要知道root的密码,就可以提权到root,执行一些root才能执行的命令。
执行sudo -u <用户名> <命令>
, 将允许当前用户,提权到<用户名>
的身份,再执行后面的<命令>
, 即使<命令>
原本需要root权限。
提权到<用户名>
身份时,是以<用户名>
的身份来执行命令的,因此创建的文