首先,我们通过linux的ls命令操作获得每个文件的权限,如下图:
1 表示连接的文件数
admin 表示用户
admin表示用户所在的组
5572 表示文件大小(字节)
Feb 20 11:43 表示最后修改日期
2-20 表示文件名
第一位表示Linux的文件类型:
文件的类型可以分为以下几类:
1.普通文件(regular file)第一个字符为[ - ]
包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类 型,称为纯文本档。是因为内容为我们⼈人类可以直接读到的数据,
例如数字、字母等等。
②二进制文件(binary): 你的Linux中的 可执行文件(scripts, 文字型批处理文件不算)就是这种格式的。
③数据格式文件(data):有些程序在运作的过程当中会读取某些特 定格式的档案,那些特定格式的档案可以被称为数据⽂文件 (data file)。一般用cat看到的都是乱码。
2.目录(directory): 第一个字符为[ d ]
3.连接文件(link)第⼀一个字符为[ l ]
4.设备和设备文件
包括:①块设备文件,即一些存储文件,如硬盘、软盘等,第一个字符为 [ b ]
②字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等, 第一个字符为[ c ]
5.套接字(sockets)第一个字符为[ s ] 。还被称为数据接口文件,这种类型的文件通常被用在网络上的数 据连接。我们可以启动一个程序来监听客户端的请求,而客户端就 可以通过数据接口文件来进行数据通信。
6.管道(FIFO,pipe)第一个字符为[ p ]
剩余的九位可以分为三组:
综上所述,可以将上述分为三组,分别是第一组:rwx或者rw-,第二组:rwx或者rw-,第三组:r-x或者r--。
在linux中,第一组称为拥有者,第二组称为所属组,第三组称为其他用户。即就是:
文件访问者的分类(人) a)文件和文件目录的所有者:u---User
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
用ls ‐ahl命令可以看到文件的所有者
也可以使用chown 用户名 文件名来修改文件的所有者
b)文件和文件目录的所有者所在的组的用户:g---Group
· 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用ls ‐ahl命令可以看到文件的所有组
也可以使用chgrp 组名 文件名来修改文件所在的组
c)其它用户:o---Others
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
每个权限部分可选字符选项如下:
以下两个字符只能用在第三部分其他人权限部分:
文件访问权限的相关设置方法 :
a)chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限文件名
参数:R -> 递归修改目录文件的权限
V -> 显示指令执行过程、
reference=<参考文件或目录>:把指定文件或目录的权限全部设成与参考文件或目录的权限相同。
说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式 :① 用户表示符+/-=权限字符
+ 向权限范围增加权限代号所表⽰示的权限
- 向权限范围取消权限代号所表⽰示的权限
= 向权限范围赋予权限代号所表⽰示的权限
用户符号:u 拥有者 g 拥有者同组用户 o 其它⽤用户 a 所有用户
实例:
$ chmod u+x file.c
$ chmod o-r file.c
$ chmod g+x file.c
②三位8进制数字
实例:
$ chmod 157 file.c
$ chmod 346 file.c
$ chmod 732 file.c
b)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例: chown root file.c
c)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
参数:-R 递归修改文件或目录的所属组
实例: # chgrp root file.c
d)umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666-权限掩码
新建目录默认权限=0777-权限掩码
格式:umask 权限值
说明: 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。
超级用户默认掩码值为0022,普通用户默认为0002。
实例: # umask 755
# umask //查看
# umask 044//设置
s位的说明:
一般来说,一个运行中的程序为运行这个程序的用户所拥有。但如果该程序是suid/guid程序,则运行的程序则为文件所有者拥有,运行中的程序在程序运行期间拥有文件所有者的全部权限。 如果一个普通用户运行了一个属于根用户的带s标志的程序,那么,该程序将不考虑用户权限,而是自动拥有在系统中读/写任何文件及目录的特权。
这样做,有一定的好处,但一般我们不建议采用s位,要严格设置这种权限,避免破坏性。
t位的说明:
程序的t属性表示粘滞位,即告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统 节省点时间,不用每次从磁盘加载到内存。由本人注明:是保存在虚拟内存中,而不是物理内存中。
目录的t属性,设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录,