当我执行使用“mount”命令的脚本时,我需要输入我的 sudo 密码。但是,我可以启动像 nautilus 这样的文件浏览器并从该应用程序挂载文件系统,而无需输入密码。允许某些程序执行通常需要 root 权限的命令的机制是什么?
我的第一直觉是它是 suid,但我将脚本的所有者更改为 root 并设置了 suid 标志,即“chmod 4777”,但我仍然无法在脚本中执行需要 root 权限的操作。
答案1
尽管 suid shell 脚本始终被视为安全风险,但您需要指定-p
shell 标志以防止 shell 将 uid 恢复为真实的 uid。
所以你应该添加:
#!/bin/sh -p
到脚本的开头