linux中每个文件或者目录都包含三种一般权限和一些特殊权限,有三种用户可以对文件进行访问:文件所有者、与所有者同一组的用户、其他用户。
查看文件权限命令:
ls -l 查看当前文件夹下所有文件权限
ls -l 文件名 查看某文件权限
查看结果如下:
-rw-r--r-- 1 root root 文件名
运行结果解释:
第一个字符一般用来区分文件和目录:
d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。
-:表示这是一个普通的文件。l: 表示这是一个符号链接文件,实际上它指向另一个文件。b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件。s、p:这些文件关系到系统的数据结构和管道,通常很少见到。第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。-:表示不具有该项权限。每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx------: 表示目录所有者本身具有所有权限,其他用户无法进入该目录。
执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。
特殊权限:
s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。s或S(SGID,Set GID):设置在文件上面,其效果与SUID相同,只不过将文件所有者换成用户组,该文件就可以任意存取整个用户组所能使用的系统资源。T或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。因为SUID、SGID、Sticky占用x的位置来表示,所以在表示上会有大小写之分。加入同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的:-rwsr-sr-t 1 root root 如果关闭执行权限,则表示字符会变成大写:-rwSr-Sr-T 1 root root
chmod命令修改权限:
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1. 文字设定法 chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为: 操作对象who可是下述字母中的任一个或者它们的组合: u 表示“用户(user)”,即文件或目录的所有者。 g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 o 表示“其他(others)用户”。 a 表示“所有(all)用户”。它是系统默认值。 操作符号可以是: + 添加某个权限。 - 取消某个权限。 = 赋予给定权限并取消其他所有权限(如果有的话)。 设置mode所表示的权限可用下述字母的任意组合: r 可读。 w 可写。 x 可执行。 X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。 t 保存程序的文本到交换设备上。 u 与文件属主拥有一样的权限。 g 与和文件属主同组的用户拥有一样的权限。 o 与其他用户拥有一样的权限。 文件名:以空格分开的要改变权限的文件列表,支持通配符。 在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example 使同组和其他用户对文件example 有读权限。
2、数字设定法
chmod [mode] 文件名
其中mode的取值是三个数字,数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
r: 对应数值4w: 对应数值2x:对应数值1-:对应数值0
例子:rwx r-x r-- 对于用户u,其权限为4+2+1=7;用户g,权限为4+0+1=5;用户o,权限为4+0+0=4。
解释:
我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100,再将其转化为再将其每三位转换成为一个十进制数,就是754