无需使用密码来执行 sudo

无需使用密码来执行 sudo

免责声明:我知道这个问题已经被问了很多次了,我读了很多方法,尝试了很多方法,但我仍然遇到问题,如果你认为有帮助的话,请随时给我推荐一个重复的问题。

我有一台 ubuntu 服务器,目前使用我自己的用户invisibled而不是 root。我以这个用户身份登录到服务器,并且可以以这个用户身份使用 sudo,但我必须使用 sudo 才能对任何文件进行任何更改,包括运行git pull。我希望能够添加/编辑/删除文件夹中的文件/var/www/,而无需使用 sudo 并输入我的密码。我特别想摆脱密码提示,因为它妨碍了远程执行git pull请求。

我可以做一些简单的事情,比如授予我的用户对该/var/www/文件夹的全部权限吗?这里的所有内容都在 git repo 中,如果需要可以删除。

我是一名专业的 Web 开发人员,我的 ubuntu 知识都是自学的,可以管理这些服务器,所以我不确定最好的或正确的方法是什么。任何信息/提示都很棒!如果您需要更多信息,请告诉我。

编辑:

打字groups显示invisibled www-data我的用户是该组的一部分www-data

文件/var/www/夹的所有权权限:

drwxrwsr-x  10 root       www-data   4096 Sep  8 15:23 .

答案1

尝试这个,

less /etc/group

您应该会在群组前面看到您的用户名www-数据. 就像这样,

www-data:x: ................. <your-user-name>

如果不是这种情况,请将自己添加到群组中,

sudo gpasswd -a <your-user-name> www-data

如果你的名字已经在那里了,那么就意味着里面的文件/var/www不属于该组。在这种情况下,只需使用chown命令,

sudo chown :www-data -R /var/www/

您必须注销并登录才能使所有与组相关的更改生效。

答案2

您可以使用您最喜欢的文本编辑器(vi、nano 等)将文件添加到 /etc/sudoers.d 目录。文件名是任意的(任何名称都可以,例如“addmyuserid”)。文件内容是固定的,并且需要空格(空白元素),如下所示:

<myuid> ALL=(ALL:ALL) NOPASSWD: ALL

将文件写入 /etc/sudoers.d/ 目录后,重新启动 Ubuntu,登录后,您应该能够在第一个命令后输入不需要 pw 输入的 sudo ... 命令,然后每 5 分钟左右输入一次(如果您希望进入,sudoers 超时间隔也是可更改的)。

注意:添加此文件允许任何使用您的 ID 登录 Ubuntu 服务器的人通过 sudo 获得完全的 root 控制权;因此请小心并确保保护您的密码或其他登录凭据。如果您的服务器将用于一般的 Web 访问,您可能需要在启动服务器以供生产使用之前从 /etc/sudoers.d 目录中删除添加的文件。

相关内容