第五章 Linux系统中的权限管理

一、权限查看及读取

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 ]    文件类型   

     -      普通wenjian
     d      目录
     l       软连接 ()
     b      快设备 (快捷方式)
     c       字符设备
     s      socket 套接字
     p       管道 |
 [ 2 ]     用户权限
    r w  - |  r - - |  - -
      u       g      o
[ 3 ]     系统的 selinux 开启
[ 4 ]     对于文件 文件内容被系统记录的次数 硬链接个数
        对于目录 目录中子目录的个数
[ 5 ]     文件拥有者
[ 6 ]     文件拥有组
[ 7 ]     对于文件 文件内容大小
        对于目录 目录中子文件的元数据大小
[ 8 ]     文件内容被修改的时间
[ 9 ]    文件名称

二、普通权限的类型及作用

1、 用户对文件的身份
u :             user 文件的拥有者 ls - l 看到的第五列信息
g :             group 文件拥有组 ls - l 看到的第六列信息
o :             other 既不是拥有者也不是拥有组成员的其他用户的通称
2、权限位
   r w x - - | - -
     u         g      o
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 < >< + | - | = ><  > file                      用字符方式设定文件权限
示例
  chmod u - rw / mnt / westos1                                       
  chmod u - rw / 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    数字方式设定权限(权限波尔指表示方式

  r w x = 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 600 / mnt / westosfile1
         rw -------

四、系统默认权限设定

系统本身存在的意义: 共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高,既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放 ,把不安全的权力默认保留
1、 如何保留权力
umask 表示系统保留权力
  
umask                        查看保留权力
umask 权限值           临时设定系统预留权力
文件默认权限 = 777-umask-111     普通用户权限022       文件默认权限  644
目录默认权限 = 777- umask                                           目录默认权利 755
umask值越大系统安全性越高
umask  临时更改
umask 077

umask 永久更改
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

五、文件用户用户组管理

chown username file                           更改文件拥有者
chgrp groupname file                           更改文件拥有组
chown username :/. groupname file      同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir              更改目录本身及目录中内容的拥有者或者拥有组

六、特殊权限

stickyid(粘制位)

  

针对目录: 如果一个目录stickyid开启,那么这个目录中的文件 只能被文件所有人删除

chmod o+t dir
实验
mkdir       / pub
chmod 777 / pub
su - westos ----> touch / pub / westosfile
exit
su - lee --------> touch / pub / leefile
rm - fr / pub / leefile         可以删除
rm - fr / pub / westosfile    不属于自己的文件也可以删除
  
如何解决此问题 :
chmod 1777 /pub
chmod o+t /pub
以上两条命令都可以开启 pub 目录的 t 权限
su - westos ----> touch / pub / westosfile
exit
su - lee --------> touch / pub / leefile
rm - fr / pub / leefile          可以删除
rm - fr / pub / westosfile    不属于自己的文件不能删除
rm : cannot remove 'westosfile' : Operation not permitted

sgid(强制位)
针对目录 : 目录中新建的文件自动归属到目录的所属组中
设定
chmod g+s dir
实验
group westoste
mkdir    / mnt / public
chmod 777 / mnt / public
westos ---> touch / mnt / public / file       谁建立的文件组就是谁的
chmod g + s   / mnt / westosdir  
westos ---> touch / mnt / public / file1     file1 自动复制了 / mnt / public 目录

只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关
实验 :
su - westos   
/ bin / cat
watch -n 1 "ps ax -o user,group,comm | grep cat"
westos westos cat
root 用户身份     chmod g + s    / bin / cat
su - westos
/ bin / cat
ps ax - o user,group,comm | grep cat
westos root cat

suid (冒险位)
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无
chmod u+s file
实验 :
su - westos
/ bin / cat
ps ax - o user,group,comm | grep cat
westos westos cat
root 用户身份         chmod  u + s    / bin / watch
su - westos
/ bin / cat
ps ax - o user,group,comm | grep cat
root  westos  cat

.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 列表开启
acl 列表权限读取
getfacl westosfile
显示内容分析
file : westosfile           文件名称  
owner : root              文件拥有者
group : root                文件拥有组
user :: rw -                   文件拥有者权限
user : lee : rw -              特殊指定用户权限
group :: r --                  文件拥有组权限
group : westos :---      特殊指定的用户组的权限
mask::rw                能够赋予特殊用户和特殊用户组的最大权限阀值
other :: r --                  其他人的权限
" 注意 "
" 当文件权限列表开启 不要用 ls - l 的方式来读取文件的权限 "
acl 列表的控制
setfacl - m u : lee : rw westosfile                 特殊指定用户者权限 设定
setfacl - m g : westos : rw westosfile           特殊指定用户组权限 设定
setfacl - m u :: rwx westosfile                    文件用户组权限设定                  
setfacl - m g :: 0 westosfile                        文件用户组权限设定
setfacl - m o :: r westosfile                         其他人权限设定           
setfacl - x u : lee westosfile                         删除列表中的特殊指定用户 lee
setfacl - b westosfile                                关闭acl列表

 

acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 > 权限少的组 > 其他
acl mask 控制
mask 是能够赋予指定用户权限的最大阀值
问题
当设定完毕文件的 acl 列表之后用 chmod 缩小了文件拥有组的权力
mask 会发生变化

  

恢复
setfacl - m m : 权限 文件
acl 列表的默认权限
setfacl - m u : lee : rwx / mnt / westosdir          只对于 / mnt / westosdir 目录本身生效
setfacl - Rm u : lee : rwx / mnt / westosdir        对于 / mnt / westosdir 目录和目录中已经存在的内容生效
以上的命令只针对与存在的文件生效,新建文件是不会被设定的

 setfacl -m d:u:lee:rwx /mnt/westosdir/     针对与/mnt/westosdir目录中新建文件生效,对目录本身不生效

八、attr权限

attr 权限限制所有用户
i                                           不能作任何的更改
a                                          能添加不能删除
lsattr -ld dir | -l  file                查看 attr 权限
chattr + i |+ a |- i |- a dir | file       设 attr 权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值