用户分类:

  • 超级管理员

root “根用户” UID=0

  • 系统用户

UID范围:1-999,默认不可登录,用于软件运行和权限管理。

  • 普通用户

UID范围>=1000 日常使用,办公,root授权的操作

 # 用户信息问
 cat /etc/passwd
 # 格式:
 # 用户名:密码占位:UID:GID:简介:家目录:shell终端程序
 root:x:0:0:root:/root:/bin/bash
 ​
 1 # 创建普通用户
 useradd # 用户名
 usseradd tom
 tom:x:1000:1000::/home/tom:/bin/bash
 ​
 2 # 创建密码
 passwd  tom    # 可以创建密码
 cat /etc/shadow | tail -1   # 密码所在文件
 passwd -l # lock锁,给用户加锁,禁止用户登录
 passwd -u # unlock解锁 给用户解锁
 passwd -e # 用户下次登录需要更改密码
 passwd -d # 清空用户密码
 passwd --stdin # 获取键盘输入或文本的密码
  
  3 # 退出登录
  logout # 退出登录
  exit   # 退出当前终端
  
  4 # 使用新用户直接登录
  ssh tom@192.168.8.3
 # 退出以后执行直接登录
 ​
 5 # 切换用户
 su   # 切换用户  
 su - # 在用户自己的家目录登录
 ​
 6 # 修改用户
 usermod # 修改用户的信息,例如用户名,UID,家目录,shell
 usermod -c 注释
 usermod -d 修改家目录
 usermod -a 追加到用户组
 usermod -G 指定附加组
 usermod -aG root tom # 将tom用户添加到root组中
 soure .bashre  #  重新加载bash配置
 ​
 7 # 用户的主组:和用户绑定的默认的组,用户创建文件的“属组”就是主组
 8 # 用户的附加组:仅用于权限管理的组,将多个用户可以添加到同一个组中每用户会默认拥有组权限
 ​
 9 # 删除用户
 userdel        # 删除用户
 userdel -r  用户名   # 删除用户的同时,将用户的家目录与邮件目录一并删除

用户组

组管理

 cat /etc/group | tail -1   # 查询命令
 # 创建组
 groupadd 
 groupadd dev            # 创建用户组 dev
 usermod -aG dev li4     # 将用户加入到dev组里面
 ​
 # 修改组
 groupmod   
 groupmod -g 2333 test    # 
 ​
 # 删除组 
 groupdel        

UGO权限

文件权限介绍

  • U : user权限 属主

  • G : group权限 属组

  • O : other权限 其他

 # 查看文件的普通权限
 ls -l
 -rw-r--r--. 1 root root      204      5月 12 11:13    a.txt
     权限      用户和用户组  文件大小        时间        文件名
 drwxr-xr-x. 2 root root   22  5月 11 15:06 dir01
                属主  属组
 # 内容说明
 1 第一个字符:代表文件类型
     -    普通文件(文本,二进制、配置、日志等文件)
     d    目录文件(文件夹,包含存放文件的文件)
     c    字符文件(输入、输出设备)
     b    block块文件(存储设备、U盘、移动硬盘)
     l    link链接文件(软连接)
     s    socket套接字文件(进程间通信、网络传输)
     p    pipe管道文件(多进程数据共享)
 2 第2至第10个字符:代表文件的普通权限
     rw-rw-r--    三个为一组(属主 数组 其他)
     r    read 可读
     w    write 可写
     e    exe   可执行                    
 3 数字 文件或目录的硬链接数
     普通文件    至少一个硬链接
     普通目录    至少两个硬链接 "."目录 目录中的"." 子目录中的".."
     dr-xr-x---.  7 root root  4096  5月 13 09:17 .
     dr-xr-xr-x. 17 root root   224  5月  7 02:19 ..
 4 属主(文件所有者名称, 用户不存在会显示UID)
 5 属组(文件所属的组)
 6 文件大小(不包含目录中文件的大小)
 7 修改时间    
 8 文件名或目录名    
     stat 文件名 # 查看文件的详细信息(文件元数据)
     最近访问:文件内容查看的时间
     更改时间:文件内容的修改时间
     改动时间:文件的元数据的改变时间
 ** 元数据(inode、block、size大小、upgo权限、fileType类型、)
     
 9 chown    # 设置文件或目录的所有者(属主)
 格式:
     chown 属主 文件    属组
     g    属组
     o    其他用户
     =    精确赋予权限
     +    增加权限
     -    减少权限
     r    只读
     w    只写
     x    执行
     s    临时授权
     t    文件粘连        
 # 数字表示法
     r    4
     w    2
     x    1
     rw   6
     rwx  7
     r--  4
     ---  0
     --x  1
     -w-  2
     -wx  3
     r-x  5
   
     # 改用户的用户组  
    chown :wyd dir01
   drwxr-xr-x. 2 root wyd    22  5月 11 15:06 dir01
    
    # 改后面的用户组
    chgrp wyd dir01
   drwxr-xr-x. 2 root wyd    22  5月 11 15:06 dir01
   
   # 改前面的用户
   chown ppp:root dir01
 ​
 ​
 11 chgrp    # 设置文件或目录的属组(文件的主组)
 格式:
     chgrp 属组 文件/目录
 -R/-r    # 递归设置,将目录中所有文件设置为相同的权限
 ​

