首页 > 代码库 > 基础知识3
基础知识3
基本权限的类别
? 访问方式(权限)
– 读取:允许查看内容-read
– 写入:允许修改内容-write
– 可执行:允许运行和切换-execute
? 权限适用对象(归属)
– 所有者:拥有此文件/目录的用户-user
– 所属组:拥有此文件/目录的组-group
– 其他用户:除所有者、所属组以外的用户-other
查看权限
? 使用 ls -l 命令
– ls -ld 文件或目录...
[root@server0 ~]# ls -l /etc/passwd
[root@server0 ~]# ls -ld /etc
[root@server0 ~]# ls -l /etc/rc.local
总结:以 "-"开头 代表 是文件
以 "d"开头 代表 是目录
以 "l"开头 代表 是快捷方式
######################################################
补充快捷键: Ctrl+Shift+t 新开一个终端
######################################################
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod g+w /nsd01/
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod o=--- /nsd01
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01/
[root@server0 ~]# ls -ld /nsd01
[root@server0 ~]# mkdir -p /opt/aa/bb/cc/dd
[root@server0 ~]# ls -ld /opt/aa/
[root@server0 ~]# ls -ld /opt/aa/bb/
[root@server0 ~]# chmod -R o=--- /opt/aa
###############################################
Linux判别用户具备的权限
1.判别用户 角色 所有者>所属组>其他人 匹配及停止
2.看相应权限位 的 权限
-bash: cd: /nsd02: Permission denied 权限不足
################################################
对于目录:
r : 查看目录下内容
w : 可以修改 改名 删除 新建 子文件 子目录
x : 能否cd到该目录下
#####################################################
以root用户新建/nsddir/目录,在此目录下新建readme.txt文件,并进一步完成下列操作
1)使用户zhangsan能够在此目录下创建子目录
chmod o+w /nsddir/
2)使用户zhangsan不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户zhangsan能够修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir/
######################################################
设置文档归属
? 使用 chown 命令
– chown 属主 文档...
– chown :属组 文档...
– chown 属主:属组 文档...
[root@server0 /]# mkdir /nsd03
[root@server0 /]# groupadd stugrp
[root@server0 /]# ls -ld /nsd03
[root@server0 /]# chown zhangsan:stugrp /nsd03
[root@server0 /]# ls -ld /nsd03
[root@server0 /]# chown root /nsd03
[root@server0 /]# ls -ld /nsd03
[root@server0 /]# chown :users /nsd03
[root@server0 /]# ls -ld /nsd03
####################################################
附加权限
Set UID
? 附加在属主的 x 位上
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属
主的身份及部分权限(传递所有者身份)
Set GID
? 附加在属组的 x 位上
– 属组的权限标识会变为 s
– 适用于目录,Set GID可以使目录下新增的文档自动设
置与父目录相同的属组 (继承)
[root@server0 /]# mkdir /nsd07
[root@server0 /]# ls -ld /nsd07
[root@server0 /]# chown :stugrp /nsd07
[root@server0 /]# ls -ld /nsd07
[root@server0 /]# mkdir /nsd07/abc01
[root@server0 /]# ls -ld /nsd07/abc01
[root@server0 /]# chmod g+s /nsd07
[root@server0 /]# ls -ld /nsd07/
[root@server0 /]# mkdir /nsd07/abc02
[root@server0 /]# ls -ld /nsd07/abc02
Sticky Bit
? 附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入
权限(禁止操作别人的文档)
[root@server0 /]# mkdir /public/
[root@server0 /]# chmod u=rwx,g=rwx,o=rwx /public
[root@server0 /]# chmod o+t /public
[root@server0 /]# ls -ld /public
###################################################
acl访问控制列表
acl策略的作用
? 文档归属的局限性
– 任何人只属于三种角色:属主、属组、其他人
– 无法实现更精细的控制
? acl访问策略
– 能够对个别用户、个别组设置独立的权限
– 大多数挂载的EXT3/4、XFS文件系统默认已支持
[root@server0 /]# mkdir /nsd08
[root@server0 /]# chmod o=--- /nsd08
[root@server0 /]# useradd tc
[root@server0 /]# su - tc
[tc@server0 ~]$ cd /nsd08 #切换失败
-bash: cd: /nsd08: Permission denied
[tc@server0 ~]$ exit
logout
[root@server0 /]# setfacl -m u:tc:rx /nsd08 #设置ACL权限
[root@server0 /]# getfacl /nsd08 #查看ACL权限
[root@server0 /]# su - tc
[tc@server0 ~]$ cd /nsd08 #切换成功
[tc@server0 nsd08]$ pwd
/nsd08
[tc@server0 nsd08]$ exit
###################################################
设置acl访问控制策略
? 使用 getfacl、setfacl 命令
– getfacl 文档...
– setfacl [-R] -m u:用户名:权限类别 文档
– setfacl [-R] -b 文档... #删除所有ACL策略
– setfacl [-R] -x u:用户 文档... #删除指定的ACL策略
[root@server0 /]# mkdir /nsd09
[root@server0 /]# setfacl -m u:zhangsan:rx /nsd09
[root@server0 /]# setfacl -m u:lisi:rwx /nsd09
[root@server0 /]# setfacl -m u:tc:rwx /nsd09
[root@server0 /]# getfacl /nsd09
[root@server0 /]# setfacl -x u:tc /nsd09
[root@server0 /]# getfacl /nsd09
[root@server0 /]# setfacl -b /nsd09
[root@server0 /]# getfacl /nsd09
[root@server0 /]# ls -ld /nsd09
#####################################################
使用LDAP认证(网络用户验证)
用户类型:
本地用户 /etc/passwd
网络用户 网络的服务器(LDAP目录服务器)
典型的LDAP工作模式
? 为一组客户机集中提供可登录的用户账号
– 网络用户:用户名、密码信息存储在 LDAP 服务端
– 这些客户机都加入同一个 LDAP 域
sssd:客户端与服务端沟通的软件
authconfig-gtk:图形配置sssd工具
[root@server0 /]# yum -y install sssd authconfig-gtk
authconfig-gtk
dc=example,dc=com
classroom.example.com
使用证书加密: http://classroom.example.com/pub/example-ca.crt
选择LDAP密码
systemctl restart sssd #重起服务
systemctl enable sssd #设置服务随机自启动
id ldapuser0
#####################################################
访问NFS共享目录
如何访问NFS共享目录
? 查看NFS资源
– showmount -e [服务器地址]
[root@server0 ~]# showmount -e 172.25.0.254
Export list for classroom:
/home/guests 172.25.0.0/255.255.0.0
? 挂载NFS共享目录
– mount 服务器地址:目录路径 本地挂载点
# mkdir /home/guests
# ls /home/guests
# mount 172.25.0.254:/home/guests /home/guests/
# ls /home/guests
# su - ldapuser0
######################################################
######################################################
[root@server0 ~]# lsblk #列出识别的硬盘设备与分区
? 识别硬盘 => 分区规划 => 格式化 => 挂载使用
? MBR/msdos 分区模式
– 1~4个主分区,或者 0~3个主分区+1个扩展分区(n
个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化
? 修改硬盘的分区表
– fdisk 硬盘设备
[root@server0 ~]# fdisk /dev/vdb
.. ..
Command (m for help): p
常用交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
案例3:硬盘分区
1)在磁盘 /dev/vdb 上按以下要求建立分区:
a)采用默认的 msdos 分区模式
b)第1个分区 /dev/vdb1 的大小为 200MiB
c)第2个分区 /dev/vdb2 的大小为 2000MiB
d)第3个分区 /dev/vdb3 的大小为 1000MiB
# fdisk /dev/vdb
n 创建新的分区----->p----->1 ---->回车----->+200M
p 查看分区表
d 删除分区
w 保存并退出
# lsblk
# ls /dev/vdb*
识别新分区表
? 使用 partprobe 命令
– 当硬盘的分区表被更改以后,需要将分区表的变化及
时通知 Linux 内核,最好 reboot 一次
– 否则在访问分区时可能会找不到准确的设备
[root@server0 ~]# partprobe /dev/vdb
// 或者
[root@server0 ~]# reboot
###################################################
格式化分区
练习
1)第1个分区 /dev/vdb1 的大小为 200MiB ------vfat
2)第2个分区 /dev/vdb2 的大小为 2000MiB------ext4
3)第3个分区 /dev/vdb3 的大小为 1000MiB-------xfs
# mkfs.vfat /dev/vdb1
# mkfs.ext4 /dev/vdb2
# mkfs.xfs /dev/vdb3
查看命令
#blkid /dev/vdb1
#blkid /dev/vdb2
#blkid /dev/vdb3
######################################################
挂载使用
mount /dev/设备 /路径/目录
常见问题:
1.目录没有创建
mount: 挂载点 /part6 不存在
mount: mount point /part6 does not exist
2.没有格式化
mount: /dev/vda6 写保护,将以只读方式挂载
mount: 文件系统类型错误、选项错误、/dev/vda6 上有坏超级块、
缺少代码页或助手程序,或其他错误
进行挂载
[root@server0 ~]# mkdir /mypart1
[root@server0 ~]# mkdir /mypart2
[root@server0 ~]# mkdir /mypart3
[root@server0 ~]# mount /dev/vdb1 /mypart1
[root@server0 ~]# mount /dev/vdb2 /mypart2
[root@server0 ~]# mount /dev/vdb3 /mypart3
[root@server0 ~]# df -hT /mypart1 #查看挂载情况
[root@server0 ~]# df -hT /mypart2
[root@server0 ~]# df -hT /mypart3
[root@server0 ~]# echo hahaxixihehelele > /mypart2/1.txt
######################################################
配置开机自动挂载
实现开机自动挂载
? 配置文件 /etc/fstab 的记录格式
– 设备路径 挂载点 类型 参数 备份标记 检测顺序
/dev/vdb2 /mypart2 ext4 defaults 0 0
[root@server0 ~]# vim /etc/fstab
/dev/vdb1 /mypart1 vfat defaults 0 0
/dev/vdb2 /mypart2 ext4 defaults 0 0
/dev/vdb3 /mypart3 xfs defaults 0 0
补充:
vim用法, 命令模式 yy 复制当前行内容, p 粘贴
命令模式 u 撤销
[root@server0 ~]# reboot
重起完成验证:
[root@server0 ~]# df -hT /mypart[1-3]
######################################################
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
[root@server0 ~]# umount /mypart1
[root@server0 ~]# umount /mypart2
[root@server0 ~]# umount /mypart3
[root@server0 ~]# df -hT /mypart[1-3]
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/vda1 xfs 10G 3.0G 7.1G 30% /
/dev/vda1 xfs 10G 3.0G 7.1G 30% /
/dev/vda1 xfs 10G 3.0G 7.1G 30% /
[root@server0 ~]# mount -a
[root@server0 ~]# df -hT /mypart[1-3]
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/vdb1 vfat 200M 0 200M 0% /mypart1
/dev/vdb2 ext4 1.9G 5.9M 1.8G 1% /mypart2
/dev/vdb3 xfs 997M 33M 965M 4% /mypart3
#####################################################
准备环境,划分分区
应用需求
? 硬盘 /dev/vdb 剩余空间的分区调整
– MBR分区模式,已有三个主分区 /dev/vdb[1-3]
– 需要新增三个分区 /dev/vdb[5-7],
分区大小依次为 500MiB、2000MiB、512MiB
# fdisk /dev/vdb
p 查看分区表
n 创建新的分区
----->e ---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>+500M
......
w 保存并退出
[root@server0 ~]# partprobe 刷新,新的分区表
[root@server0 ~]# ls /dev/vdb*
######################################################
LVM逻辑卷
作用:
1.整合分散的空间
2.空间的大小可以扩大
面粉 -------->面团---------->小面团------>蒸
砖------------>2层的楼------>小房间------>装修
####################################################
pv 物理卷,零散空闲存储(基本分区或磁盘)
vg 卷组, 整合的虚拟磁盘
lv 逻辑卷,从卷组当中划分出来一部分空间
将pv物理卷,组成 vg 卷组,在从卷组当中划分出来一部分空间成为lv逻辑卷
#####################################################
案例2:新建一个逻辑卷
使用分区 /dev/vdb5 构建 LVM 存储
1)新建一个名为 myvg 的卷组
[root@server0 ~]# vgcreate myvg /dev/vdb5
[root@server0 ~]# vgs
2)在此卷组中创建名为 vo 的逻辑卷,大小180MiB
[root@server0 ~]# lvcreate -n vo -L 180M myvg
[root@server0 ~]# lvs
[root@server0 ~]# vgs
3)将逻辑卷 vo 格式化为 EXT4 文件系统
[root@server0 ~]# mkfs.ext4 /dev/myvg/vo
4)将逻辑卷 vo 挂载到 /vo 目录,并在此目录下建立一
个测试文件 votest.txt,内容为“I AM KING.”
[root@server0 ~]# mkdir /vo
[root@server0 ~]# vim /etc/fstab
/dev/myvg/vo /vo ext4 defaults 0 0
[root@server0 ~]# df -hT /vo
[root@server0 ~]# mount -a
[root@server0 ~]# df -hT /vo
##################################################
LVM卷组的PE大小
PE:卷组划分空间的单位
? 创建卷组的时候设置PE大小
[root@server0 ~]# vgcreate -s 16M datastore /dev/vdb6
Physical volume "/dev/vdb6" successfully created
Volume group "datastore" successfully created
[root@server0 ~]# vgs
? 创建逻辑卷的时候指定PE个数
– lvcreate -l PE个数 -n 逻辑卷名 卷组名
[root@server0 ~]# lvcreate -l 50 -n database datastore
[root@server0 ~]# lvs
####################################################
扩展逻辑卷
扩展LVM逻辑卷
情况1:卷组有剩余的空间,直接扩展逻辑卷
[root@server0 ~]# lvextend -L 240M /dev/myvg/vo
Extending logical volume vo to 240.00 MiB
Logical volume vo successfully resized
[root@server0 ~]# lvs
[root@server0 ~]# df -hT /vo
[root@server0 ~]# resize2fs /dev/myvg/vo #刷新文件系统
[root@server0 ~]# df -hT /vo
情况2:卷组没有剩余的空间,先扩展卷组,在扩展LVM
[root@server0 ~]# vgextend myvg /dev/vdb7
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 640M /dev/myvg/vo
[root@server0 ~]# lvs
[root@server0 ~]# df -hT /vo
[root@server0 ~]# resize2fs /dev/myvg/vo
[root@server0 ~]# df -hT /vo
– 刷新文件系统容量:
resize2fs EXT3/4设备 或者 xfs_growfs XFS设备
#####################################################
管理交换空间(swap虚拟内存)
swapon -s #查看swap虚拟内存的组成
[root@server0 ~]# mkswap /dev/vdb8 #格式化交换文件系统
[root@server0 ~]# swapon -s
[root@server0 ~]# swapon /dev/vdb8 #启用交换分区
[root@server0 ~]# swapon -s
[root@server0 ~]# mkswap /dev/vdb9
[root@server0 ~]# swapon /dev/vdb9
[root@server0 ~]# swapon -s
[root@server0 ~]# swapoff /dev/vdb9 #停用交换分区
[root@server0 ~]# swapon -s
交换设备的开机挂载配置
? 修改 /etc/fstab 配置文件
[root@server0 ~]# vim /etc/fstab
.. ..
/dev/vdb8 swap swap defaults 0 0
[root@server0 ~]# swapon -a #检测fstab可用交换设备
[root@server0 ~]# swapon -s #查看
######################################################
交换空间大小:
当物理内存<=16GB时,一般是物理内存的0.5~2倍
当物理内存>16G时,一般给4~8G
当物理内存>32G时,交换分区<=16G
######################################################
基础知识3