用户和用户组

Posted biht

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户和用户组相关的知识,希望对你有一定的参考价值。

linux是多用户的系统

用户管理相关文件

用户基本信息 /etc/passwd   

1.该文件中一行就是一个用户!

2.统计当前系统中有多少用户:     

  [[email protected] ~]# cat /etc/passwd | wc -l
    128

3.passwd文件详解
    zero:x:1000:1000:zero:/home/zero:/bin/bash
    root:x:0:0:root:/root:/bin/bash

    root 用户名
    x 用x进行密码占位
    0 UID
    0 GID
    root 描述信息
    /root root用户家目录,其他用户是在/home下
    /bin/bash shell类型 /bin/bash是可以登录系统的;/sbin/nologin是不可以登录系统的。


  用户组信息 /etc/group
    zero:x:1000:zero
    root:x:0:

    root 组名
    x 用x进行密码占位
    0 GID
  最后还有一位表示有哪些用户在此组内
    如下:表示kuying用户在root组内
    root:x:0:kuying

    /etc/default/useradd文件详解

  定义创建用户默认选项的文件
    # useradd defaults file # useradd默认文件
    GROUP=100 #表示可创建普通组
    HOME=/home #用户的家目录建在/home中;用户家目录的默认创建地
    INACTIVE=-1 #是否启用帐号过期停权,-1表示不启用;宽限天数,0及以下数皆为无效数字
    EXPIRE= #帐号终止日期,不设置表示不启用;帐号失效日期(如:20081212)
    SHELL=/bin/bash #所用SHELL的类型;登录后执行的程序
    SKEL=/etc/skel #用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

    CREATE_MAIL_SPOOL=yes #是否创建用户邮件缓冲,yes表示创建

主组和附加组
    在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户    组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组
    用户的基本组(主组):当前用户具有哪个组的权限
    用户的附加组:用户额外属于的组

linux中用户分类
    超级管理员 root uid 0
    系统用户 uid 1-999 运行服务
    普通用户 uid 1000+ 工作中用到用户

  注意:uid只是一种规范

系统用户:
    1.运行服务程序的
    2.一般不让系统用户登录系统
    3.系统用户无家目录

  默认的shell类型为/bin/bash

面试题:系统用户都是不可以登录系统的吗?

    错误的。在linux当中创建用户的时候默认使用的shell类型为/bin/bash是可登录系统的,
    如果没有指定不可登录系统的shell类型的话。系统用户是可以登录我们的系统的。
    只是说在工作中需要不让系统用户登录系统,我们在创建系统用户的时候指定系统用户的shell
    类型不可登录系统。

useradd命令
    作用: 创建用户
    使用格式: useradd options... username

  选项:
  -u 指定UID
  -g 指定主组的ID
  -G 指定附加组ID
  -r 创建系统用户
  -s 指定shell类型 /bin/bash /sbin/nologin
  -c 添加描述信息

  例子1:创建普通用户kuying
    [[email protected] ~]# useradd kuying

  例子2:创建用户并添加描述信息
    [[email protected] ~]# useradd -c "this is for test" kuying1
    [[email protected] ~]# tail -1 /etc/passwd
    kuying1:x:1102:1102:this is for test:/home/kuying1:/bin/bash

  例子3:创建用户并指定用户ID为1105
    [[email protected] ~]# useradd -u 1105 kuying2
    [[email protected] ~]# tail -1 /etc/passwd
    kuying2:x:1105:1105::/home/kuying2:/bin/bash

  例子4:创建用户并指定主组ID为0 #指定组的时候组必须存在!
    [[email protected] ~]# useradd -g 0 kuying4
  或者
    [[email protected] ~]# useradd -g root kuying4


  例子5:创建用户并指定附加组ID为0 #指定组的时候组必须存在!
    [[email protected] ~]# useradd -G 0 kuying6

  例子6:创建系统用户
    [[email protected] ~]# useradd -r -s /sbin/nologin kuying7

    1.可以查看用户ID,发现是1000以内
    2.用户家目录不会创建

