所以这是一个我只想提高效率的想法就是编写脚本。我想知道是否可以制作具有sudo权限的自定义命令(即jello),但不提示输入密码。我写了很多需要sudo权限的脚本,并且不喜欢每次都输入它们。我一直在编辑sudoers文件并为这些文件制作例外。但是如果可能的话我真的很喜欢,所以我可以在我的脚本中输入这个命令,它可以在不需要密码的情况下运行。
答案 0 :(得分:1)
一种选择是在sudoers文件中使用通配符(sudoers manpage)。
注意:您需要对此类策略采取适当的预防措施,因为您一定不会知道您提前授予访问权限的所有命令 - some exploits和risks。
如果您可以接受这些风险,那么将这样的内容放入/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: