权限
一、环境准备
还原快照,开启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 #查看所属组