1.文件与目录权限
1)UID与GID
ØUID
UID是一个数值,是Linux系统中唯一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要;而对于用户来说注册名使用起来更方便。在某些特定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。
/etc/passwd放账号,/etc/shadow放密码
passwd中每行以冒号隔开,分成7段,分别表示为:用户名:密码:UID号码:GID号码:GECOS字段:主目录:用户登录时要运行的SHELL,考虑到安全问题,现在的密码已经不存放在passwd文件中,而是单独存放在/etc/shadow里,GECOS字段包含用户的真实姓名
ØGID
GID是当前用户的缺省工作组标识。具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标识号相区分。像UID一样,用户的组标志号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。
/etc/group放账号,/etc/gshadow放密码
group中每行以冒号隔开,分成4段,分别表示为:组群名:组群口令:GID号码:组群成员列表,考虑到安全问题,现在的密码已经不存放在group文件中,而是单独存放在/etc/gshadow里
2)文件所有者及匹配顺序
Ø文件所属用户(user)
如果UID匹配,就应用用户权限
Ø所属用户组(group)
否则,如果GID匹配,就应用组群权限
Ø其他用户(other)
如果都不匹配,就应用其他权限
3)权限
Ø读(read)
数字表示为4,对于文件而言,可读权限为可以查看其文件内容,对于目录而言,表示具有读取目录结构清单的权限,即(ls、ll等命令)
Ø写(write)
数字表示为2,对于文件而言,可写权限为可以修改与删除文件的内容或文件本身,对于目录而言,表示在该目录下是否可以建立新的文件与目录,删除已经存在的文件与目录,将已存在的文件或目录进行更名,移动该目录内的文件、目录的位置
Ø执行(execute)
数字表示为1,在Windows中一个文档是否具有执行的能力是由后缀名来判断的,例如.exe、.bat、.com等,但在Linux下,则是由是否具有x这个权限来决定的,跟文件名是没有关系的
Ø详细列表
十进制
二进制
含义
0
0
无权限
1
1
可执行
2
10
可写
3
11
可写可执行
4
100
可读
5
101
可读可执行
6
110
可读可写
7
111
可读可写可执行
4)权限位
ØT:
文件类型,Linux系统对于设备、目录、文件都当作是文件来处理,也就是说Linux下一切皆为文件
文件标志
文件类型
举例
-
普通文件
数据文件、ASCII存文本文件、程序
d
目录
/bin、/etc、/usr等
b
块设备
/dev/hda(第一个IDE硬盘)或/dev/sda(第一个STAT硬盘)
c
字符设备
/dev/ttyS1(与DOS中的串口2等同)
p
命名管道
/dev/initctl(与”|”等同)
s
套接字
/dev/log
l
符号链接
/dev/cdrom->hdc
ØU
用户权限,从左到右3个U分别表示用户的可读,可写,可执行
ØG
组权限,从左到右3个G分别表示用户组可读,可写,可执行
ØO
其他用户权限,从左到右3个O分别表示其他用户可读,可写,可执行
5)查看
显示的信息从左到右分别权限、连接数、所有者、所属组、文件大小、最后被修改的日期、文件名,其中权限里-表示该文件为普通文件,rw-表示该文件的用户权限为可读可写,第一个r--表示该文件的组权限为可读,第二个r--表示该文件的其他用户权限为可读
2.特殊权限位
1)创建测试用户
创建测试用户zwb与zzj并设置好密码
2)u+s位
当其他用户(other)拥有执行权限,而user拥有s位时,other会成为user,拥有它的最高权限,仅仅只对命令而言,如passwd、mount
文件/usr/bin/passwd为用户rws,其他用户rx权限,切换到zwb用户后,使用passwd可以修改密码,回到root用户,使用chmod u-s /usr/bin/passwd将用户的s权限位减掉,再次切换到zwb用户,使用passwd修改密码时提示passwd:Authentication token manipulation error,验证口令操作错误
3)g+s位
当g+s位时,不论谁在这个文件夹中创建,都属于这个组
使用root用户在/tmp目录下创建zwbzzj目录,并且给该目录的组用户加上s的权限,并且给其他用户加上写的权限,使用zwb用户登录后,在zwbzzj目录下创建一个名为zwb的文件,使用zzj用户登录后,在zwbzzj目录下创建一个名为zzj的文件,使用ll查看,看到使用不同的2个用户所创建的2个文件都为root组的
4)o+t位
谁创建谁删除
tmp目录本身就有o+t的权限,所以在tmp目录下创建的文件,谁创建的文件,只有自己能删除,使用zwb用户在tmp目录下创建一个zwb的文件,切换到zzj用户后使用删除命令删除提示rm:cannot remove ‘zwb’:Operation not permitted,无法删除’zwb’:不允许操作
5)大小写
有执行权限特殊权限为小写,无执行权限特殊权限为大写
ll查看到文件A的其他用户权限为rwt,t为特殊权限,小写代表其有执行权限,chmod o-x A将文件A的其他用户的执行权限减去后,ll查看原先的小写t变成了大写T
6)数字表示
数字
4
2
1
权限
u+s
g+s
o+t
3.权限的修改
1)默认权限
Øumask值查看
第一个0表示特殊权限(不能修改),第二个0表示用户,第三个0表示组,第四个0表示其他用户
Ø创建
目录默认权限为777-umask值,也就是0755,文件默认权限为目录默认权限减执行权限
Ø修改
将umask值修改成0011后,创建文件夹zzj,zzj权限为0766,第一个表示特殊权限的0不能修改,修改将会提示:
2)修改文件与目录权限
Ø命令介绍
chmod
参数
a、u、g、o
+、-、=
r、w、x
文件名
数字
参数-R进行递归,就是目录下的所有文件、目录都更新成现在的设置
Ø直接给权限
创建文件A与目录zwb,使用chmod命令来改变其权限,其中u=rwx,g=rwx,o=rwx与u=rwx,g=rx,o=rx分别表示给A文件指定用户权限为rwx,组权限为rwx,其他用户权限为rwx,给zwb目录指定用户权限为rwx,组权限为rx,其他用户权限为rx
Ø加减权限
使用rm -fr *命令将上面创建的文件与目录删除,再次创建文件A与目录zwb,使用chmod命令来改变其权限,其中g+x与o+x分别表示A文件的组权限在原有的基础上加上可执行权限,zwb目录的其他用户权限在原有的基础上加上可执行权限
Ø数字表示权限
使用rm -fr *命令将上面创建的文件与目录删除,再次创建文件A与目录zwb,使用chmod命令来改变其权限,其中4775表示用户权限为rwx,组权限为rwx,其他用户权限为rx(1+4=5),前面的4为特殊权限u+s,由于用户有可执行权限所以s为小写,0700表示,无特殊权限,且用户权限为rwx
4.改变文件与目录的所有权
1)命令介绍
chown
参数
新用户
新组
文件名
参数-R进行递归,就是目录下的所有文件、目录都更新成现在的设置
2)创建组
创建组名为zwbgroup的组
3)改变所有者
创建文件A与目录zwb,使用chown zwb A与zwb/来更新新用户
4)改变用户组
创建文件A与目录zwb,使用chown :zwbgroup A与zwb/来更新新组
5)同时改变
创建文件A与目录zwb,使用chown zwb:zwbgroup A与zwb/来更新新用户与新组