权限

 

 

一、环境准备

 还原快照,开启CentOS7虚拟机,利用root登录

二、挂载光驱设备

1.图形将光盘文件放入,虚拟机光驱设备

 

2.mount进行挂载
]# mkdir  -p   /os/centos
]# mount    /dev/cdrom       /os/centos
]# ls     /os/centos
3.构建Yum仓库
]# rm  -rf   /etc/yum.repos.d/*
]# vim   /etc/yum.repos.d/dvd.repo
[xixi]
name=haha
baseurl=file:///os/centos
enabled=1
gpgcheck=0
]# yum   -y   install   gcc     #测试安装软件
 
三、命令的补充
1. 制作连接(链接)文件(快捷方式)
软连接:ln  -s   /路径/源数据    /路径/快捷方式名
]# ls  /etc/sysconfig/network-scripts/
]# ln -s /etc/sysconfig/network-scripts/     /ns
]# ls /
]# ls -l   /ns      #查看快捷方式的详细信息
]# ls   /ns
软连接优势:1.可以对目录制作快捷方式   2.可以跨分区
软连接缺点:源数据消失,快捷方式不可用
 
 
硬链接:ln    /路径/源数据     /路径/快捷方式名
]# rm -rf   /opt/*
]# echo 123  >  /opt/A
]# ln -s  /opt/A    /opt/B   #软连接
]# ls /opt/
 
]# ln   /opt/A     /opt/C    #硬链接
]# ls   /opt/
]# cat   /opt/B      #查看软连接    
]# cat   /opt/C      #查看硬链接    
 
]# rm -rf  /opt/A
]# ls   /opt/
]# cat   /opt/B      #软连接不可用
cat: /opt/B: 没有那个文件或目录
]# cat   /opt/C      #硬链接可用
 
硬链接优点:源数据消失,快捷方式仍然可用
硬链接缺点:1.不可以对目录制作快捷方式   2.不可以跨分区
 
1. zip归档压缩(跨平台压缩格式)
• 归档+压缩操作 
  
• zip  [-r]  备份文件.zip   被归档的文档...
]# zip  -r   /root/test.zip      /home/    /boot/
]# ls   /root/
• 释放归档+解压操作 
  
• unzip  备份文件.zip  [-d 目标文件夹] 
]# mkdir   /bh
]# unzip   /root/test.zip        -d     /bh
]# ls   /bh
 
四、用户相关配置文件
• 配置文件来源
• 新建用户时,根据 /etc/skel 模板目录复制
]# touch   /etc/skel/hahaxixi.txt
]# touch   /etc/skel/maohehaozi.txt
]# touch   /etc/skel/shukehebeita.txt
]# ls  -A   /etc/skel/
]# useradd   tom
]# ls  -A   /home/tom/
 
• 主要的初始配置文件 
  
• ~/.bash_profile:每次登录系统时执行
• ~/.bashrc:每次开启新的命令行终端时执行
 
全局配置文件:/etc/bashrc、/etc/profile
 
 
]# vim    /root/.bashrc    #定义永久的别名
alias    hn='hostname'
 
新开一个终端进行验证
]# hn
localhost.localdomain
 
]# vim    /etc/bashrc      #影响全体用户
alias    xixi='echo    xixihahahehe'
新开一个终端进行验证            
[root@localhost ~]# xixi
[root@localhost ~]# su - tom
[tom@localhost ~]$ xixi
[tom@localhost ~]$ exit
[root@localhost ~]#
 
 
五、基本权限和归属
1. 基本权限
• 访问权限 
  
• 读取:允许查看内容-read   r
• 写入:允许修改内容-write   w
• 可执行:允许运行和切换-excute  x
• 针对文本文件
        r:查看内容cat   less  head  tail  grep
        w:修改内容vim   >>   >
        x:Shell脚本  Python脚本
• 归属关系 
  
• 所有者:拥有此文件/目录的用户-user
• 所属组:拥有此文件/目录的组-group
• 其他用户:除所有者、所属组以外的用户-other
 
zhangsan (所有者)   zhangsan(所属组)        1.txt
 
• 执行 ls  -l .. .. 命令查看
权限位   硬连接数   属主   属组   大小   最后修改时间   文件/目录名称
    以-开头表示文本文件
    以d开头表示目录
    以l开头表示快捷方式
]# ls  -l   /etc/passwd
]# ls  -l   /etc/shadow
 
]# ls  -ld  /etc
]# ls  -ld   /root
]# ls  -ld   /tmp    #默认具备特殊权限的目录
 
 
 
六、权限的设置
• chmod命令 
  
• 格式:chmod  [ugoa] [+-=][rwx]  文件...
• 常用命令选项 
  
• -R:递归修改权限
 
]# mkdir    /nsd01
]# chmod   u-w  /nsd01   #单独修改所有者权限
]# ls   -ld   /nsd01
 
]# chmod    g+w    /nsd01  #单独修改所属组权限
]# ls   -ld   /nsd01
]# chmod   o=---   /nsd01   #单独修改其他人权限
]# ls   -ld   /nsd01
]# chmod   u=rwx,g-w,o=rx    /nsd01
]# ls   -ld   /nsd01
]# chmod   a=rwx  /nsd01   #所有人赋予rwx权限
]# ls   -ld   /nsd01
 
]# mkdir -p   /opt/aa/bb/cc
]# ls   -ld   /opt/aa
]# ls   -ld   /opt/aa/bb/
]# ls   -ld   /opt/aa/bb/cc
 
]# chmod -R  o=---   /opt/aa    #递归设置权限
]# ls   -ld   /opt/aa
]# ls   -ld   /opt/aa/bb/
]# ls   -ld   /opt/aa/bb/cc/
 
1. Linux判断用户具备的权限:  
2. 首先判断用户对于该数据,所处的角色(顺序:所有者>所属组>其他人  原则是匹配及停止)
3. 查看相应角色的权限位
 
对于目录权限的影响:        
     r:可以查看目录下内容
     w:可以新建、删除、改名此目录下内容
     x:可以cd切换到此目录(一个用户能否切换到目录只和x执行权限有关)
 
 
案例1:设置基本权限
1)以root身份新建/nsddir1/目录,在此目录下新建readme.txt文件
[root@localhost ~]# mkdir /nsddir1
[root@localhost ~]# echo 123456 > /nsddir1/readme.txt
[root@localhost ~]# cat /nsddir1/readme.txt
2)使用户zhangsan能够修改readme.txt文件内容
[root@localhost ~]# chmod  o+w  /nsddir1/readme.txt
3)使用户zhangsan不可以修改readme.txt文件内容
[root@localhost ~]# chmod  o-w  /nsddir1/readme.txt
4)使用户zhangsan能够在此目录下创建/删除子目录
[root@localhost ~]# chmod  o+w   /nsddir1/
[root@localhost ~]# ls  -ld  /nsddir1/
5)调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt(测试结果不能,对父目录没有权限)
[root@localhost ~]# chmod  a-x   /nsddir1/
6)为此目录及其下所有文档设置权限 rwxr-x---
[root@localhost ~]# chmod -R u=rwx,g=rx,o=---  /nsddir1/
 
七、归属的设置
• chown命令 
  
• chown  属主  文件...
• chown  属主:属组  文件...
• chown  :属组  文件...
• 常用命令选项 
  
• -R:递归修改归属关系
]# mkdir   /nsd04
]# useradd   kenji         #创建用户kenji
]# groupadd   tmooc   #创建组tmooc
]# ls  -ld   /nsd04
 
]# chown  kenji:tmooc   /nsd04
]# ls  -ld   /nsd04
 
]# chown   zhangsan   /nsd04   #设置所有者
]# ls  -ld    /nsd04
]# chown   :root   /nsd04    #设置所属组
]# ls  -ld    /nsd04
 
案例:
实现lisi用户可以读取/etc/shadow文件内容,您有几种方法?
   1.利用其他用户
    ]# chmod  o+r   /etc/shadow
   2.利用所属组
]# chown   :lisi    /etc/shadow
]# chmod  g+r   /etc/shadow
   3.利用所有者
]# chown   lisi    /etc/shadow
]# chmod  u+r   /etc/shadow
 
 
 
 
八、权限数字表示
• 权限位的8进制数表示 
  
• r、w、x分别对应4、2、1,后3组分别求和
分组
User权限
Group权限
Other权限
字符
r
w
x
r
-
x
r
-
x
数字
4
2
1
4
0
1
4
0
1
求和
7
5
5
 
]# mkdir   /nsd06
]# ls  -ld   /nsd06
 
]# chmod   700   /nsd06
]# ls -ld /nsd06
 
]# chmod   750   /nsd06
]# ls -ld /nsd06
 
]# chmod   007   /nsd06
]# ls -ld /nsd06
 
• 新建文件/目录的默认权限 
  
• 一般文件默认均不给 x 执行权限
• 其他取决于 umask(权限掩码) 设置
• 文件默认权限为644
• 目录默认权限为755
 
 
 
 
九、附加权限(特殊权限)
• 粘滞位,Sticky Bit 权限 
  
• 占用其他人(Other)的 x 位
• 显示为 t 或 T,取决于其他人是否有 x 权限
• 适用于目录,用来限制用户滥用写入权
• 在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档
 
]# mkdir    /home/public        
]# chmod   777   /home/public
]# ls   -ld   /home/public
]# chmod  o+t  /home/public    #赋予特殊权限
]# ls  -ld  /home/public
 
• SGiD权限 
  
• 占用属组(Group)的 x 位
• 显示为 s 或 S,取决于属组是否有 x 权限
• 对目录有效
• 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份
 
]# mkdir    /nsd14
]# chown   :tmooc    /nsd14
]# ls   -ld   /nsd14
]# mkdir    /nsd14/abc01
]# ls   -ld    /nsd14/abc01    #查看所属组
 
]# chmod   g+s   /nsd14     #赋予特殊权限SGID
]# ls   -ld    /nsd14
]# mkdir   /nsd14/abc02     
]# ls   -ld    /nsd14/abc02      #查看所属组