Linux:Day4(下) 用户及组管理

时间:2021-04-07 19:47:09

Linux用户:Username/UID

  管理员:root,0

  普通用户: 1-65535

    系统用户:1-499

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

    登陆用户:500+

      交互式登录;

Linux组:Groupname/GID

  管理员组:root,0

  普通组:

    系统组:1-499

    普通组:500+

Linux安全上下文:

  运行中的程序:进程(process)

    以进程发起者的身份运行;

  进程所能够访问的所有资源的权限取决于进程的发起者的身份;

Linux组的类别:

  用户的基本组(主组):

    组名同用户名,且仅包含一个用户:私有组

  用户的附加组(额外组):

Linux用户和组相关的配置文件:

  /etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);

  /etc/group:组及其属性信息;

  /etc/shadow:用户密码及其相关属性;

  /etc/gshadow:组密码及其相关属性;

/etc/passwd:

  account:password:UID:GID:GECOS:directory:shell

/etc/group:

  group_name:passwd:GID:user_list

  组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)

/etc/shadow:

root:$$pX89hXMLJ11VQTuV$efkL761n04ambIMkFwIsS2UvAmNU9ZMJMJwBje1N4HD0.alpduURuv9zF3S52W62wUqXSkQk2.VwXGQO.IhgZ.:::::::

用户名:$加密方式$杂质$加密后的密码:最近一次更改密码的日期:密码的最小使用期限:最大使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段

用户和组的相关管理命令:

  用户创建:useradd

    useradd [options] LOGIN

      -u UID:[ UID_MIN, UID_MAX ],定义在/etc/login.defs

      -g GID:指明用户所属基本组,可为组名,也可以GID;组必须事先存在。可以通过命令id USERNAME查看。

      -c "COMMENT":用户的注释信息;

      -d /PATH/TO/HOME_DIR:以指定的路径为家目录;

      -s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中;

      -G GROUP1 [, GROUP2, ...[, GROUPN]]]:为用户指明附加组,组必须事先存在;

      -r:创建系统用户;

    默认值设定:/etc/default/useradd文件中

      useradd -D

        -s SHELL

      示例:

        useradd -D -s /bin/tcsh  修改默认值的,/etc/default/useradd

  示例: 

    [root@localhost ~]# tail -1 /etc/shadow
    tom:!!:17776:0:99999:7:::    两个!!表示账号处于禁用状态,linux是禁止空密码用户登陆的。

  练习:创建用户gentoo,附加组为distro和linux,默认shell为/bin/csh,注释信息为“Gentoo Distribution";

创建组:groupadd

  groupadd [options] group_name

    -g GID:指明GID号;

    -r:创建系统组;

查看用户相关的ID信息:id

  id [OPTION]... [USERNAME]

    -u:UID

    -g:GID

    -G:Groups

    -n:Name

切换用户或以其它用户身份执行命令:su

  su [OPTION]... [-] [USER [ARG]...]

    切换用户的方式:

      su UserName:非登录式切换,即不会读取目标用户的配置文件;

      su - UserName:登录式切换,会读取目标用户的配置文件,完全切换;

      Note:root su至其它用户无须密码;非root用户切换是需要密码;

    换个身份执行命令(账户不切换):

      su [ - ] UserName -c "COMMAND"

    选项:

      -l:“ su -l UserName" 相当于" su - UserName"

用户属性修改:usermod

  usermod [OPTION] login

    -u UID:更改UID;

    -g GID:更改GID;

    -G GROUP1 [, GROUP2, ...[, GROUPN]]]:新附加组,原来的附加组会被覆盖;若保留原有的,则要同时使用-a选项,表示append

    -l login_name:新的名字;

    -L:lock指定用户;

    -U:unlock指定用户;

给用户添加密码:passwd

  passwd [OPTION] UserName:修改指定用户的密码,仅root用户有权限。

  passwd:修改自己的密码;

    常用选项:

      -l:锁定指定用户

      -u:解锁指定用户;

      -n mindays:指定最短使用期限;

      -x maxdays:最大使用期限;

      -w warndays:提前多少天开始警告;

      -l inactivedays:非活动期限;

      --stdin:从标准输入接收用户密码;

        echo "PASSWORD" | passwd --stdin USERNAME  # 此种方式直接赋值,不需要确认。

      Note:/dev/null,bit buckets

         /dev/zero

删除用户:userdel

  userdel [OPTION]... login

    -r:删除用户家目录;

组属性修改:groupmod

  groupmod [OPTION]...group

    -n group_name:新名字

    -g GID:新的GID

组删除:groupdel

  groupdel GROUP

组密码:gpasswd

  gpasswd [OPTION] GROUP

    -a user:将user添加至指定组中;

    -d user:删除用户user的

    -A user1,user2,....:设置有管理权限的用户列表

  newgrp命令:临时切换基本组;

    如果用户本不属于此组,则需要组密码;

权限管理:

  文件的权限主要针对三类对象进行定义:

    owner:属主,u

    group:属组,g

    other:其它,o

  每个文件针对每类访问者都定义了三种权限:

    r:Readable

    w:Writable

    x:eXcutable

    文件:

      r:可使用文件查看类工具获取其内容;

      w:可修改其内容;

      x:可以把此文件提请内核启动为一个进程;

    目录:

      r:可以使用ls查看此目录中的文件列表;

      w:可在此目录中创建文件,也删除此目录中的文件;(能否删除一个文件,取决于此)

      x:可以使用ls -l 查看此目录中文件列表,可以cd进入此目录;

    

  修改文件权限:chmod

    chmod [OPTION]... OCTAL-MODE FILE...

      -R:递归修改权限

    chmod [OPTION]... MODE[,MODE]... FILE...

      MODE:

        修改一类用户的所有权限:  # 此种方式为全部修改,不涉及的改为无。

          u=r  # 修改后文件只有读权限,拥有的其它权限将修改为无

          g=

          o=

          ug=

          a=

          u=,g=

        修改一类用户某位或某些位权限,无法同时执行+-操作,如果操作中包含加和减使用上面修改方法。  # 此种方式为部分修改,不涉及的不修改。

          u+rw

          u-

          ug+

    chmod [OPTION]... --reference=RFILE FILE...

      参考RFILE文件的权限,将FILE的权限修改为同RFILE;

修改文件的属主和属组:

  仅root可用;

  修改文件的属主:chown  注:这个命令也可以修改属组

    chown [OPTION]... [OWNER][:[GROUP]] FILE...

    用法:

      OWNER

      OWNER:GROUP

      :GROUP

      Note:命令中的冒号可用.替换

    示例:chown :root fstable 

      -R:递归

    chown [OPTION]... --reference=RFILE FILE...

修改文件的属组:chgrp

  chgrp [OPTION]... GROUP FILE...

  chgrp [OPTION]... --reference=RFILE FILE...

文件或目录创建时的遮罩码:umask

  FILE:666-umask

    Note:如果某类用户的权限减得的结果中存在x权限,则将其权限+1

  DIR:777-umask

  umask:查看

  umask #:设定