jenkins
我在组中有一个用户jenkins
。我想访问该目录/var/www/html/
,因此我将目录组从 更改root
为jenkins
。
$ ll /var/www
...
drwxrwx---. 7 root jenkins ... html
...
$ groups
jenkins
$ cd /var/www/html
-bash: cd/var/www/html: Permission denied
用户来自/etc/passwd
:jenkins:x:779:779::/home/usr:/bin/bash
/var
和的所有者和组/var/www
是root
。据我了解,我不应该更改他们的组,而应该只更改我想要访问的目录。
你知道为什么这不管用吗?
编辑:$ ls -l /var total 97...drwxrwx---.8 root root...www...
抱歉,没有显示完整输出,这是来自离线计算机。我不知道可执行路径是什么,但这个文件是唯一看起来不同的文件:
lrwxrwxrwx. 1 root root ... mail -> spool/mail
答案1
似乎是父文件夹的权限有问题,如果您要读取并更改目录,您必须获取文件夹及其父文件夹的读取和执行权限。检查以下文件夹的所有权和位模式:
- / = 模式:755,用户:root,组:root
- /var = 模式:755,用户:root,组:root
- /var/www = 模式:750,用户:WebSrvUsr**,组:WebSrvGrp**
- /var/www/html = 模式:750,用户:WebSrvUsr**,组:jenkins
** WebSrvUsr 和 WebSrvGrp 依赖于发行版
最后,您的用户必须是以下组的成员:WebSrvGrp、jenkins。
如果这不起作用,您可以检查 selinux 或 apparmor (getenforce)
答案2
确保:
- a)
/var/
具有 755 权限(推荐),或 - b)
/var
的所有权设置为root:jenkins
(不推荐)。