...但仍然需要管理员权限的应用程序?
为了允许以下操作:
$ apache2ctl restart
httpd not running, trying to start
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
$ sudo !!
sudo apache2ctl restart #no password asked
$ #works!
作为参考,我在亚马逊的 e3 实例上看到了这个设置
任何想法?
您需要编辑 sudoers 文件。请注意,成功会给您带来不那么安全的系统,而失败可能会破坏 sudo。始终使用 编辑 sudoers 文件
sudo visudo
,因为 visudo 会检查错误,如果发现任何错误,则不会保存文件。在没有密码的情况下授予所有权限以root身份运行是一个坏主意,因此只允许您需要的一个可执行文件(apache2ctl);将以下内容附加到文件的最底部:
如果您愿意,您可以将可执行文件的路径替换为“ALL”,从而为您提供完整的无密码 sudo。
将 YOURNAME 替换为您的用户名,然后按Ctrl+X保存并退出。如果发生错误,它将提供恢复、编辑或保存。
确保使用可执行文件的完整路径:
即。
/usr/bin/apache2ctl
而不仅仅是apache2ctl
. 这很重要,因为在不明确说明路径的情况下,sudo 将允许用户当前路径上名为 apachectl 的任何程序以 root 身份运行。这个问题的真正答案可能很复杂,因为 sudo非常强大,并且可以配置为做一些很酷的事情。这在文档中得到了彻底的解释。
简短的答案
sudo visudo
在终端中运行。如果这是您第一次运行 visudo,它会询问您喜欢哪个编辑器。nano通常被认为是最容易使用的,但请选择您最熟悉/最熟悉的编辑器。您需要决定要授予谁访问权限;它可能ALL
适用于每个人(一个非常糟糕的主意)、用户或系统组。组以 % 符号为前缀。例如,如果您想为steroid_users
组中的每个人授予 root 权限,而无需为所有命令提供密码,您可以添加:到文件末尾,退出并保存文件。如果一切顺利,并且您是 steroid_users 组的成员,您将能够发布
sudo *some-command*
而无需输入密码。请记住,在您登录时可以访问您的终端的任何人 - 或者如果您为基于密钥的身份验证设置了 ssh 设置,或者(更糟糕的是)启用了无密码会话登录 - 可以完整且不受限制地访问您的整个系统。如果您的系统上有多个用户,或者这是一个文件服务器,那么所有用户文件都可能存在风险,因为 root 可以做任何事情!
此外,如果您犯了错误,visudo 将输出错误消息并且不保存对文件的更改。这将有助于防止完全破坏 sudo。你真的应该阅读文档。Sudo 旨在为用户提供足够的访问权限来完成他们的工作,而无需暴露整个系统。只为某些命令提供无密码访问可能是有利的。
我希望这有帮助。
您需要编辑“/etc/sudoers”文件(有“visudo”命令。)在您的用户或组允许的命令列表之前添加 NOPASSWD。如果您的用户在“管理员”组中 - 您需要以下内容:
检查https://help.ubuntu.com/community/Sudoers,顺便说一句。
您可以将 nopasswd 标志添加到用户列表中,但这并不能消除所有密码问题。只会询问第一个。
sudo visudo
您必须使用 sudo。这是一个管理文件。)cyrex ALL = NOPASSWD: ALL
或cyrex ALL = (ALL) NOPASSWD: ALL
或者
我想这会做到。
但要小心删除 sudo 的密码。
现在简单回答! 没有办法弄乱任何东西或捏造你的安装。
只需输入您的密码几次,然后您将永远不必再次输入!这将允许您将本地管理员帐户添加到组“root”,然后从允许整个组“root”超级用户权限的模板中取消注释。您可以在本文的后面部分阅读我针对此过程的安全问题/解决方案。
%username& 是您的用户名的全局变量(将其替换为所需的用户名)
第一步:打开一个终端窗口,然后输入“
sudo usermod -a -G root %username%
”第2步:然后复制/粘贴这个......
步骤 2或类型
转到第 19 行并删除前面的“#”
# auth sufficient pam_wheel.so trust
(对于某些人来说可能是不同的行号)*第一个命令将您的 %username% 添加到组“root”
第二个/第三个命令允许组“root”的所有成员成为没有密码的超级用户,而不是只允许用户“root”su 权限进行身份验证。
尾注:
不要乱来
/etc/sudoers
......“su”身份验证必须经过很多检查/平衡。超级用户身份验证使用与所有其他登录身份验证相同的 pam.d 过程。“/etc/security/access.conf”具有通过 tcp/ip(192.168.0.1) 通信和通过 telnet 服务 (tty1&tty2&tty3...等) 进行访问控制的布局,这允许通过传输协议对每个应用程序进行更精确的过滤。如果您担心安全,那么您应该关注远程/代码威胁,而不是当您离开房间时实际触摸您的计算机的人!!!偏执狂的食物(不要在评论中输入这个):
^ 这会阻止非系统成员或 root 成员访问控制台。有时程序会安装被利用的用户名/组!