Linux 系统是一个真正的多用户操作系统,系统的每个目录和文件对不同用户开放不同的权限。一个普通文件/bin/bash
的 ls -l
输出信息:
其中的 rwx r-x r-x
是权限信息,说明如图所示:
输出信息第一列(第一个字符)表示 文件类型:
序号 | 开头 第一个字符 | 说明 |
---|---|---|
1 | - | 普通文件 |
2 | b | 块设备(block) |
3 | c | 字符设备(character) |
4 | d | 目录(directory) |
5 | l | 链接文件(link) |
6 | p | 命名管道(pipe) |
7 | s | Socket 文件 |
文件权限说明:
序号 | 第一个字符 | 说明 |
---|---|---|
1 | User(拥有者) | (1)权限:读|写|执行 (2)字符: r|w|x (3)数字: 4|2|1 |
2 | Group(群组成员) | (1)权限:读|写|执行 (2)字符: r|w|x (3)数字: 4|2|1 |
3 | Other(其它用户) | (1)权限:读|写|执行 (2)字符: r|w|x (3)数字: 4|2|1 |
权限字符中,ls -l 结果中,用 r/w/x 表示的则表示拥有相应的权限,用 “-” 表示的则表示没有相应的权限,拥有的权限用数字表示的话为 “读/写/执行” 3 个数字相或得到,如 rwx 可用 7 表示,r-x 可用 5 表示,rwx r-x r-x 则可用 755 表示。
chmod 用于改变或者设置文件/目录的权限。用法:
chmod [参数] 文件/目录
设置或者改变 文件/目录 的权限,可直接用八进制表示,如将 hello 文件设置为任何人都可以读写并执行:
chmod 777 hello
更常用的是用 字符方式 设定 文件/目录 的权限,分别用 u/g/o 表示文件的 拥有者/组内用户/其它用户,用 rwx 分别表示 读/写/执行权限,用 +/- 表示 增加或去除某种权限。例如,将 hello 文件的 其它用户权限 可执行属性 去掉:
chmod o-x hello
如果同时设置 u/g/o,可用 a 表示,例如为 hello 增加 全部用户 可执行权限:
chmod a+x hello
拥有可执行权限的文件,在 Linux 终端下通常呈现为绿色。
如果在运行程序的时候遇到 permission dennied 这样的错误提示,可在终端输入 chmod +x file,为将要运行的程序增加 可执行权限。