权限被拒绝,但组权限在redhat上看起来不错


11

我有一个用户ftpadmin:

-bash-3.2$ id ftpadmin
uid=10001(ftpadmin) gid=2525(fsg) groups=2525(fsg),10005(git)

要注意的重要组是“ git”

然后我有我的git存储库:

ls -al
drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

因此ftpadmin是git的成员,并且git已将所有权限授予该组中的人员。为什么以ftpadmin登录时看到此消息:

-bash-3.2$ ls -al /home/git/
ls: /home/git/fsg: Permission denied
...

好像我应该得到许可...

更新 / home / git上的权限是

drwxrw-rw-   6 git      git          4096 Apr 26 09:20 git

看起来还不错...

/ home / git的更新新权限为:

drwxrwxrw-   6 git      git          4096 Apr 26 09:20 git

/ home / git / fsg的权限为:

drwxrwxr-x   7 git      git          4096 Apr 20 14:17 fsg

但是,我仍然得到

ls: /home/git/fsg: Permission denied
ls: /home/git/fsg: Permission denied

1
有哪些权限/home/git
Zoredache

drwxrw-rw- 6 git git 4096 Apr 26 09:20 git
Tony 2010年

drwxrwxr-x如果希望非组成员为只读但组成员可以更改,则应为;应该是drwxrwx---,如果你只想单独组成员在它。
艾利·佩恩

4
您需要在目录中设置组“ x”位以允许组搜索。“ rw-”权限允许打开名称为(r)的文件或创建文件(w),但不能列出或搜索文件(x)。
mpez0'5

没用。看到我的最新更新
托尼2010年

Answers:


9

想要给mpez0一个+1,因为他的回答是“您需要在目录中设置组“ x”才能进行组搜索。“ rw-”权限允许打开一个名称为(r)的文件或创建一个文件(w),但不列出或搜索文件(x)。”

它是如此容易忘记,他的解决方案被埋在中间。对于新Linux用户而言,这绝对是一个问题,涉及到用户和组的文件/目录权限。

艾利(Avery)所说的一切都是对的,再次希望我也可以给您+1。

图中另一个更详细的示例可能会帮助新的Linux用户(不寻求任何帮助,仅提供另一个示例即可)。我想在自己的PC上为特定的开发项目创建一个额外的用户。正在测试我的机器与网络上位于同一位置的服务器之间的一些SSH,SFTP问题。设置完所有内容后出现相同的“权限被拒绝”错误……是的,除了基于mpez0指出的其他权限的搜索问题之外,它看起来都是正确的。

注意:对于新的Linux用户,权限分别是user,group,other或rwx,rwx,rwx,看起来像这样

drwxr-xr--   

user has read + write + execute, rwx 
group has only read and execute, r-x
other has only read acces r--

对于“其他”,我们被提醒其不足以查找/搜索目录,因此出现错误消息。

这是我所做的,(在步骤6中遇到错误消息)

1)创建了一个用户hoiuser(要查看用户信息,可以使用finger cmd,“ finger hoiuser”或阅读“ cat / etc / passwd”文件)

2)创建了一个小组hoidevs(将用户“ hoiuser”添加到了小组)

root@zareason-breeze:/etc# cat group | grep hoidevs 
hoidevs:x:1010:userz,hoiuser 

请记住,您必须先注销然后重新登录,才能将新的“组”权限与帐户ID关联。

3)chgrp hoidevs用于目录/ home / userz / data / Sites / hoi并为文件创建一个位置

hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

4)打开一个终端窗口,用户userz处于活动状态

5)su-hoiuser(切换到用户hoiuser)

6)尝试cd / home / userz / data / Sites

hoiuser@zareason-breeze:/home/userz/data$ cd Sites
-su: cd: Sites: Permission denied    (voila, the problem)


userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr--  11 userz userz  4096 2012-02-24 16:20 ./
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/

7)更改了网站的权限

userz@zareason-breeze:~/data/Sites$ chmod 755 .
userz@zareason-breeze:~/data/Sites$ ls -alF
total 60
drwxr-xr-x  11 userz userz  4096 2012-02-24 16:20 ./

