目录
......
五、linux系统中的权限管理
1、权限查看及读取
1)、权限查看
ls -l file ##查看文件权限
ls -ld dir ##查看目录权限
2)、 权限的读取
"文件的属性被叫做文件的元数据(meta data)"
"一种元数据用1个byte来记录内容"
权限信息:
- | rw-r--r-- | . | 1 | root | root | 4 | Jul 20 23:25 | westos
[1] [2] [3] [4] [5] [6] [7] [8] [9]
[1] #文件类型
#- 普通文件
#d 目录
#l 软连接
#b 块设备
#c 字符设备
#s socket套接字
#p 管道 |[2] #用户权限
# rw-|r--|r--
# u g o user拥有者 group拥有组 other别人[3] #系统的selinux开启
[4] #对于文件:文件内容被系统记录的次数(硬链接个数)
#对于目录:目录中子目录的个数[5] #文件拥有者
[6] #文件拥有组
[7] #对于文件:文件内容大小
#对于目录:目录中子文件的元数据大小[8] #文件内容被修改的时间
[9] #文件名称
2、普通权限的类型及作用
- #权限未开启
r #可读
#对于文件:可以读取文件内容
#对于目录:可以ls列出目录中的文件w #可写
#对于文件:可以更改文件内容
#对于目录:可以在目录中新建或者删除文件x #可执行
#对于文件:可以用文件名称调用文件内记录的程序
#对于目录:可以进入目录中
3、设定普通权限的方法
chmod ##设定文件权限
#chmod 复制权限#
chmod --reference=/tmp /mnt/westosdir ##复制/tmp目录的权限到/mnt/westosdir上
chmod -R --reference=/tmp /mnt/westosdir #复制/tmp目录的权限到/mnt/westosdir及
#目录中的子文件上 -R 代表第归操作
#chmod 字符方式设定权限
chmod <a|u|g|o><+|-|=><r|w|x> file ##用字符方式设定文件权限
chmod u-rw /mnt/westos1 #更改/mnt/westos1 用户权限去掉读写
chmod u-rw,g+x,o+wx /mnt/westosfile2 #更改用户权限去掉读写,用户组权限加上可执行,其他人权限加上写和执行
chmod u=rwx,g=rx,o=--- /mnt/westosfile4 #设定用户权限为全部,用户组权限为读写,其他人无权限
chmod a-rwx /mnt/westosfile3 #设定文件不被任何人读写执行
chmod -R u=rwx,g=rx,o=--- /mnt/westosdir/ #设定文件夹及其中的文件权限(R表示递归)
#chmod 数字方式设定权限
rwx = 111
- - - = 000三位二进制可以表示的最大范围为8进制数
rwx =111= 7
rw- =110=6
r - x=101=5
r - - =100=4= r
- wx=011=3
- w -=010=2= w
- - x =001=1= x
- - - =000=0
例: chmod 630 /mnt/westosfile1
rw- -wx ---
4、系统默认权限设定
#系统本身存在的意义是共享资源
#从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
#既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认关闭# umask表示系统保留权力
umask #查看保留权力
umask 权限值 #临时设定系统预留权力
文件默认权限 = 777-umask-111
目录默认权限 = 777-umaskumask值越大系统安全性越高
#umask临时更改: umask 077
#永久更改:
vim /etc/bashrc ##shell系统配置文件74 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
75 umask 002 #普通用户的umask
76 else
77 umask 022 ----- 077 #root用户的umask改为077
78 fivim /etc/profile ##系统环境配置文件
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 #普通用户的umask
61 else
62 umask 022 ---- 077 #root用户的umask改为077
63 fisource /etc/bashrc ##source作用使我们更改的内容立即被系统识别
source /etc/profile
5、文件用户用户组管理
chown username file #更改文件拥有者
chgrp groupname file #更改文件的拥有组
chown username.groupname file #更改用户拥有者和拥有组
chown|chgrp -R user|group dir #更改目录本身及目录中内容的拥有者和拥有组
6、特殊权限
#stickyid 粘制位(t 权限)
#针对目录: 如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除
chmod 1原始权限(1777) dir
chmod o+t dir
如果一个文件夹中有用户a和b创建的文件未知个,如果可以删除不属于自己的文件会不安全,用chmod o+t dir 命令可以有效解决此问题。
#sgid 强制位
#针对目录: 目录中新建的文件自动归属到目录的所属组中
chmod 2源文件权限(2777) dir
chmod g+s dir
7、acl权限列表
Aiccess Control Lists #访问控制列表
#功能: 在列表中可以设定特殊用户对与特殊文件有特殊权限#acl列表开启标识 -rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
^
有“+”代表acl列表功能开启#acl列表权限读取: getfacl westosfile
显示内容分析
# file: westosfile #文件名称
# owner: root #文件拥有者
# group: root #文件拥有组
user::rw- #文件拥有者权限
user:lee:rw- #特殊指定用户权限
group::r-- #文件拥有组权限
group:westos:--- #特殊指定的用户组的权限
mask::rw- #能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- #其他人的权限"当文件权限列表开启,不要用ls -l 的方式来读取文件的权限"
setfacl -m u:lee:rw westosfile #设定lee用户有读写文件的权力
setfacl -x u:lee westosfile #删除列表中的lee
setfacl -b westosfile #关闭#acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
8、attr权限
#attr权限限制所有用户
i #不能作任何的更改
a #能添加不能删除
lsattr dir|file ##查看attr权限
chattr +i/+a/-i/-a dir|file ##设定attr权限