«
账号管理及文件权限管理

时间:2022-7-17     作者:李泽信     分类: linux基础


一、用户和组账号的概述

1.概念:
2.用户和组的文件
/bash/passwd    #账号文件
/bash/shadow    #密码文件
/bash/group     #组账号文件
/etc/gshadow    #组密码文件,很少使用

二、用户及组账号的管理

添加: 
    useradd [选项] 用户名
    选项:
        -d  #指定家目录
        -M  #不指定家目录
        -s  #指定用户的登录shell
        -g  #指定用户的基本组
        -G  #指定用户的附加组(可指定GID)
删除:
    userdel -r 用户名
    删除用户的同事也将家目录一并删除
改:
    usermod [选项] 用户名
    选项:
        包含创建用户的所有选项
    passwd  用户名 #为用户设置密码
    passwd  [选项] 用户名
    选项:
        -d  #清空用户的密码(不用密码登录)
        -l  #锁定用户
        -u  #解锁用户
        -S  #查看用户锁定状态
    chsh -s 解释器目录   用户名 #更改用户的shell解释器
查:
    grep 用户名 /etc/passwd    #查看账号信息
    id  用户名     #显示用户UID和所属组
    w   #查看当前主机的登录情况

三、文件的属性

ls -ld 目录或文件位置
  格式:文件类型、权限、inode数量、属主、属组、大小、日期、文件名
  权限列表:
    第一个字符:文件类型,d目录、b块设备文件、c字符设备文件、l链接文件、-普通文件;
    第2-4个字符:属主对文件的权限;
    第5-7个字符:属组对文件的权限;
    第8-10个字符:任何用户对文件的权限;
  权限的表示:
    r:读取,查看内容,也可以用4表示;
    w:写入,写入(删除、更改、移动等)内容,也可用2表示;
    x:执行,执行此文件或cd到此目录,也可用1表示;
语法:chmod [ugoa] [+-=] [rwx] 文件或目录
    举例:chmod g-x, o-r 文件或目录
    选项:-R 表示递归权限,目录下的子目录子文件继承父级目录的权限;
    语法:chmod 775 文件或目录
语法:
     chown 属主 文件或目录                 #设置其属主
     chown :属组 文件或目录                   #设置其属组
     chown 属主:属组 文件或目录              #设置其属主和属组
    注:选项-R 递归可将其子目录子文件继承父级目录的归属;

/etc/passwd的权限为 -rw-r--r--。也就是说:该文件的所有者拥有读写的权限,而属组和其他人只有读取的权限。我们知道,在系统中我们要修改一个用户的密码,root用户和普通用户均可以用“/usr/bin/passwd 用户名” 这个命令来修改这个/etc/passwd这个文件,root用户本身拥有对/etc/passwd的写权限,可以理解;那普通用户没有写权限,那他怎么也能修改呢?这里就用到了setuid,setuid的作用是让执行该命令的用户以该命令拥有者的权限去执行,就是普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。它的标志为:s,会出现在x的地方,例:-rwsr-xr-x 。而setgid的意思和它是一样的,即让执行文件的用户以该文件所属组的权限去执行。

我们知道/tmp是系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除了,这种情况我们是不能允许的。为了达到该目的,就出现了stick  bit(粘滞位)的概念。它是针对目录来说的,如果该目录设置了stick  bit(粘滞位),则该目录下的文件除了该文件的创建者和root用户可以删除和修改/tmp目录下的stuff,别的用户均不能动别人的,这就是粘滞位的作用。

语法:
    setfacl -m u:用户名:rwx 文件或目录
    setfacl -d -m u:用户名:rwx 目录      ##设置目录的默认facl并目录下所有子文件子目录都使用父目录的默认facl
   getfacl 目录或文件                    ##查看目标文件或目录的acl规则
   setfacl -b 文件或目录             ##删除文件所有的acl规则
    setfacl -x u:root 文件或目录         ##删除文件的一条acl规则
    setfacl  -m  m:w    /mnt/test           ##设置有效权限mask,有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效