• Linux学习 -- 用户和用户组管理



    1 用户配置文件

      1.1 用户信息文件 /etc/passwd

        查看帮助 man 5 passwd

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

          -account 用户名 注意规范

          -passwd 密码标志 x表示有密码 具体密码在shadow中

          -UID user ID    0:超级用户, 由UID决定,不由用户名决定

                   1-499:系统用户(伪用户),不能登录,不能删,由系统服务或命令调用 

                   500-65535:普通用户

          -GID group ID 初始组ID 用户创建时产生的组,每个用户只能有一个初始组,不建议更改,具体属于哪个组看/etc/group

                       附加组:一个用户还可以加入多个其他的用户组

          -GECOS 用户说明 

          -directory 用户家目录 超级用户: /root/   普通用户: /hoshme/用户名/

          -shell 登录之后的Shell 就是Linux的命令解释器  标准shell:/bin/bash  之外还有/sbin/nologin 不能登录

      1.2 影子文件 /etc/shadow

        -1 用户名

        -2 加密密码 SHA512散列加密算法 "!!"或"*"表示没有密码,不能登录

        -3 密码最后一次修改的日期  Linux的时间戳 1970-1-1后的第n天

        -4 两次密码修改的时间间隔

        -5 密码有效期

        -6 密码修改到期前的警告天数

        -7 密码过期后的宽限天数  0或不写:到期立即失效  -1:用不失效

        -8 账号失效时间  时间戳表示

          时间戳 --> 日期:date -d "1970-01-01 16066 days"

          日期 --> 时间戳:echo $(($(date --date="2015/10/13" +%s)/86400+1))

        -9 保留字段

      1.3.1  组信息文件 /etc/group

        -1 组名

        -2 组密码标志  具体密码在/etc/gshadow中  不推荐使用

        -3 GID  组ID 和 UID类似

        -4 组中附加用户  和passwd对照看才能知道初始用户

      1.3.2 组密码文件 /etc/gshadow

         -1 组名

         -2 组密码

         -3 组管理员用户名

         -4 组中附加用户


    2 用户管理相关文件    添加用户时自动建立的

      2.1 用户的家目录

        $ 普通用户 /home/用户名/ 权限700

        # 超级用户 /root/ 权限550

      2.2 用户的邮箱

        /var/spool/mail/用户名

      2.3 用户模板目录

        /etc/skel/


    3 用户管理命令

      useradd [选项] 用户名

        -u UID: 手工指定UID

        -d 家目录: 手工指定家目录

        -c 用户说明: 手工指定用户的说明

        -g 组名: 手工指定初始组

        -G 组名: 指定用户的附加组 逗号分隔

        -s shell: 手工指定用户的登录shell。默认/bin/bash

        

        用户默认值文件 /etc/default/useradd

                /etc/login.defs

      

      passwd [选项] [用户名]

        只有超级用户才能加[用户名],普通用户直接passwd

          -S  查询用户密码的状态 仅限超级用户

          -l 锁定用户  实际上是更改shadow中密码位前加了双感叹号

          -u 解锁用户

          --stdin  使用字符串作为用户的密码 

            echo "123" | passwd --stdin zoro   可以用户shell编程中,批量添加

      

      usermod 修改已存在用户信息

        -u  -g  -G  -c -d

        -L  lock

        -U unlock

      chage 修改用户密码状态

        -l   list

        -d  shadow 3

        -m              4 

        -M              5

        -W       6

        -I       7

        -E      8

          唯一有用的是-d,其他都可以通过修改shadow文件实现

          chage -d 0 xxx   结果:xxx一登录就要修改密码

      userdel [-r] 用户名

        -r 同时删除家目录

      

      id 查看用户ID

      su [选项] 用户名  切换用户身份

        -: 连带用户的环境变量一起切换    - 注意不要省!!!

        -c:仅执行一次,而不切换用户身份  eg. $su - root -c "useradd user3"


    4 用户组管理命令

      groupadd [选项] 组名

        -g GID

      groupmod [选项] 组名    不如删了重建

        -g GID

        -n 新组名

      groupdel 组名      

        组里若有初始用户,则不能删除组

        附加用户不影响

      gpasswd 选项 组名

        -a  用户加入组

        -d  用户从组中删除   

      

      

      

      

    KEEP LEARNING!
  • 相关阅读:
    三分钟学会.NET微服务之Polly
    redis设置密码和redis主从复制
    程序员工作之外,如何再赚一份工资?
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    TPS和QPS的区别和理解
    制定一套适合自己团队的GITflow标准化工作流
    UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式
    从零開始学Xamarin.Forms(一) 概述
    Unity 之 C# 利用回调函数实现C++匿名函数
    hdu 4324 Triangle LOVE(拓扑判环)
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/4876302.html
Copyright © 2020-2023  润新知