即使权限正确,也会将“拒绝权限”存入CD


13

太奇怪了 以“ g”用户身份登录Linux(RHEL)框,进行ls -lah演示

drwxrwxrwx 6 g    g    4.0K Jun 23 13:27 .
drwxrw-r-x 6 root root 4.0K Jun 23 13:15 ..
-rwxrw---- 1 g    g     678 Jun 23 13:26 .bash_history
-rwxrw---- 1 g    g      33 Jun 23 13:15 .bash_logout
-rwxrw---- 1 g    g     176 Jun 23 13:15 .bash_profile
-rwxrw---- 1 g    g     124 Jun 23 13:15 .bashrc
drw-r----- 2 g    g    4.0K Jun 23 13:25 .ssh

因此,组“ g” /应该/中的用户“ g”能够读取和写入.ssh目录,但是如果ls -lah .ssh/我得到了ls: .ssh/: Permission denied。如果我尝试cat访问目录中的任何文件,我也会得到权限被拒绝

如果我去为根用户的权限更改为700744766只要或任何为“用户”的权限是7它的工作原理和我的CD和LS的目录和文件中即可。

id g 退货

uid=504(g) gid=506(g) groups=506(g)

编辑:

我已将这些权限完全复制到另一个相同的框中,没有问题。我可以cd进入没有执行权限的目录。

Answers:


27

该目录需要设置执行位,以便您输入它。我不知道您测试了什么,但是您不能在没有执行位的情况下进入目录或读取其中的文件:

$ mkdir foo
$ echo "baz" > foo/bar
$ chmod 660 foo
$ cd foo
bash: cd: foo: Permission denied
$ cat foo/bar
cat: foo/bar: Permission denied

也就是说,除非您的进程设置了CAP_DAC_OVERRIDE POSIX功能(如root那样),该功能允许您输入没有可执行位iirc的目录。

基本上,为了安全起见,应尽量将.ssh目录保持在700,并将目录中的所有内容保持在600。ssh手册页为每个文件提供了〜/ .ssh中文件所需所有权和权限模式的说明。


17

目录需要执行权限才能cd进入目录。这是预期的行为。


但是我也不能cat在目录中具有相同权限的任何文件,它们不需要执行权限即可读取
涂抹

4
您需要目录的执行权限才能访问目录中的任何内容。这个答案是正确的。
NovemberBitTony 2011年

1
@samarudge考虑x在目录上授予您“位于”该目录的权限。没有它,您将无法cd到目录,无法看到目录中的内容,无法打开目录中的内容。如果您没有进入图书馆的权限,则无法在其中阅读书籍。
DerfK 2011年

如果我将执行权限添加到目录(目录添加744,内部文件添加644),则会收到SSHD的错误消息,提示.ssh目录的权限必须为644或更低。但是使用644权限,它说它无法访问.ssh / authorized_keys
涂抹

*它确实说的是“ .ssh /目录”,而不是文件
涂抹

2

为了将ls或cd放入目录,您需要执行权限。当您没有它们时,您就无法真正检查内容并查看其中文件的权限,因此,如果您无法找到它们,很可能文件权限本身就是错误的。

目录权限700和文件权限644对我来说完全可以设置。


文件的权限为,文件644的所有者为g:g,因此文件的权限正确。如果我将执行权限添加到目录中,SSHD说我需要将权限降至644或以下
涂抹

朗逸的意见是正确的-下跌票有点苛刻
AndyM

0

我认为这是一个ssh文件问题吗?不是一般的chmod问题?

如果是这样,请尝试

$chmod go-w ~/
$chmod 700 ~/.ssh
$chmod 600 ~/.ssh/*
$chmod 600 ~/.ssh/.*

另一个问题可能是挂载点,它是否从其他位置CIFS,NFS挂载?
AndyM 2011年

0

目录需要设置x位(对于目录,该位被视为搜索位)才能打开。因此,我使用tree来获取文件夹集,避免了将所有文件都设置为可执行文件的噩梦(tree的选项是 -d List directories only.):

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

警告!!!您应该考虑以下因素:

  • 在根/目录或系统目录上使用chmod或chown递归会破坏您的OS(实际上,在/目录或系统目录上进行递归的任何操作都是危险的)

  • 像这样设置许可批量不是一个好的安全实践

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.