Linux基础巩固--Day3--用户组及权限操作

Linux的安全模型

  用户登录系统时必须提供用户名和密码(用户是由 root 用户创建的,最初的密码也是 root 用户设定的)。

  使用用户和群组来控制使用者访问文件和其他资源的权限。

  系统上的每一个文件都一定属于一个用户(一般该用户就是文件的创建者)并与一个群组相关。

  每一个进程(处理程序)都会与一个用户和群组相关联。

用户和组

  用户user

    令牌token,identity

    linux用户:Username/UID

    管理员:root ,0

    普通用户:1-65535

      系统用户:1-499,1-999(centos7)

        对守护进程获取资源进行权限分配

      登录用户:500+,1000+(centos7)

        交互式登录

  组group

    Linux组:Groupname/GID

    管理员组:root,0

    普通组:

      系统组:1-499,1-999(centos7)

      普通组:500+,1000+(centos7)

  

用户和组管理

   添加用户

    useradd

      -u UID:手动指定用户的UID;

      -d 家目录:手动指定用户的家目录;

      -c 用户说明:手动指定用户的说明;

      -g 组名:指定用户的初始组;

      -G 组名:指定用户的附加组;

      -s shell:手动指定用户登录的shell,默认是/bin/bash;

   修改用户密码状态

    chage [选项] 用户名

      -l: 列出用户的详细密码状态

      -d: 修改密码最后一次的更改日期 shadow3字段

      -m 天数:   两次修改密码的间隔 shadow4字段

      -M 天数: 密码有效期 shadow5字段

      -W 天数:密码过期前警告天数 shadow6字段

      -i 天数: 密码过期后宽限天数  shadow7字段

      -E 日期: 账号失效时间 shadow8字段

   删除用户:

    vi /etc/passwd

    vi /etc/shadow

    vi /etc/group

    vi /ect/gshadow

    mv /var/spool/mail/username /temp #删除用户的邮件

    mv /home/username /temp #删除用户的目录

  

   添加组

    groupadd [选项] 组名

      -g GID:指定组ID

   修改用户组

    groupmod [选项] 组名

      -g GID:修改组ID

      -n 新组名:修改组名

    groupmod -n testgrp group1 # 把组名group1 修改为testgrp

   删除用户组:

    groupdel 组名

    要想删除住,则需要先删除初始用户,否则不能删除

    

文件权限

  查看:

    ls -l a.txt

     结果中 一共有十位数,其中:最前面那个 - 代表的是类型

     中间那三个 rw- 代表的是所有者(user)拥有的权限
     然后那三个 r-- 代表的是组群(group)拥有的权限
     最后那三个 r-- 代表的是其他人(other)拥有的权限

     r代表可读权限,w代表可写权限,x代表可执行权限,-代表还没有授予权限

  修改:

    举例chmod 755 a.txt

      r=4,w=2,x=1,-=0

    -rw------- (600) 只有所有者才有读和写的权限
    -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
    -rwx------ (700) 只有所有者才有读,写,执行的权限
    -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
    -rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
    -rw-rw-rw- (666) 每个人都有读写的权限
    -rwxrwxrwx (777) 每个人都有读写和执行的权限

  

默认权限

  umask -S

    022=rwxr-xr-x  那么创建文件的时候 默认的权限就会是 rwx r-x r-x 的权限

  临时的修改:umask 0000

特殊权限

  SUID

    功能:临时使用命令的属主权限执行该命令,主要是对命令或者二进制文件,以该二进制文件的属主权限来执行该文件

    chmod  u+s filename  # 通过加s

    chmod 4755 filename # SUID的数字权限是4000

  SGID

    功能:多个用户共享一个组,目录授权,共享目录

    chmod g+s /tmp/test/

    chmod 2755 /tmp/test/  # SGID的数字权限是2000

    1.针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。
    2.当某个目录设置了sgid后,在该目录中新建的文件不在是创建该文件的默认所属组
    3.使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

  SBIT

    功能:粘滞位,即便是该目录拥有w权限,但是除了root用户,其他用户只能对自己的文件进行删除、移动操作

    chmod 1755/opt  # SBIT的数字权限是1000

ACL

  访问控制列表:Access Control List

    ACL在UGO权限管理的基础上为文件系统提供了一个额外的,更加灵活的权限管理机制  

  UGO:

    Linux 文件的 ugo 权限把对文件的访问者划分为三个类别:文件的所有者、组和其他人。所谓的 ugo 就是指 user(也称为 owner)、group 和 other 三个单词的首字母组合

  ACL特点:

    1.可以针对用户来设置权限

    2.可以针对用户组来设置权限

    3.子文件/目录继承父目录的权限

  查询ACL是否启用:

    cat /boot/config-3.10.0-693.el7.x86_64 | grep -i xfs

  设置ACL:

    setfacl

      -m: 设置后续acl参数,不可与-x合用
      -x: 删除后续acl参数,不可与-m合用
      -b: 删除全部的acl参数
      -k: 删除默认的acl参数
      -R: 递归设置acl,包括子目录
      -d: 设置默认acl,只对目录有效

  查询ACL:

    getfacl

  更改ACL:

    -m 选项其实是在更改文件和目录的 ACL 权限
    *当一个用户或组的 ACL 权限不存在时,-m 选项执行的是添加操作
    *如果一个用户或组的 ACL 权限已经存在时,-m 选项执行的是更新操作。

    我们重新创建一个 aclfile 文件,通过下面的命令设置 tester 用户对它的访问权限:
    setfacl -m u:tester:rwx aclfile

    移除其对 aclfile 的执行权限:
    setfacl -m u:tester:rw aclfile

  删除ACL:

    setfacl -b aclfile  # -b用来清除文件和目录上所有的ACL权限

 

你可能感兴趣的:(Linux基础巩固--Day3--用户组及权限操作)