linux中文件权限的浅析和应用
- 查看文件权限
查看file1的文件属性
-rw-r--r-- 1 root root 0 Jan 3 05:56 file1
- rw-r--r-- 1 root root 0 Jan 3 05:56 file1
<1> <2> <3> <4> <5> <6><7> <8>
<1>文件类型列
- 表示文件类型
l表示软连接类型
s多线条socket接口:类似于网络服务
b 块设备:存储
c 字符设备
p管道
<2>文件的权限
rw-|r--|r--
[u]|[g]|[o]
[u]用户自己的权限
[g]用户所在组的权限
[o]其他用户的权限
<3>对文件:文件的硬链接的个数(文件在硬盘中被储存了几次)
对目录:目录中的目录个数
<4>文件的所有人
<5>文件的所有组
<6>对文件:文件的大小
对目录:目录中文件元数据
<7>文件内容被修改的时间
注:记录文件信息的部分每一部分一个字节
- 更改方式
chmod <u>|<g>|<o> +|-|= r|w|x /mnt/test/file1 ###更改文件的用户|组用户|其他用户的读|写|运行权限
如上图所示为file1加上用户执行权限
上图运行了chmod o=rwx file2
chmod u+x file1
chmod g-w file2
chmod o+w file3
chmod ug-r file3
chmod u-r,g+x file2
chmod -r fiel1 ####给用户、组用户、其他用户,都减掉读的权限
chmod -w file2 ###-w,+w操作只能对用户起作用和g,o不能合并
简化操作
rwx
421
4+2+1=7
更改用户的权限可以用421的组合来更改
chmod 777 file1
如上图将用户权限更改为777则是将rwx权限分别付给ugo,依此类推。
应用:
新建三个组名称分别是shengchan jishu caiwu
新建用户tom harry leo,要求如下
1.tom是shengchan组成员
2.harry是caiwu组成员
3.leo是jishu组成员
新建用户admin,admin不属于以上提到的三个组的成员
新建目录,要求如下
/pub是公共组目录,任意组人员可以读、写、执行
/sc是生产组目录,只有生产组人员可以
/cw是财务组目录,只有财务组人员可以写入
操作如下:
结果如下:
文件属性
user,group:
- 修改文件所有人、所在组
命令:
chown leo file1 ###修改文件的所有人
chgrp shengchan file1 ###修改文件的所在组
chown leo:jishu file1 ###同时修改文件的所有人和所在组
- acl列表的查看
如果文件区权限后面显示加号则代表acl开启
[[email protected] mnt]# ls -l file
-rw-rwxr--+ 1 root root 0 Jan 3 21:06 file
^acl开启
getfacl file 查看文件的acl
[[email protected] mnt]# getfacl file
#file: file ####文件名称
# owner: root ####文件拥有者
# group: root ####文件拥有组
user::rw- ####文件拥有者对文件的权限
user:leo:rwx ####制定用户对文件的权限
group::r-- ####文件拥有者对文件的权限
mask::rwx ####能赋予用户的最大权力阈值
other::r-- ####其他人对文件的权限、
mask值
在权限列表中标示着能生效的权力值
当用chmod -m g-w file减小文件所在组的权限时,如果开启了acl会减到mask值上(所以在开启文件的acl时不要轻易用chmod命令来修改文件的组权限)
恢复mask值
setfacl -m m:rwx file
####umask#####
Vim /etc/profile ####系统配置文件
Umask :将临时保留权限修改为077
59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60 umask 002 ####普通用户的umask
61 else
62 umask 077 ####root用户的umask
63 fi
vim /etc/bashrc
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; th en
71 uma
sk 002 ####普通用户的保留权限
72 else
73 umask 077 ####超级用户的保留权限
74 fi
更改之后此新设定未立刻生效
source /etc/profile
source /etc/bashrc
系统读取这两个文件之后设定永久生效
上图所示,在更改root用户的默认保留权限之后root用户创建的file4文件的权限信息为rw-------
####特殊权限###
sticky ####粘滞位
作用:只针对目录生效,当一个目录上有sticky权限设置时
在这个目录中的文件只能被目录所有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
上图所示,root用户建立/pub目录并给/pub目录设置了粘置位用leo用户在/pub目录下创建目录leo和file1,切换至harry用户进行删除操作,系统提示删除操作不被允许
sgid ####强制位
作用 : 针对二进制可执行文件
当文件上有sgid时任何人执行该文件产生的进程都属于该文件的组
针对目录:当目录上有sgid时任何人在此目录下建立的文件都属于该目录所在的组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
为leo设置了强制位,root用户在leo目录在创建了test1 目录,查看test组属于leo组
给watch命令添加强制位
运行watch命令
上图所示此时watch进程所属于的组是student组
suid ####冒险位
作用:只针对二进制可执行文件
当任何用户在运行该程序所产生的进程都属于该文件的所有人
设定方式:
chmod u+s file
chmos 4xxx file
/bin/watch文件的权限设置为755时,用leo用户运行watch命令时,查看watch的进程用户是leo组是leo(原始权限)
####更改文件的权限为4755后##
上图所示:用leo用户运行时,此时进程所有人变成了root(文件所有人)
acl列表的管理
getacl file ###查看acl开启的文件的权限
setfacl -m u:username:rwx file ###设定指定用户的权限
setfacl -m g:groupname:rwx file ###指定组的权限
上图所示:给生产组设定权限rwx
setfacl -x u:username file ###删除指定用户的指定权限
setfacl -b file ###关闭file上的acl列表
上图所示file文件的文件权限之后的加号消失,表示着acl列表关闭
acl列表的作用:可以指定用户对于文件的权限