admin 管理员组

文章数量: 1184232


2023年12月22日发(作者:webgl浏览器支持情况2021)

用chmod更改权限

使用chmod命令可以更改文件和目录的访问权限。表4-1列举了几个chmod命令行,并解释如何理解目录或文件权限更改前后的变化。

表4-1 更改目录和文件访问权限

chmod命令

(八进制或字母)

chmod 0700

更改前权限

任意

更改后权限

drwx------

说明

目录属主不仅能进入该目录,

还能读或写该目录下的文件。

所有其他用户(root除外)无法访问

目录属主的权限与上同。

所有其他用户都能进入该目录,

但无法查看或修改目录下的文件。

对于增强服务器安全很有用,

可以防止其他人列出目录内容,

但如果有人知悉某个文件

位于该目录,就能访问这个文件

chmod 0711 任意

drwx--x--x

(续)

chmod命令

(八进制或字母)

chmod go+r

更改前权限

drwx------

更改后权限

drwxr--r--

说明

增加目录的读权限不

会取得预想的结果。

若无可执行权限,其他

用户无法查看该目录下

任意文件的内容

开放所有权限

关闭所有权限。若要保护

目录以防误改,这倒是不

错的做法。不过,root除外

的用户运行备份程序时,

可能无法备份该目录的内容

完全开放文件的读/写权限

不允许文件属主之外的用

户查看、修改或删除该文件

只有文件属主才能修改

或删除该文件,不过所

有人都能查看文件

chmod 0777

chmod a=rwx

chmod 0000

chmod a-rwx

任意

任意

drwxrwxrwx

d---------

chmod 666

chmod go-rw

任意

-rw-rw-rw-

-rw-rw-rw-

-rw-------

-rw-r--r--

chmod 644

任意

模式行开头的0通常可以省略,如使用777而非0777。这个占位符具有特殊含义,它是个八进制数字,可用于命令(可执行文件),指示该命令可以作为set-UID程序(4)、set-GID程序(2)运行,或成为粘滞(sticky)程序(1)。经set-UID和set-GID后,命令会以指定用户或用户组权限运行,而不是以启动该命令的用户或用户组的权限运行。

警告 切勿将SUID用于shell脚本。下面是Linux Security HOWTO中的一段警告:"SUID shell脚本的安全风险非同小可,鉴于此,内核不允许这么做。不论你认为shell脚本多安全,它都有可能被骇客利用,从而进入根shell。"

对于设置了粘滞位的目录,若其不属于某用户所有,则该用户无法删除或重命名该目录里(例如/tmp)的文件。不过,只要设定适当的权限,用户就能修改位于设置了粘滞位的目录下其他用户的文件内容。粘滞目录的最后一个权限字符为t而非x。设置粘滞位的命令即使不运行也会常驻内存,这是早期Unix的特性,Linux并不支持。

chmod命令有个非常实用的选项-R,加上该选项就能递归更改文件系统某个目录下所有文件和目录的权限,示例如下:

1.

2.

3.

# chmod -R 700 /tmp/test 仅向属主开放/tmp/test及其内容的权限

# chmod -R 000 /tmp/test 关闭/tmp/test及其内容的全部权限

# chmod -R a+rwx /tmp/test 向所有用户开放/tmp/test及其内容的全部权限

注意,-R选项对命令行里指定的目录同样有效,因此上面例子会更改/tmp/test目录下的文件和目录及该目录本身的权限。


本文标签: 目录 权限 文件 用户 命令