所以这是我刚刚想到的效率是脚本。我想知道是否可以制作一个具有 sudo 权限但不提示密码的自定义命令(即 jello)。我写了很多需要 sudo 权限的脚本,不喜欢每次都输入。我一直在编辑 sudoers 文件并对这些文件进行例外处理。但如果这是可能的,我真的很高兴,所以我可以在我的脚本中输入这个命令,它会像它应该运行的那样运行,而不需要输入密码。
问问题
1488 次
1 回答
1
一种选择是在 sudoers 文件(sudoers 手册页)中使用通配符。
注意:您需要对这样的任何策略采取适当的预防措施,因为您不一定会提前知道您授予访问权限的所有命令 -一些漏洞和风险。
如果您可以接受风险,那么将这样的内容放入您的/etc/sudoers
文件中将允许您添加相同形式的新命令并启用这些命令的运行,而无需每次都输入密码:
me ALL= NOPASSWD: /home/me/privil_scripts/priviledged_*.sh
确保其他用户不容易在此目录中添加额外的脚本!欢迎对保持此安全的评论。
作为快速测试:
# create a directory with some files inside
cd ~; mkdir nolook; touch nolook/f1; touch nolook/f2
>>> f1 f2
# make it so regular user can't see inside
sudo chmod -R 700 nolook; sudo chown -R root:root nolook
# test
ls nolook
>>> ls: cannot open directory nolook/: Permission denied
现在编写特权和非特权脚本:
echo "
#!/bin/sh
sudo ls nolook
" > privil_scripts/priviledged_ls.sh
chmod +x !$
echo "
#!/bin/sh
sudo ls nolook
" > privil_scripts/plain_ls.sh
chmod +x !$
并尝试它们:
privil_scripts/priviledged_ls.sh
>>> f1 f2
privil_scripts/plain_ls.sh
>>> [sudo] password for me:
于 2014-02-17T21:15:57.143 回答