shell脚本权限
有时候在shell的脚本中需要使用到sudo,但是输入不了密码
脚本中的命令需要root权限
出现这种情况的话,有两个方法可以解决
将密码传给sudo
1
2
3echo "password" | sudo -S command
eg:
echo "123456" | sudo -S docker images通过修改配置文件,提升命令的权限
1
2
3
4sudo vim /etc/sudoer
username ALL=(ALL) NOPASSWD: /command_position
eg:
lanzhan ALL=(ALL) NOPASSWD: /usr/bin/docker
如果不想将脚本中的命令加入无密码执行,可以修改脚本本身的权限。
1
2sudo vim /etc/sudoer
lanzhan ALL=(ALL) NOPASSWD: /home/lanzhan/.local/bin/mypowertop两个注意点:
修改脚本后执行使用sudo,然后并不需要输入密码
1
sudo mypowertop
脚本中本来需要写sudo的命令不需要使用sudo了,因为脚本已经拥有了root权限。因为脚本中的命令本来就是脚本fork出来的一个子进程,自然不需要加sudo了。