特殊权限

 SUID(用户):让其他用户临时使用属主(用户)的身份执行命令
    ls -l /user/bin/passwod
    -rwsr-xr-x. 1 root root 27856  4月  1  2020 /usr/bin/passwd
    # 设置方法,拥有属主(用户)拥有x权限的文件才能生效s,否则变为s不生效
    chmod u+s 可执行程序设置.
    chmod 4755 可执行程序设置. 4代表SUID
    # 说明:拥有x权限原因是,让普通用户也可以修改自己的密码
    
 SGID(用户组):给属组(用户组)的权限位进行特殊设置加S权限
 作用:
     1. 给命令添加SGID,让使用者以默认    属组(用户组)的权限进行命令
     2. 目录继承作用:给目录添加SGID,让复制到该目录的文件自动继承该目录的组权限
     chmod g+s 文件或目录
     chmod 2755 文件或目录
     
 StickyBIT:粘滞位,只能给目录设置,一般用于共享目录,让普通用户只能删除修改自己的文件,不能删除、修改其他用户的文件
     /tmp      共享目录
     chmod o+t 目录
     chmod 1777 目录
     目录权限: r权限能够ls  cp
               w权限表示可以修改、删除、移动该文件
               x权限表示可以进入 cd

ACL权限:访问控制列表

 ACL命令:
 # 查看文件或目录的acl权限
 格式:
     getfacl 文件名/目录名
     
 [root@LiSheng ~]# getfacl dir01
 # file: dir01
 # owner: root
 # group: root
 user::rwx
 group::r-x
 other::r-x
 ​
 # 修改文件或目录的acl权限
     setfacl [选项] 文件名/目录名
         -m         修改acl权限
         -x         删除某个acl权限
         -b         删除文件或目录的所有acl权限
 ​
 案例:
     setfacl -m u:用户名:rw 文件        # 给用户名 rw的权限
     把u改成g                           # 给用户组添加权限
     
  #    给王五用户增加rwx权限                                 
  setfacl -m u:wangwu:rwx os-release
  getfacl os-release
 [root@LiSheng ~]# getfacl os-release
 # file: os-release
 # owner: root
 # group: root
 user::rw-
 user:wangwu:rwx
 group::r--
 mask::rwx
 other::r--
 ​
 # 删除王五rwx权限
 setfacl -x u:wangwu os-release
 [root@LiSheng ~]# getfacl os-release
 # file: os-release
 # owner: root
 # group: root
 user::rw-
 group::r--  
 .
 mask::r--
 other::r--
 ​
 # 对目录设置acl时,子可以继承目录的acl权限
 setfacl -m d:u:tom:rwx 目录        # 对目录设置acl权限

隐藏权限

  • UGO ACL权限设置针对的是普通用户,对root是无效的;

  • 隐藏权限对包含root用户在内的用户都有效,作用:

    • 为了系统安全

    • 锁定某些重要文件,防止误操作,误删、误改

  • 怎么用:

 # 查看文件的隐藏权限
 lsattr 文件            # 查看
 ​
 # 修改文件的隐藏权限
 chattr +i 文件        # 修改
 chattr -i 文件
 chattr +a 文件
 # 只允许追加重定向
 a append only          # a表示仅允许追加,适合系统的关键日志
 # 不可变的,只读
 i immutable            # i 作用是锁死,不可变的,只读,可复制,只允许看,禁用rm、mv、vim等命令的操作
 ​

sudo命令与sudoers配置

  • 作用:临时让普通用户也能用root身份的权限来执行命令;

  • 注意:需要root本用户授权给其他用户或组sudo权限,后才能正常使用sudo命令

  • 配置:

 sudo命令
 # 需要root授权,需要使用root身份修改/etc/sudoers
 su -
 vim /etc/sudoers 或 visudo  # 修改sudo配置
 # 允许tom用户使用sudo命令时拥有root的所有权限
 tom     ALL=(ALL)    ALL 
 tom  ALL=(ALL)    NOPASSWD:ALL     # nopasswd 表示不需要输入密码
 ​
 # 限制特权权限
 # 禁止使用这几个命令
 tom     ALL=(ALL)    ALL,!/usr/sbin/reboot,!/usr/sbin/init,!/usr/sbin/shutdown,!/usr/bin/passwd 
 ​
 which 命令    #查找命令的绝对路径
 ​
 # 允许admin组的成员都拥有sodo权限
 %admin  ALL=(ALL)    ALL 
 %wheel  ALL=(ALL)    NOPASSWD:ALL  # nopasswd 表示不需要输入密码直接可以使用sudo
 ​
 ​
 # 命令集与别名
 里面由Cmnd_Alias
 vim /etc/sudoers 或 yisudo  # 修改sudo配置
 Cmnd_Alias
 tom     ALL=(ALL)    ALL,Cmnd_Alias+路径
 ​
 Cmnd_Alias     SHUTDOWN = /sbin/shutdown,/usr/bin/poweroff,/sbin/poweroff
 ​
 %minsudev ALL=(ALL) NOPASSWD:ALL,!SHUTDOWN

umask修改文件和目录默认权限

 umask         #  设置用户创建文件和目录时的默认权限  默认值 0022  可以修改默认值 (除非必要否则不修改)
 umask         #  对应目录权限   0777-0022=755 rwxr-xr-x
 umask         #  对应文件权限   0666-0022=644 rw-r--r--