1、文件详细信息:
①说明:(第一行)
第一段:共十一个字符。第一个字符为文件类型,紧接着的9个字符三个为一组代表不同类的人对文件的权限,最后一个“.”表示ACL访问控制列表(更改了访问控制列表“.”会变成“+”)
第二段:硬链接次数
第三段:所属者
第四段:所属组
第五段:文件大小
第六段:文件最后一次修改时间
第七段:文件名
②权限:
所属者的权限:u(user)
所属组的权限:g(group)
其他人的权限:o(other)
所有人:a(all)
③读、写、执行:
读:r--4
写:w--2
执行:x--1
④二进制表示权限:
二进制 | 十进制 | 权限 |
000
| 0
| ---
|
001 | 1 | --x
|
010
| 2
| -w-
|
011
| 3
| -wx
|
100
| 4
| r--
|
101
| 5
| r-x
|
110
| 6
| rw-
|
111
| 7 | rwx |
例:rwxr-xr-x:755
2、修改文件的属主和属组:
①只改所属者:chown 所属者 文件名
②改所属主和所属组:
chown 属主:属组 文件名
chown 属主.属组 文件名
③修改所属者以及所属组变为以前面所属者用户为基本组: Chown 所属主. 文件名
④只改所属组:
chown : 所属组 文件名
chgrp 属组 文件名
说明:用户user1所属者 所属组现在为一个数字,是因为之前用户在,后来被删除留存了文件,依旧以之前用户的uid为所属者和组,若添加一个新用户制定uid为60000则,现在文件所属者和所属组为新添加的用户名。
3、修改权限:
①符号法:chmod u/g/o/a =/+/- r/w/x 文件名
(1)如:给mima文件所有人(所属者、所属组、其他人)加上w权限。
(2)如:给mima文件的权限为rw-r-----
②数字法:chmod 777 文件名
(77表示:rwxrwxrwx)
如:给mima文件所有人(所属者、所属组、其他人)的权限都为改为rwx。
4、一般权限:
①对于普通文件:(一般有执行或可以编辑文件权限时都要给加上可读权限)
(1)r----可读取此文件的实际内容(cat查看文件);
(2)w---可编辑该文件的内容(vim,echo),但并不具备删除该文件本身的权限(删除文件由文件的上层目录控制,跟文件本身的权限无关。)
(3)x--- 该文件具有可以被系统执行的权限,chmod
vim file
#!/bin/bash
echo 'Hello Word!'
./file
例1:/home/ceshi/file文件以root用户为所属者和所属组,且root组内不包括11111用户。且file文件对其他人权限只有可写权限。问11111用户可以修改文件内容吗?
(1)查看root组成员确认无11111用户
(2)查看/home/ceshi/file文件权限
(3)切换至11111用户
(4)11111用户查看文件内容被拒
(5)11111用户可编辑文件内容
(6)root用户查看文件内容确认已被修改
说明:11111用户不在root组内,对文件/home/ceshi/file 文件来说为其他人(11111用户),文件file对其他人的权限为可写但没有可读权限,虽然查看不了文件内容但是可以修改文件内容。
例2:/home/ceshi/file文件以root用户为所属者和所属组,且root组内不包括11111用户。/home/ceshi/目录文件对其他人的权限为读、写和执行,/home/ceshi/file文件对其他人没有任何权限。问用11111用户测试时,想修改file文件内容可以修改成功吗?
(1)查看/home/ceshi/目录文件权限
(2)查看/home/ceshi/file文件权限
(3)切换至11111用户去编辑/home/ceshi/11111文件内容
(4)root用户查看/home/ceshi/file文件内容,已被修改。
(5)/home/ceshi/file文件的所属者变为11111用户,且以11111用户作为其基础组。
说明:/home/ceshi/目录文件对其他人权限为可读写可执行,意味着可以删除目录下的文件,既然可以删除文件,表示强制修改文件内容也是允许的,所以无论/home/ceshi/file文件对其他人(11111用户)是否有写的权限,其他人都可以修改/home/ceshi/file文件内容,且/home/ceshi/file以修改文件内容的那个其他人(11111用户)为所属者并以其为基础组。
②对于目录文件:(一般给权限时rwx/rx/---)
(1)r---具有读目录结构列表的权限,可以查询该目录下的文件名数据(ls将该目录的内容列表显示出来)
(2)w---空
(3)x---用户能否进入该目录(cd),chmod
(同时有w和x权限才可以创建、删除文件和目录)
例:/home/ceshi/file文件以root用户为所属者和所属组,且root组内不包括11111用户。/home/ceshi/目录对其他人的权限为只读,当11111用户查看/home/ceshi/目录下的文件时,可以查看目录下文件详细属性吗?可以在目录下创建文件吗?可以切换到目录下吗?
(1)查看/home/ceshi/目录权限
(2)切换至11111用户
(3)ls查看/home/ceshi
(4)ll查看/home/ceshi
(5)尝试切换到/home/ceshi/
(6)尝试在目录下创建文件
(7)给/home/ceshi/目录文件对于其他人添加x可执行权限
(8)此时11111用户可以cd到/home/ceshi目录
(9)也可详细查看目录下文件的属性
(10)给/home/ceshi/目录文件对其他人加上w权限
(11)在/home/ceshi/目录下创建redhat文件
(12)查看创建的文件,已成功。
说明:11111用户ls查看目录下的文件虽然被拒绝但是还是可以看到有哪些文件,ll查看目录下文件的详细属性却不能查看。也不能切换到目录下,以及在目录下创建文件。若想可以切换到目录下并且查看目录下详细属性必须给/home/ceshi/目录对于其他人添加x可执行权限。若其他用户想在/home/ceshi目录创建文件,必须对其他人有w和x权限。
5、特殊权限:
①suid:u+s,让进程的所属者不再属于它的发起者,而是属于程序文件本身所属者。(suid只对二进制文件有效;调用者对该文件有执行权;在执行过程中,调用者会暂时获得该文件的所有者权限;该权限只在程序执行的过程中有效)
(1)查找passwd的程序文件位置:which passwd
chmod u+s /usr/bin/passwd
(2)查看进程信息:ps -ef
(3)若所属者权限中有S则本来无x权限,若为s则原来有x权限。
如:想对普通用户11111修改密码,执行passwd命令,passwd的可执行文件/usr/bin/passwd所属者为root用户,且该文件对root用户的权限为wsr,虽然是11111用户执行passwd文件并且去寻找了该命令可执行文件,但该可执行文件中对root用户有特殊权限s,即可生成修改密码进程的时候,可执行文件的发起者由普通用户11111变成该文件的所属者也就是root用户,则最终去修改密码文件/etc/shadow的也是root用户。因为本身只有root用户可修改密码文件信息,所以普通用户想修改密码就会修改成功。
②sgid:g+s,对于普通文件,以组的权限执行,修改/usr/bin/touch的g+s,touch文件后文件所属组为root(作用于普通文件时,和suid类似);对于目录文件,目录的属组是谁,在目录下创建的文件的属组是目录的属组。
③sticky:o+t,不能够删除其他用户在同目录里创建的文件,可删除自己创建的文件
(1)创建目录/test
(2)添加三个用户
(3)让每一个用户在目录里面写文件
(4)用户3删除1和2用户的文件
(5)目录 o+t
(6)重复3、4步操作,验证是否能够删除其他用户在同目录里创建的文件
测试:/test/下有四个文件来自不同的三个用户。
(1)查看/test/下的文件,所属者为不同用户,且都不在一个组里。
(2)查看/test/目录的权限。1111和wukong用户对于该目录来说为其他人,是有可读写执行权限。所以有删除目录下文件的权限。
(3)但给其他人加上t权限后,目录的文件就不能随意被其他人删除。所有文件只能由文件的所属者删除。(但是对root没有限制,可以随意删除)
6、ACL(Access Control List,访问控制列表)可以对某个文件设置该文件具体的某些用户的权限,意思就是通过ACL可以对一个文件权限做扩展,可以不同的用户对某个文件有不同的权限。
①获取文件的访问控制信息:getfacl 文件名
②setfacl 设置文件的acl
③修改文件的acl:
(1)针对用户做文件权限扩展:setfacl -m u:用户名:权限 文件名/目录名
(2)针对组做文件权限扩展:setfacl -m g:组名:权限 文件名
(3)清空所有的文件权限扩展:setfacl -b 文件名
(4)清空一个人的文件权限扩展:setfacl -x g/u:组名/用户名 文件名
7、权限掩码:控制创建文件的权限
umask的值有四位,分别代表:Gid/uid,属主权限,属组权限,其他用户权限。一般用后三位。当第一位为2和4权限就叫强制位,1的权限就是冒险位,2代表GID,4代表的是uid。
①文件的权限属性:
(1)普通文件的权限属性:666(固定)
(2)目录文件的权限属性:777(固定)
②文件的权限属性 = umask后三位 + 所对应文件权限
③查看权限掩码:umask
④修改权限掩码:umask 权限掩码值(一般取后三位,如:022)
如:umask值为022,普通文件属性为666,(666-022=644),该file文件权限用二进制表示为644,符号表示为rw- r-- r--。
如:umask值为022,目录文件属性为777,(777-022=755),该wukong1目录文件权限二进制表示为755,符号表示rwx r-x r-x。
注意:修改umask值为033,普通文件权限属性 - umask值 = 文件权限,则为666-033=633,若按数字法算则文件权限应该为rw- r-x r-x,但是却为rw- r-- r--,数字表示为644呢?
此时用符号法来算更清楚,应该用(rw- rw- rw-)-(--- -wx -wx)= (rw- r-- r--)
若之后遇到用数法算出文件权限为奇数时应该注意此问题。