一、添加用户

1、useradd命令

useradd 选项 用户名
一般我们不加任何选项,都使用默认值创建用户即可。(推荐不使用任何选项)
下边可以了解一下常用选项。
选项:

  • -u:550。指定用户的UID。
    普通用户默认从500开始往后排,依次递增,这个选项是给用户指定一个UID。但从这之后再创建新的用户的UID,默认从551开始,依次递增。之前会产生一些没有用到的UID。(一般不会用此选项)。
  • -g:组名。指定初始组,不推荐手工指定。默认就好。
    命令:useradd -g 组名 用户名
  • -G:组名。指定附加组,把用户加入组,使用附加组。
    命令:useradd -G 组名 用户名
  • -c:说明。添加说明。(说明中如果有空格,需要把整个说明用双引号括起来。)
  • -d:加目录。手工指定家目录,目录不需要事先建立。(默认创建的位置就很好)
  • -s:shell/bin/bash。(这个就是/etc/passwd文件中每一行最后的一列)

注意:
执行完用户添加命令 useradd 选项 用户名之后,一定要设置这个用户设置密码。
添加完用户不设置密码,在 /etc/passwd文件中,信息是正常的,但是在 /etc/shadow文件中,密码的位置是 !!,表示无法登陆。
设置密码命令为 passwd 用户名,然后输入两次密码即可。

2、useradd默认值

useradd添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd文件和
/etc/login.defs文件。
1)/etc/default/useradd文件
[root@localhost ~ ]# vi /etc/default/useradd

下面挨个解释下:

  • GROUP=100
    这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是GID为100的这个用户组。但是这个机制没有采用,目前我们采用的机制私有用户组机制,也就是初始组默认和用户名同名。(这选项等于没起作用)
  • HOME=/home
    这个选项是用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下。
  • INACTIVE=-1
    这个选项就是密码过期后的宽限天数,也就是/etc/shadow文件的第七个字段。
    单位是天数,比如10代表密码过期后10天后失效;如果是0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里默认值是-1,所以所有新建立的用户密码都不会失效。
    (对修改完之后,创建的新用户生效。)
  • EXPIRE=
    这个选项是密码失效时间,也就是/etc/shadow文件的第八个字段。
    也就说用户到达这个日期后就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。
  • SHELL=/bin/bash
    这个选项是用户的默认shell的。/bin/bash是Linux的标志shell,所以所有新建立的用户默认都具备shell赋予的权限。
  • SKEL=/etc/skel
    这个选项就是定义用户的模板目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中。
  • CREATE_MAIL_SPOOL=yes
    这个选项定义是否给新建用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spoo1/mail/下和用户名相同。

2)/etc/login.defs文件
下面是文件内容

#这个文件有些注释,把注释删除掉,文件内容就变成下面这个样子了
[root@localhost ~ ] # vi /etc/login. defs
MAIL_DIR   /var/spool/mail PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN     5
PASS_WARN_AGE   7UID_MIN    500
UID_MAX    60000GID_MIN    500
GID_MAX    60000CREATE_HOME    yesUMASK    077USERGROUPS_ENAB  yes
ENCRYPT_METHOD  SHA512

我们一行一行解释下文件内容:

  • MAIL_DIR=/var/spool/mail
    这行指定了新建用户的默认邮箱位置。比如user1用户的邮箱是就是/var/spool/ma il/user1
  • PASS_MAX_DAYS=99999
    这行指定的是密码的有效期,也就是/etc/shadow文件的第五字段。代表多少天之后必须修改密码,默认值是99999。
  • PASS_MIN_DAYS=0
    这行指定的是两次密码的修改间隔时间,也就是/etc/shadow文件的第四字段。代表第一次修改密码之后,几天后才能再次修改密码。默认值是0。
  • PASS_MIN_LEN=5
    这行代表密码的最小长度,默认不小于5位。但是我们现在用户登录时验证已经被PAM模块取代(更先进一些),所以这个选项并不生效。
  • PASS_WARN_AGE=7
    这行代表密码修改到期前的警告天数,也就是/etc/shadow文件的第六字段。代表密码到底有效期前多少天开始进行警告提醒,默认值是7天。
  • UID_MIN=500UID_MAX=60000
    这两行代表创建用户时,最小UID和最大的UID的范围。我们2.6.x内核开始,Linux用户的UID最大可以支持2^32这么多,但是真正使用时最大范围是60000就足够使用了,不够了在开。
    还要注意,如果我手工指定了一个用户的UID是550,那么下一个创建的用户的UID就会从551开始,哪怕500-549之间的UID没有使用(小于500的UID是给伪用户预留的)。
  • GID_MIN=500GID_MAX 60000
    这两行指定了GID的最小值和最大值之间的范围。
  • CREATE_HOME=yes
    这行指定建立用户时是否自动建立用户的家目录,默认是建立。
  • UMASK=077
    077这行指定的是建立的用户家目录的默认权限,因为umask值是077,所以新建的用户家目录的权限是700(算完之后就是700,注意这个家目录的umask值是本文件中单独定义的,和普通文件的umask值互相独立,该选项无需改动,这样就很好)。
  • USERGROUPS_ENAB=yes
    这行指定的是使用命令userdel删除用户时,是否删除用户的初始组,默认是删除。
  • ENCRYPT_METHOD=SHA512
    这行指定Linux用户的密码使用SHA512散列模式加密,这是新的密码加密模式,原先的Linux只能用DES或MD5方式加密。

总结
以上命令基本上不用改动,记住文件的作用,了解就好。

二、设定密码

[root@localhost ~ ] # passwd [选项] 用户名

1、选项

  • -l:暂时锁定用户。该选项仅root用户可用。
    其实就是在/etc/shadow文件中的密码位置,最前边加入了两个。(手工修改也行,同样的效果)
  • -u:解锁用户。该选项仅root用户可用。
    /etc/shadow文件中的密码位置,取消最前边的两个
  • --stdin:可以将通过管道符输出的数据作为用户的密码。
    也就是说,可以用输出的字符串作为密码。
    主要在批量添加用户时使用。

举例

#passwd直接回车代表修改当前用户的密码
[root@localhost ~ ] # passwd
注意:普通用户修改自己的密码,密码要符合规范,如果不符合规范修改不了。

2、可以使用字符串作为密码

#更改用户user1的密码。
[root@localhost ~] # echo "123" | passwd --stdin user1
说明:echo "123" 输出123字符串,通过管道符交给passwd,
由--stdin选项来支持把passwd收到的密码,设置给user1用户。

注意: --stdin选项来设置密码,不用再输入现有密码和两次新密码的交互了,非常适合批量添加用户时使用。

3、实练

当我批量创建完用户之后,密码一般都是统一的一个默认值,我需要用户登陆时,第一时间就要修改密码,需要怎么做?
可以通过命令,把密码修改日期归零(shadow第3字段),这样用户一登陆就要修改密码,
(因为修改密码的时候为0,证明该用户从1970年到现在一次密码都没有修改过,Linux系统会认为这是不对的,需要你马上进行修改密码。),例如:

[root@localhost ~ ] # chage -d 0 user1

再次登陆,一上来就会要求你修改密码。如下图:

先输入旧密码,在输入新密码,新密码要求符合规范。然后会登出,需要你重新登陆。

linux设置密码规则
1.使用数字,小写字母,大写字母,特殊符号中的三种;
2.密码长度足够长,大于7位;

三、用户信息修改

usermod命令是修改已经添加的用户的信息的,命令如下:
[root@localhost ~ ] # usermod [选项] 用户名

1、选项:

  • -u:UID。修改用户的UID。
  • -d:家目录。修改用户的家目录。家目录必须写绝对路径。
  • -c:用户说明。修改用户的说明信息,就是/etc/passwd文件的第五个字段。
  • -g:组名。修改用户的初始组,就是/etc/passwd文件的第四个字段。
  • -G:组名。修改用户的附加组,其实就是把用户加入其他用户组。
  • -s :shell。修改用户的登录Shell,默认是/bin/bash
  • -e:日期。修改用户的失效日期,格式为"YYY-MM-DD",也就是/etc/shadow文件的第八个字段。
  • -L:临时锁定用户(Lock)。
  • -U:解锁用户(Unlock)。

你仔细对比一下, usermod命令和 useradd命令的选项基本一样。
useradd命令是在创建新用户的同时,指定属性。
usermod命令是修改系统中已存在用户的属性。

这些选项一般也不建议修改。常用的也就-G选项。
[root@localhost ~ ] # usermod -G user1(组) user2(用户)

2、用户可以修改用户名吗?

当然可以,但是不建议修改用户名。因为是修改了用户名,而初始组等与用户名对应的信息都没有修改,以后用起来及其痛苦。建议删除旧用户,再建立新用户!

#修改用户名
[root@localhost ~ ] # usermod -l 新名 旧名

四、删除用户

[root@localhost ~ ] # userdel [-r] 用户名
选项:

  • -r:在删除用户的同时删除用户的家目录。(该选项一般为必选项)

五、切换用户身份

su命令可以切换成不同的用户身份(包括切换成root用户)。
注意:超级用户切换成任何其他普通用户都不用密码。
命令格式如下:
[root@localhost ~ ] # su [选项] 用户名
选项:

  • -:选项只使用“-”代表连带用户的环境变量一起切换。
  • -c命令:仅执行一次命令,而不切换用户身份。

