首页 > 代码库 > 基础知识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