文件安全与权限 文件
对创建的文件,系统会保存文件的全部信息,包括
文件的位置
文件类型
文件长度
文件的拥有用户与可访问的用户
i节点
文件的修改位置
文件的权限位
使用 ls -l 去查看文件的属性:
total 60 lrwxrwxrwx. 1 root root 7 Apr 26 15:48 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 Apr 26 16:01 boot drwxr-xr-x 19 root root 2960 Oct 9 10:52 dev drwxr-xr-x. 76 root root 4096 Oct 9 10:52 etc drwxr-xr-x. 2 root root 4096 Apr 11 2018 home lrwxrwxrwx. 1 root root 7 Apr 26 15:48 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Apr 26 15:48 lib64 -> usr/lib64 drwx------. 2 root root 16384 Apr 26 15:48 lost+found drwxr-xr-x. 2 root root 4096 Apr 11 2018 media drwxr-xr-x. 2 root root 4096 Apr 11 2018 mnt drwxr-xr-x. 2 root root 4096 Apr 11 2018 opt dr-xr-xr-x 82 root root 0 Oct 9 10:52 proc dr-xr-x---. 4 root root 4096 Apr 26 16:02 root drwxr-xr-x 24 root root 640 Oct 9 10:52 run lrwxrwxrwx. 1 root root 8 Apr 26 15:48 sbin -> usr/sbin drwxr-xr-x. 2 root root 4096 Apr 11 2018 srv dr-xr-xr-x 13 root root 0 Oct 9 2020 sys drwxrwxrwt. 9 root root 4096 Oct 9 10:53 tmp drwxr-xr-x. 13 root root 4096 Apr 26 15:48 usr drwxr-xr-x. 19 root root 4096 Apr 26 07:54 var
total :代表所有文件占的空间
第一列(例如dr-xr-xr-x) : 文件类型(参照下一节)及__文件的权限位__,除去第一位的字符,后面的9位是9个权限位,设定用户对文件的访问权限,后面9位分为三组:
前三位:文件属主权限
中间三位:同组用户权限
后三位:其他用户权限
- 代表相应的权限被禁止
第二列:代表文件___硬链接___的数目
第三列:文件的__属主__
第四列:文件的属主所在的缺省组
第五列:用字节表示的文件长度
第六列:文件的更新时间
第七列:文件名
文件类型ls -l列出的第一列第一位代表文件类型:
d:目录
l:符号连接
s:套接字文件
b:块设备文件
c:字符设备文件
p:命名管道文件
- :普通文件,即不属于以上文件的文件
权限创建一个文件 :touch <filename>
这里键入命令 touch myfile,然后键入命令 ls -l
total 0 -rw-r--r-- 1 root root 0 Oct 9 11:19 myfile根据之前说的,那么 -rw-r--r--则定义了:
这是一个普通文件
rw-代表了文件属主拥有的权限
r--代表了文件属主缺省组的权限
r--代表了其他用户的权限
每一个组的三个权限位:
r:读权限
w:写权限
x:执行该脚本或程序的权限
改变权限位(使用chmod命令)chmod命令分为两种格式:
符号模式格式为:chmod [who] operator [permission] filename
who的含义:
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户(文件属主、同组用户及其他用户)。
operator的含义:
+ 增加权限
- 减少权限
= 设定权限
permission的含义:
r 读权限
w 写权限
x 执行权限
s 文件属主和组 set-ID
t 粘性位(通常对目录来说,这个目录下的文件只有属主才能删除,即使同组用户有相等权限。对文件来说,会被放在虚拟存储进行执行)
l 给文件加锁,使其他用户无法访问
u,g,o 针对文件属主、同组用户及其他用户的操作
使用举例myfile初始权限
-rw-r--r-- 1 root root 0 Oct 9 11:19 myfile执行 chmod u+x myfile chmod o-w myfile后
权限变为
-rwxr--r-- 1 root root 0 Oct 9 11:19 myfile 绝对模式命令形式为
chmod [mode] file
mode是一个八进制数
在绝对模式中,每一个权限位用一个八进制数代表,如下表
八进制数 含义0400 文件属主可读
0200 文件属主可写
0100 文件属主可执行
0040 同组用户可读
0020 同组用户可写
0010 同组用户可执行
0004 其他用户可读
0002 其他用户可写
0001 其他用户可执行
设定权限时,根据表中各个要设定的权限加起来就可以得到相应的权限表示
比如 777 就是所有权限
可以通过 chmod -R 去递归的设置目录树的权限
目录权限目录的权限值和文件有所不同
r:可以列出该目录中的文件
w:可以在目录下创建或者删除文件
x:可以搜索或进入该目录
如果我对目录用户设置--x,那么我无法列出目录中的文件,但是我只要知道路径和文件名,仍然可以执行里面的文件。
suid/guid这个权限比较特殊,系统提供商可能会不允许实现这一位或忽略这一位。
这个权限会导致euid/egid 被 suid/guid覆盖,从而使任何进程都将拥有程序属主的权限
这个权限可以通过符号方式设置,或者设置权限数字的前面加上一个4设置suid,加上2设置guid,6设置两个
chown && chgrp把文件的所有权交给另一个/etc/passwd文件中存在的合法用户
chownchown命令的一般形式为:
chown -R -h owner file-h指不改变该链接指向的目标文件
-R意味着对子目录下的文件执行同样的操作