免责声明:我知道这个问题已经被问了很多次了,我读了很多方法,尝试了很多方法,但我仍然遇到问题,如果你认为有帮助的话,请随时给我推荐一个重复的问题。
我有一台 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 目录中删除添加的文件。