文件的权限
1.文件属性的查看
ls -l filename
- | rw-r–r–. | 1 | root | root | 46 | Oct 1 05:03 | filename
— ————————— — ———— ———— —— ———————————— ————————
1 2 3 4 5 6 7 8
1. - :文件的类型
- ———–普通文件
d ———–目录
c ———–字符设备
s ———–套接字
p ———–管道
b ———–块设备
l ———–连接
2. rw-r–r– :文件读写权限
rw-|r–|r–
u g o
u(user) ——–所有者的权限
g(group) ——–所有组的权限
o(others) ——–其他人的权限
3. 1 :
对文件:文件内容被系统记录的次数
对目录:目录中文件属性的字节数
4. root :文件的所有者即owner
5. root :文件的所有组即group
6. 46 :文件内容的大小
7. Oct 1 05:03 :文件最后一次被修改的时间
8. filename :文件的名字
2.对文件的所有者和所有组的管理
监控命令 watch -n 1 ls -lR /mnt/
chown username file | dir 更改文件的所有人
chown username.groupname file | dir 更改所有人所有组
chown -R username dir 更改目录本身及里面所有内容的所有人
chgrp -R groupname dir 更改目录本身及里面所有内容的所有组
3.文件的普通权限
rw- | r– | r–
u g o
u(user):文件的所有人对文件可以读写
g(group):文件所在组的成员对文件只读
o(others):其他人对文件只读
PS.u优先匹配,g次优先,当u,g不匹配时,o匹配
1.r(Read)
对文件:可以查看文件中的字符
对目录:可以查看目录中的文件的信息
2.w(Write)
对文件:可以更改文件内字符
对目录:可以在目录中添加删除文件
3.x(Execute permission 执行许可)
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中
PS.对于一个目录,权限是r_x,因为只有进入目录中才可查看目录中的文件信息
4.字符方式修改该文件权限
chmod [-R] [u | g | o][+|-][r | w | x] file|dir
chmod u-r file1 file1所有者去掉r权限
chmod g-x file1 file1所在组成员去掉x权限
chmod ug=rx file1 file1所有者及所在组都设置rx权限
chmod -r file1 file1的用户、组、其他人去掉r权限
chmod ug+r,ug-x,o+r file1 file1用户和组添加r权限,用户和组去掉x权限,其他人添加r权限
5.用数字方式修改该文件权限
在linux中
r=4 w=2 x=1
文件权限数字表示方式
rw-|r–|r–
u g o
u=rw_=4+2+0=6
g=r_ _=4+0+0=4
o=r_ _ =4+0+0=4
所以文件权限表示为644
chmod 修改后权限值 file
chmod 777 file
7=rwx 6=rw_ 5=r_x 4=r_ _
3=_ wx 2=_ w_ 1=_ _ x 0=_ _ _
4.系统默认权限的设定
从系统存在角度来说,开放权力越大,系统存在意义越高,例如浏览的购物网站
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限
1.临时设定方式
umask 查看系统保留权限,一般默认为022
umask 077 修改该系统保留权限为077,此设定是临时设定,只当前shell中生效
2.永久设定方式
vim /etc/bashrc shell
70 if [ $UID -gt 199 ] && [ “id -gn
” = “id -un
” ]; then
71 umask 002 ##普通用户umask
72 else
73 umask 077 ##超级用户umask
74 fi
vim /etc/profile 系统
59 if [ $UID -gt 199 ] && [ “id -gn
” = “id -un
” ]; then
60 umask 002 ##普通用户umask
61 else
62 umask 077 ##超级用户umask
63 fi
以上两个文件umask设定值必须保持一致
source /etc/bashrc
source /etc/profile
让设定立即生效
5.特殊权限
监控命令 watch -n 1 ‘ps ax -o user,group,comm | grep touch ‘
1.suid (冒险位)
只针对二进制可执行文件,
文件内记录的程序产生的进程的所有人为文件所有人和进程发起人身份无关
设定方式:
chmod u+s file
suid=4
chmod 4xxx file
2.sgid(强制位)
对文件:只针对二进制可执行文件,任何人运行二进制文件程序时程序产生的进程所有组都是文件的所有组和程序发起人组的身份无关
对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
设定方式:
chmod g+s file | dir
sgid=2
chmod 2xxx file | dir
3.sticky(粘制位)
t权限:
只针对于目录,当一个目录有t权限,那么目录中的文件能被所有人删除
设定方式:
chmod o+t direcotry
t=1
chmod 1777 direcotry