我正在尝试使用设置部署脚本卡皮斯特拉诺 在一步中,cap deploy:setup
脚本连接到我的服务器并尝试运行创建目录的命令。然后我看到一个错误:msudo: sorry, you must have a tty to run sudo
有一个建议的解决方案可以在我的服务器上禁用 requiretty。https://unix.stackexchange.com/a/49078/26271
我想知道这样做是否安全?
答案1
requiretty
在服务器上的安全优势非常有限。如果某些非 root 代码被利用(例如 PHP 脚本),则该requiretty
选项意味着利用代码将无法通过运行sudo
.
攻击者可能还有另一种方法来获得root权限,当然攻击者仍然能够破坏您的网站,但不让攻击者获得root权限意味着以不同用户身份运行的其他服务将继续正常运行,攻击者将无法获得root权限。无法删除系统日志。如果你的sudo
规则都没有做到这一点任何危险的事情,比如创建目录,这不是问题。
此外,更可恶的是requiretty
,创建 tty 不需要任何特权,例如预计。因此,您不妨关闭它requiretty
:它本身并不能提供安全优势。当用户执行时,它确实提供了温和的可审计性优势(因为日志可以更好地了解谁调用了sudo
以及它们来自哪里),但当从后台作业执行时则不然。