passwd命令
    作用:设置用户密码
  选项:
    -l 锁住密码
    -u 解锁密码
    -d 删除用户密码
    -e 使用户密码过期
    --stdin 从标准输入获取密码

  例子1:给用户创建密码
    [[email protected] ~]# passwd kuying
    Changing password for user kuying.
    New password:
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:
    passwd: all authentication tokuyings updated successfully.

  注意:root登录到普通用户是不需要输入密码的!
    [[email protected] ~]$ su - root #从普通用户切换到root是需要输入密码的
    Password:
    [[email protected] ~]$ exit #输出exit退回上一次登录的用户
    logout
    [[email protected] ~]#

  例子2:锁住用户密码
    [[email protected] ~]# passwd -l kuying
    Locking password for user kuying.
    passwd: Success

    [[email protected] ~]# su - kuying1
    Last login: Thu Jul 11 15:58:44 CST 2019 on pts/0
    [[email protected] ~]$ su - kuying #普通用户在此登录输入密码之后会提示认证失败!
    Password:
    su: Authentication failure


  例子3:解锁用户密码
    [[email protected] ~]# passwd -u kuying
    Unlocking password for user kuying.
    passwd: Success
    [[email protected] ~]# su - kuying1
    Last login: Thu Jul 11 15:59:38 CST 2019 on pts/0
    [[email protected] ~]$ su - kuying #再次输入密码登录发现可以正常登录
    Password:
    Last login: Thu Jul 11 15:59:34 CST 2019 on pts/0
    Last failed login: Thu Jul 11 15:59:46 CST 2019 on pts/0
    There was 1 failed login attempt since the last successful login.
    [[email protected] ~]$

  例子4:让用户密码过期
    [[email protected] ~]# passwd -e kuying
    Expiring password for user kuying.
    passwd: Success

    [[email protected] ~]$ su - kuying
    Password:
    You are required to change your password immediately (root enforced)
    Changing password for kuying.
    (current) UNIX password: #输入当前用户密码
    New password: #输入新的密码,字母+数字组合
    Retype new password:

  例子5:--stdin使用格式
    echo 密码 | passwd --stdin 用户名

    [[email protected] ~]# echo "123" | passwd --stdin kuying
    Changing password for user kuying.
    passwd: all authentication tokuyings updated successfully.

userdel
    作用:删除用户
  选项:
    -r 删除用户时连同用户家目录删掉

  例子1:删除用户及家目录
    [[email protected] ~]# userdel -r kuying6
    [[email protected] ~]# id kuying6 #无kuying6用户了
    id: kuying6: no such user
    [[email protected] ~]# ls /home #用户家目录也无kuying6家目录
    kuying kuying1 kuying2 kuying3 kuying4 kuying5 shelltest

  例子2:
    [[email protected] ~]# userdel kuying5   #删除用户时不删除用户家目录
    [[email protected] ~]# id kuying5
    id: kuying5: no such user
    [[email protected] ~]# ls /home #但是用户家目录依然存在
    kuying kuying1 kuying2 kuying3 kuying4 kuying5 shelltest
    [[email protected] ~]# useradd kuying5 #创建同名用户时报如下的错误
    useradd: warning: the home directory already exists.
    Not copying any file from skel directory into it.
    Creating mailbox file: File exists

    [[email protected] ~]# id kuying5 #但是用户仍然创建成功了
    uid=1108(kuying5) gid=1108(kuying5) groups=1108(kuying5)

  如果不想看到上面的报错信息需要如下的操作:
    [[email protected] ~]# userdel kuying4
    [[email protected] ~]# rm -rf /home/kuying4 #删除用户家目录
    [[email protected] ~]# rm -rf /var/spool/mail/kuying4 #删除用户邮箱
    [[email protected] ~]# useradd kuying4

groupadd
    作用:创建用户组

  例子1:创建组
    [[email protected] ~]# groupadd kuying9
    [root[email protected] ~]# tail -1 /etc/group
    kuying9:x:1110:
groupdel
    作用:删除用户组
  例子1:删除组
    [[email protected] ~]# groupdel kuying9

id
  作用:查看用户信息
    -u
    -g
    -G
  例子1:查看用户信息
    [[email protected] ~]# id kuying
    uid=1101(kuying) gid=1101(kuying) groups=1101(kuying),0(root)
    [[email protected] ~]# id kuying11
    id: kuying11: no such user

su
  作用:切换用户
    注意:在切换用户的时候需要加上-进行环境变量的整体改变
  例子1:切换用户
    [[email protected] ~]# su - kuying

    /etc/shadow:用户密码信息、过期时间等
    zxhk: $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 : 7 : : :
    第一段:用户名:
    第二段:加密后的密码
    第三段:上次修改密码举例元年经过的天数1970年1月1日(如果该字段空,意味着该用户密码被禁用)
    第四段:密码最短使用时间(0表示不限制)
    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)
    第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改
    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)
    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)
    第九段:保留字段

usermod
    作用:修改用户信息
  选项:
    -u 指定UID
    -g 指定主组的ID
    -G 指定附加组ID
    -s 指定shell类型 /bin/bash /sbin/nologin
    -L, –lock: 锁定用户的密码
    -U : 解锁用户的密码
    -l, –login NEW_LOGIN : 变 更 使 用 者 login 时 的 名 称 为 login_name 。
    -e, –expiredate EXPIRE_DATE:加 上 使 用 者 帐 号 停 止 日 期 。 日 期 格 式 为 MM/DD/YY.

/etc/shadow:用户组密码
/etc/default/useradd:创建用户的默认配置信息
/etc/skel/:用户家目录模板
/etc/login.defs:全局用户设定信息

以上是关于用户和用户组的主要内容,如果未能解决你的问题,请参考以下文章

用户组和用户的基本命令

linux-用户和用户组基础命令和操作

第6章 用户和用户组管理_用户和用户组命令

Linux基础——用户和用户组

03-用户和用户组管理

如何添加、修改和删除ubuntu用户和用户组