注意:“-”绝不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量(用户身份完整切换)。

练习:

[user1@localhost ~ ]$ su - user2
密码:
[user2@localhost user1]$ whoami
user2[user2@localhost user1]$ exit
exit
[user1@localhost ~ ]$ whoami
user1

查看系统生效的变量用 env命令。

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

Linux用户管理— 用户管理命令相关推荐

  1. linux6用户t密码,linux系统 用户和组管理类命令的使用方法

    列出当前系统上全部已经登陆的用户的用户名,注意:同一用户登陆屡次,则只显示一次便可.mysql [root@lpz ~]# who    #显示当前用户登陆信息linux root    tty1   ...

  2. linux用户命令权限管理,Linux命令-用户、权限管理

    用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同 ...

  3. Linux 文件与目录管理+用户管理命令(详解+练习)

    1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkd ...

  4. linux 查看系统组账号密码是什么,Linux 用户与组管理详解(system-config-users 命令行)...

    用户与组管理 用户相关文件 组账号相关文件 用户和组管理软件: 基于命令行的用户和组管理 创建用户 查看用户信息 删除用户 修改用户信息 为用户创建密码 更改用户密码信息 创建组 删除组 查看当前登录 ...

  5. Linux 目录所属组设置,Linux系统用户与组管理命令及配置文件总结

    一.Linux系统用户及组分类 1.用户类别 Linux系统中的用户大致可分为三类:root用户.系统用户.普通用户.每一个用户都拥有一个唯一的身份标识UID. 2.组分类 与用户信息对应的,Linu ...

  6. 【Linux】与用户管理相关的命令总结

    这篇文章主要总结一下linux中用户相关的命令: 一.查询用户信息相关: 二.用户创建.删除相关: 三.用户密码相关 四.用户组相关 一.查询用户信息相关: 1. cat /etc/passwd 可以 ...

  7. linux组的管理命令,linux 用户和组管理命令(示例代码)

    Linux 用户和组管理 组管理 groupadd命令:添加组 groupadd 选项 group_name -g GID :指定GID;默认是上一个组的GIDS+1 -r 创建系统组: groupm ...

  8. linux修改last权限,Linux常用命令2/3(有关用户、权限管理的命令)--Unix/Linux操作系统04...

    用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理.在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的 ...

  9. linux终端命令行用户名和密码,Linux入门篇 —— Linux 用户与组管理详解(system-config-users 命令行)| 七日打卡...

    用户与组管理什么是用户,用户是人吗? 用户是干啥的?用户账号超级管理员: root 普通用户: ruochen 系统/程序用户: 系统中为某个程序而产生的用户,这类用户一般不允许登录操作系统 组账号定 ...

  10. linux 777权限_认识Linux之Linux命令-用户、权限管理(8)

    用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同 ...

最新文章

  1. 07:清泉-改(prime+堆)
  2. mysql如何删除列中的约束_我们如何从现有MySQL表的列中删除NOT NULL约束?
  3. Linux学习笔记-使用gdb调试
  4. 信号(signal)
  5. 引力子与黑格斯粒子是否超对称
  6. [关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱
  7. vb/vb.net开发精粹(14)
  8. “Win7内部版本7600此Windows副本不是正版”解决方法
  9. bug:Bus error的解决方法(zz)
  10. 现在人工智能自动修复老照片的效果有好?
  11. pta c语言作业,C语言PTA平台习题与答案
  12. 什么叫死区时间_关于pwm死区时间的介绍
  13. Amazon Go无人便利店识别购物的技术详解
  14. idea中maven导入依赖报红的解决办法(版本不一致)
  15. js 对象数组中的已知对象的属性得到对象下标
  16. python用禁忌搜索算法实现TSP旅行商问题
  17. Java IDE 的选择
  18. pushmail的YY
  19. 【Android Studio3.2安装教程】详细实用!!!!
  20. 智能穿戴及传感器调研:第一阶段

热门文章

  1. 大数据在企业中的应用,主要有以下五点建议
  2. 怎么做消防安全知识教育培训PPT课件?
  3. Web前端开发学习2:动态网页
  4. 双非计算机研究生怎么提升自己,3篇EI超速背景提升,双非的我终于可以冲击名校啦!...
  5. Sybase学习笔记
  6. android设备登录微信是不是被盗了,怀疑微信账号被盗了怎么办(如此设置,再也不用担心微信被盗号了)...
  7. moviepy音视频开发:音频合成类CompositeAudioClip介绍
  8. 清华和北大计算机考研,从一所普通大学考研到清华北大有多难?很多人都不知道...
  9. ISO 认证怎么办理?
  10. springboot创建及使用多线程的几种方式