1、权限查看 ls -l file?? ??? ?##查看文件权限 ls -ld dir?? ??? ?##查看目录权限
2、权限的读取 文件的属性被叫做文件的元数据(meta data) 一种元数据用1个byte来记录内容
#文件权限信息# - | rw-r--r-- | . | 1 | root | root | 0 | Apr 12 10:57 | westos [1]?? ?[2]??? [3] [4]? [5]??? [6]?? [7]????? [8]???????? [9]
?#目录权限信息# d | rw-r--r-- | . | 2 | root | root | 0 | Apr 12 10:57 | westosdir [1]?? ?[2]??? [3] [4]? [5]??? [6]?? [7]????? [8]???????? [9]
#对于每一位的解释# [1]?? ?#文件类型 ?? ?#-?? ?普通文件 ?? ?#d?? ?目录 ?? ?#l?? ?软连接(快捷方式) ?? ?#b?? ?块设备(u盘) ?? ?#c?? ?字符设备(/dev/pts/0) ?? ?#s?? ?socket套接字(应用程序之间进行双向通信的端点) ?? ?#p?? ?管道 |
[2]?? ?#用户权限(可改) ?? ?rw- | r-- | r-- ?? ?user group other ??? (可读可写)(只读) (只读)
[3]?? ?#系统的selinux开启,安全上下文
[4]?? ?#对于文件:文件内容被系统记录的次数(硬链接个数) ?? ?#对于目录:目录中子目录的个数
inodetables(节点区域) | dataarea(数据区域) 软链接:多个节点对应一个数据区域,节省磁盘空间 ; 以路径的形式存在,类似快捷方式 ; 可以跨文件系统 ; 可对一个不存在的文件名进行链接 ; 可对目录进行链接
硬链接:一个节点对应多个数据区域 ; 以文件副本的形式存在,不占用实际空间 ; 不允许给目录创建硬链接 ; 只能在同一个文件系统中创建 ; 可以以不同的文件名存在在同一个目录中,或者以相同的文件名存在在不同的目录中
[5]?? ?#文件拥有者(可改)
[6]?? ?#文件拥有组(可改)
[7]?? ?#对于文件:文件内容大小(可改) ?? ?#对于目录:目录中子文件的元数据大小 mkdir w ls -ld w/ touch w/w1 ls -ld w/ ?? ?# 此时目录中子文件的元数据 8+2(w1)=10
[8]?? ?#文件内容最后一次被修改的时间(可改 touch -t)
[9]?? ?#文件名称 (可改 mv)
##修改[5][6] chown?? ?#修改拥有者 ??? ?chown westos1 westos? (将westos改成1) ?? ??? ??? ?chown westos.(:)lee weatos? (将westos的人和组改成westos和lee) chgrp?? ?#修改拥有组 ??? ?chgrp? root westosdir(将westosdir改成root)
只有超级用户才可以更改
chown username file?? ?##更改文件拥有者 chgrp groupname file?? ?##更改文件拥有组 chown username.(:)groupname file?? ?##同时更改文件的拥有者和拥有组(chgrp没有这个功能)
chown|chgrp -R username dir?? ??? ?##更改目录本身及目录里内容的拥有者 或者 拥有组 chown -R username.(:)groupname dir?? ?##chown可同时修改目录的拥有者和拥有组,chgrp不可以
1、用户对文件的身份 u:?? ?#user?? ?文件的拥有者?? ?ls -l?? ?看到的第五列信息 g:?? ?#group?? ?文件拥有组?? ?ls -l?? ?看到的第六列信息 o:?? ?#other?? ?既不是拥有者也不是拥有组成员的其他用户的通称
2、权限位 -表示权力关闭
?? ?rw- | r-- | r-- ?? ?user group other ??? (可读可写)(只读) (只读)
3、用户身份匹配 user>group>other
4、权限类型
-?? ?#权限未开启
r?? ?#可读 ?? ?对于文件:可以读取文件内容 ?? ?对于目录:可以ls列出目录中的文件
w?? ?#可写 ?? ?对于文件:可以更改文件内容 ?? ?对于目录:可以在目录中新建或者删除文件
x?? ?#可执行 ?? ?对于文件:可以用文件名称调用文件内记录的程序 ?? ?对于目录:可以进入到目录中
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?? ??? ?##用字符方式设定权限 a表示all =表示直接赋予权限 例: chmod u-rw /mnt/westos1 chmod u-rw,go+x /mnt/westosfile1 chmod u-rw,g+x,o+wx /mnt/westosfile2 chmod a-rwx /mnt/westosfile3 chmod u=rwx,g=rx,o=--- /mnt/westosfile4 chmod -R u=rwx,g=rx,o=--- /mnt/westosdir/
?##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
#系统本身存在的意义--共享资源 #从安全角度讲系统共享的资源越少,开放的权力越小,系统安全性越高 #既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留
1、如何保留权力 ? ##umask表示系统保留权力 umask?? ??? ?##查看保留权力 umask 权限值?? ?##临时设定系统预留权力
文件默认权限 = 777-umask-111 = 644 目录默认权限 = 777-umask = 755
umask默认值为022,系统为目录默认保留的权力 111是在保留目录权力后增加的文档权力,去掉了执行权力,防止木马和病毒等
umask值越大系统安全性越高? umask在哪设定,就只会在当前shell保存
2、 umask临时更改 umask 077(根据需要取值)
3、 永久更改 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 78?? ?fi
?vim /etc/profile?? ??? ?##系统环境配置文件
59?? ?if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then 60?? ??? ?umask 002?? ??? ?#普通用户的umask 61?? ?else 62?? ??? ?umask 022 改为 077?? ?#root用户的umask 63?? ?fi
source /etc/bashrc?? ??? ?##source作用时使我们更改的内容立即被系统识别 source /etc/profile
两个文件内容里的值必须保持一致
1、 ##stickyid?? ?粘制位 #针对目录:#如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除
chmod?? ?1原始权限?? ?dir chmod?? ?o+t?? ??? ?dir
2、 ##sgid?? ??? ?强制位 #针对目录:目录中新建的文件自动归属到目录的所属组中,不影响已经存在的文件
chmod?? ?2源文件权限?? ?dir chmod?? ?g+s?? ??? ?dir
3、 ##suid?? ??? ?冒险位 #只针对二进制的可执行文件(c程序) #当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关
chmod?? ?4原属性?? ?file chmod?? ?u+s?? ?file
1、acl全称:Aiccess?? ?Control Lists?? ??? ?#访问控制列表
#功能: #在列表中可以设定特殊用户对特殊文件有特殊权限
#acl列表开启标识 -rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile ?? ?没有“+”代表acl列表未开启
-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile ?? ?acl列表功能开启
2、acl列表权限读取:?????? getfacl? westosfile
显示内容分析
# file: westosfile?? ?#文件名称 # owner: root?? ??? ?#文件拥有者 # group: root?? ??? ?#文件拥有组 user::rw-?? ??? ?#文件拥有者权限 user:lee;rw-?? ??? ?#特殊指定用户权限 group::r--?? ??? ?#文件拥有组权限 group:westos:---?? ?#特殊指定的用户组的权限 mask::rw-?? ??? ?#能够赋予特殊用户和特殊用户组的最大权限阀值 other::r--?? ??? ?#其他人的权限
“注意:” 当文件权限列表开启,不要用ls -l 的方式来读取文件的权限??? 用getfacl? westosfile
3、acl列表的控制
?setfacl -m u:lee:rw?? ?westosfile??? #在文件westosfile 添加使用者lee并给rw权限 setfacl -m g:westos:rw?? ?westosfile? #在文件westosfile 添加使用组westos并给rw权限 setfacl -m u::rwx?? ?westosfile??? ?????? #对文件westosfile 所有使用者 给予rwx权限 setfacl -m g::0 ? ???? westosfile?????????? #对文件westosfile 所有使用组 不给权限 setfacl -x u:lee?? ?westosfile?? ?#删除列表中的lee setfacl -b westosfile?? ??? ??? ?#关闭
##关闭后使用ls -l命令读取“+”就没有了,表示权限列表功能关闭
4、 acl 权限优先级
拥有者>特殊指定用户>权限多的组>权限少的组>其他 ?? ??? ? (同一组成员取权限多的)
#attr权限限制所有用户(包括超级用户,root用户才能进行设置)
i?? ?#不能作任何的更改?? ?(删除未成功建立的文件时,不能-rf强制删除,否则不报错文件不存在) a?? ?#能添加不能删除
lsattr dir|file?? ??? ?##查看attr权限 (lsattr -d 查看本身权限) chattr +i|+a|-i|-a dir|file?? ?##设定attr权限
#查看目录本身时lsattr -d dir
|