和瞧问题解决了..这是证明

hoiuser@zareason-breeze:/home/userz/data$ id
uid=1009(hoiuser) gid=1009(hoiuser) groups=1009(hoiuser),1010(hoidevs)

hoiuser@zareason-breeze:/home/userz/data$ cd Sites        (<- yea no error message)
hoiuser@zareason-breeze:/home/userz/data/Sites$ cd hoi
hoiuser@zareason-breeze:/home/userz/data/Sites/hoi$ ls -alF
total 16
drwxr-xr-x  4 userz hoidevs  4096 2012-02-27 13:34 ./
drwxr-xr-x 11 userz userz 4096 2012-02-24 16:20 ../
drwxr-xr-x  2 userz userz 4096 2012-02-29 17:00 odt/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

甚至我们经验丰富的Linux / Unix用户也需要一次又一次地提醒。

正如已经指出的那样,仅仅给文件所在的目录正确的权限是不够的,您还需要确保通向该目录的所有目录都具有正确的权限,尤其是“其他”目录的权限。 “搜索”并查找目录和文件。当x表示执行时,几乎不直观,对。

我的子目录结构是:/ home / userz / data / Sites / hoi / html /

从家开始

userz@zareason-breeze:~$ pwd
/home

这是chmod之前的目录结构

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr--  11 userz userz     4096 2012-02-24 16:20 Sites/    (<-- Do you see it, other is r--)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

这是chmod之后的目录结构

drwxr-xr-x  13 root root     4096 2012-02-29 14:51 home/
drwxr-xr-x 88 userz userz 4096 2012-02-29 17:07 userz/
drwxr-xr-x 476 userz userz    20480 2012-02-26 16:08 data/
drwxr-xr-x  11 userz userz     4096 2012-02-24 16:20 Sites/      (<-- Fixed by the chmod > 755 ., now r-x)
drwxr-xr-x   4 userz hoidevs   4096 2012-02-27 13:34 hoi/
drwxrwxr-x  2 userz hoidevs  4096 2012-02-27 13:34 html/

请注意,唯一的更改是目录“站点”的“其他”的rx权限。希望这对其他人有帮助,对我来说是一个很好的复习。


3
我在FreeBSD和OpenBSD上遇到类似的问题。对我而言,关键是这一部分: 请记住,必须注销并重新登录,以使新的“组”权限与帐户ID关联。 果然,FreeBSD文档指出:`-G grouplist ... 组成员资格更改对当前用户登录会话无效,要求用户重新连接才能受到更改的影响。
iboisver 2013年

6

您必须具有包含文件的目录的权限才能访问该文件。/ home / git的权限是什么?(是的,Zoredache,我为您指出了+1)


后续措施:您需要为该组设置执行(x)位,以便该组进入目录。可以将其视为类似于Windows“遍历目录”设置的模拟。没有它,将拒绝该组的访问。如果您不顾一切,可以执行以下操作:

chmod g+x /home/git
chmod g+x /home/git/fsg

尝试以下方法,然后从每个方法发布消息:

cd /home
cd /home/git
cd /home/git/fsg

其中的每一个都应可由进行访问ftpadmin如果其中任何一个都不是,它将阻止你进入/home/git/fsg


drwxrw-rw- 6 git git 4096 Apr 26 09:20 git
Tony 2010年

有道理,我仍然在/ home / git / fsg上获得了拒绝,这是drwxrwxr-x 7 git git 4096 Apr 20 14:17 fsg
Tony

最后一个“权限被拒绝”,组执行位是否置位?如果父母也没有许可,则是否有孩子的许可也没关系。
艾利·佩恩

查看我的最新更新。我在这里放了权限,并设置了group-exec位
Tony,2010年

我看到您有结果/home/git/home/git/fsg但结果是/home什么?
艾利·佩恩

4

通过根访问权限更改用户X的组后,您必须注销并再次使用该用户X登录,否则将不考虑新的组


3

尝试再次su - ftpadmin登录,或运行以在当前Shell中登录。由于登录时设置了组,因此可能是某某某组添加了某组,但仍在使用旧的组设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.