Centos 5.5 使用错误的 chmod 语法导致文件权限丢失

Centos 5.5 使用错误的 chmod 语法导致文件权限丢失

我试图删除整个目录的写权限,但使用了错误的命令:

chmod 644 -r sites/default

我本想打字

chmod -R 644 sites/default

结果是这样的:

chmod: cannot access `644': No such file or directory
$ ls -als sites
total 24
4 drwxr-xr-x  5 user group 4096 Jan 11 10:54 .
4 drwxrwxr-x 14 user group 4096 Jan 11 10:11 ..
4 drwxr-xr-x  4 user group 4096 Jan  5 01:25 all
4 d-w-------  3 user group 4096 Jan 11 10:43 default
4 -rw-r--r--  1 user group 1849 Apr 15  2010 example.sites.php

我使用 $ chmod 644 sites/default 修复了默认文件夹的权限,但是,以下 ls 显示所有文件都带有红色背景和问号。除非我是 root 用户,否则我无法访问任何文件。

$ ls -als sites/default
total 0
? ?--------- ? ? ? ?            ? .
? ?--------- ? ? ? ?            ? ..
? ?--------- ? ? ? ?            ? default.settings.php
? ?--------- ? ? ? ?            ? files
? ?--------- ? ? ? ?            ? settings.php

当我以 root 身份登录时,我可以编辑所有文件,并且它们的权限显示正确。我不知道如何消除使用 -r 和 chmod 而不是 -R 造成的损害。

有什么建议么?

答案1

首先,执行以下操作:

chmod 755 sites/default

您看到的输出是因为您没有该目录的执行权限:

$ mkdir -p foo/bar
$ touch foo/bar/a foo/bar/b foo/bar/c
$ ls -l foo
total 4
drwxr-xr-x 2 thedward thedward 4096 2011-01-11 10:28 bar
$ ls -l foo/bar
total 0
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 a
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 b
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 c
$ chmod 644 foo/bar
$ ls -l foo/bar
total 0
-????????? ? ? ? ?                ? a
-????????? ? ? ? ?                ? b
-????????? ? ? ? ?                ? c
$ chmod 755 foo/bar
$ ls -l foo/bar
total 0
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 a
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 b
-rw-r--r-- 1 thedward thedward 0 2011-01-11 10:28 c

答案2

为什么不使用适当的权限再次运行相同的命令,然后将所需的权限应用于站点/默认?

相关内容