在上一章中,我们了解到了Linux用户的每个配置文件的内容及作用,以及通过手动修改用户配置文件来手动添加一个用户。但是在实际工作过程中,我们并不是通过手动修改配置来添加用户,而是通过用户管理的各种命令来管理用户。

一、添加用户命令:useradd

Linux 系统中,可以使用 useradd 命令新建用户,此命令的基本格式如下:

useradd [选项] 用户名 -D查看缺省参数

该命令常用的选项及各自的含义如下:

u:UID,指定用户的 UID,在上一章我们了解到普通用户UID的范围是500-60000之间

d:宿主目录

c:用户说明,对应在/etc/passwd文件中第5部分,输入便于理解的用户说明即可

g:组名,指定用户所属的群组

G:组名,指定用户所属的附加群组

s:手工指定用户的登录 Shell,在上一章我们了解到默认是/bin/bash

e:指定用户的失效曰期,格式为 "YYYY-MM-DD"

比如现在要创建一个用户,所属root组,然后给这个用户添加一个用户说明:

$ useradd -g root -c "this is my test user" testuser

执行完这条命令之后,我们就在系统中创建了一个名叫testuser的用户,我们查看一下/etc/passwd文件,就发现里面已经存在一条刚添加的用户信息:

如果想使用这个用户登录,我们再给这个用户设置一个秘密就可以了:

$ passwd testuser

一般情况下,我们创建新用户可以不手工指定任何参数内容,因为使用Linux的默认值就可以满足我们的要求。useradd 命令在添加用户时参考的默认值文件主要有两个,分别是 /etc/default/useradd 和 /etc/login.defs。这两个文件上一章我们已经介绍了,这里我们只简单回顾一下/etc/default/useradd:

$ useradd -D

GR0UP=100: 这个选项用于建立用户的默认组,也就是说,在添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在添加用户时会自动建立和用户名相同的组作为此用户的初始组。也就是说这个选项并不会生效。Linux中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个和用户名相同的用户组作为用户的初始组;另一种是公共用户组机制,系统用 GID 是 100 的用户组作为所有新建用户的初始组。目前我们采用的是私有用户组机制。

HOME=/home: 指的是用户宿主目录的默认位置,刚刚新建的 testuser 用户的主目录就为 /home/testuser/

INACTIVE=-1: 帐号是否过期,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,永不过期。

EXPIRE=: 表示密码失效时间,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有失效时间,永久有效。

SHELL=/bin/bash: 表示所有新建立的用户默认 Shell 都是 /bin/bash

SKEL=/etc/skel: 在创建一个新用户后,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中自动复制过来的。

CREATE_MAIL_SPOOL=yes: 指的是给新建用户建立邮箱,默认是创建。也就是说,对于所有的新建用户,系统都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名相同。testuser的邮箱位于 /var/spool/mail/testuser。

因此我们可以理解useradd命令创建用户的系统内部流程应该是这样的:

1、系统首先读取 /etc/login.defs 和 /etc/default/useradd,根据这两个配置文件中定义的规则添加用户,也就是向 /etc/passwd、/etc/group、/etc/shadow、/etc/gshadow 文件中添加用户数据

2、接着系统会自动在 /etc/default/useradd 文件设定的目录下建立宿主目录,最后复制 /etc/skel 目录中的所有文件到此目录中。至此,一个新的用户就创建完成了。

二、修改用户密码命令:passwd

在上面讲解添加用户命令的时候,其实我们已经用到了 passwd 命令,接下来我们详细详解一下这个命令。

此命令的基本格式如下:

passwd [选项] 用户名

该命令常用的选项及各自的含义如下:

d:删除密码信息

w:密码要到期提前警告的天数,对应于 /etc/shadow 文件中各行的第6个字段

S:显示密码信息,也就是 /etc/shadow 文件中此用户密码的内容,仅 root 用户可用

l:停止账号使用,也就是使密码失效,仅root用户可用

u:解锁用户,与上面的 l 参数对应,仅root用户可用

x: 设置用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段

n:设置该用户修改密码后,多长时间不能再次修改密码,对应于 /etc/shadow 文件中各行密码的第4个字段

1、比如设置刚添加的用户 testuser 的密码:

$ passwd testuser

$ New password: #输入密码,这里不会明文显示

$ Retype new password: #再次输入密码

$ passwd:all authentication tokens updated successfully. #提示密码修改成功

2、显示用户的密码信息:

$ passwd -S testuser #注意这里的参数 S 是大写

testuser PS 2020-06-17 0 99999 7 -1 (Password set, SHA512 crypt.)

# 用户名:密码:设定时间:密码修改间隔时间(0): 密码有效期(99999): 警告时间(7): 密码不失效(-1)

这里的密码修改间隔时间、密码有效期、警告时间、密码宽限时间其实来源于配置文件 /etc/shadow 的设置。这里显示密码加密方式为SHA512,从CentOS 6.3 加密方式已经从 MD5 加密更新到 SHA512。

3、锁定用户

$ passwd -l testuser

锁定该用户之后,我们查看用户的密码信息,发现信息最后的提示是 Password locked.,很清楚的显示密码已经被锁定。系统锁定用户的的处理方式是什么呢?我们查看下/etc/shadow文件看下:

$ grep "testuser" /etc/shadow

大家仔细看下,在密码位前面加入了!!让密码失效而已。

4、解锁用户

既然能够锁定用户,自然也能解锁用户:

$ passwd -u testuser

执行命令解锁用户之后,用户状态就恢复正常了。

今天为大家讲解了Linux用户管理最基础的两个命令,一个是添加用户、一个是修改用户密码。下一章继续为大家讲解Linux用户管理的其他命令。

linux给用户user1设置密码,Linux用户管理之useradd、passwd命令讲解相关推荐

  1. linux一条命令添加用户并设置密码,linux中如何通过命令行来添加用户并设置密码...

    linux中如何通过命令行来添加用户并设置密码 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 LINUX中如何通过命令行来添加用户 ...

  2. linux 服务器进bios设置密码,linux系统启动过程详解及root密码找回

    系统启动流程 BIOS---->MBR:Boot Code---->执行引导程序GRUB(操作系统引导程序)---->加载内核---->执行init--->runleve ...

  3. 怎样在linux更改文件权限设置密码,Linux 配置Hadoop的方法 (修改用户Root权限,设置root密码)...

    1.下载JDK 到官网去下载. tar  -zxf  jdkXXXX.tar.gz 解压到指定的文件夹.最好是进入到该文件夹下,运行该命令 . 2.配置JDK的环境变量. 运行   vim   ~/. ...

  4. 电脑中linux系统在哪里设置密码,linux添加一个root级别账户并设置密码linux操作系统 -电脑资料...

    在linux中我们增加用户会用到useradd了,但这个过程个人感觉比较复杂很用户再加权限,我这里介绍的useradd只要一条命令可以快速增加一个root超级管理员并设置密码命令,希望对大家有帮助, ...

  5. linux首次登陆mysql设置密码,Linux下第一次使用MySQL数据库,设置密码

    在终端下输入:/etc/rc.d/init.d/mysqld status 查看MySQL状态,看看是否运行. 没有运行的话就输入:/etc/rc.d/init.d/mysqld start 这时,就 ...

  6. Oracle 数据库相关主题:用户、权限、常用管理工具、常用命令

    1. Oracle数据库中SYS.SYSTEM.DBSNMP.SYSMAN 四种用户有什么区别? SYS用户(超级管理员):sys用户具有"SYSDBA"或者"SYSOP ...

  7. linux电脑恢复出厂设置密码,linux服务器恢复出厂设置

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  8. linux系统无线怎么设置密码,LINUX终端下配置WPA2加密无线网络

    生成配置文件模版 wpa_passphrase <yourAPssid> <yourpassphrase> > /etc/wpa_supplicant/wpa_suppl ...

  9. linux 用户设密码,linux 上添加用户,设置密码

    linux 下添加用户,设置密码 添加用户: useradd -m $username 修改密码: passwd $username 详细说明: useradd 命令 名 称 useradd - 帐 ...

  10. Linux 用户管理 (useradd 、userdel、usermod、passwd,chage)

    用户管理 目录 用户管理 1. useradd 命令 2 passwd 命令 (实例) 添加用户 3 userdel 命令 实例:删除用户 4 usermod 命令: 5 chage 命令: 前言 L ...

最新文章

  1. 深入分析Java的序列化与反序列化
  2. 在树莓派上安装AdGuardHome当DNS服务器,来屏蔽广告和追踪的DNS请求
  3. HTML DOM getElementsByTagName() 方法
  4. nginx:模块讲解
  5. 小学计算机说课稿,小学信息技术说课稿《新建文件夹》
  6. [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数
  7. matplotlib 设置标注方向_Matplotlib绘制带主题及聚类类标的散点图
  8. 蓝桥杯 ADV-74 算法提高 计算整数因子
  9. php yii应用运维,Windows运维之Windows下用cmd命令实例讲解yii2.0在php命令行中运行的步骤...
  10. jsp页面中插入jsp代码片段
  11. matlab二进制香农,香农编码及MATLAB实现.ppt
  12. 读取jpeg图像数据
  13. VSCode_快捷键
  14. [附源码]计算机毕业设计小太阳幼儿园学生管理系统Springboot程序
  15. php利用七牛云的对象存储完成图片上传-高效管理图片(用php搭建一个自己的图床) nice!!!
  16. 1414. 和为 K 的最少斐波那契数字数目 贪心+递归 大年初三力扣是想意思意思一下呗~
  17. 台式计算机负荷,简单计算台式电脑功率
  18. 第四章:文法中的递归以及消除方法
  19. 关于报错An unexpected error occurred: “https://registry.yarnpkg.com/react: socket hang up“
  20. C语言全网最详细的分支和循环语句讲解

热门文章

  1. Linux指纹识别程序,指纹识别系统的安装
  2. Autodesk 3ds Max 2011 / 3ds Max Design 2011)简体中文版 32位+64位
  3. DOE软件测试工资,DOE的实施步骤详解
  4. 世嘉MD游戏开发【二】:Hello World
  5. 冰箱android10,智能手机 篇十:手机冻冰箱总共分几步?AGM推出金嗓子手机H2,超大声音超长待机...
  6. 22 个最常用的Python包
  7. 新手网站建设优化,这些网站为你提供数之不尽的免费素材!(3)
  8. Hadoop KMS 透明加密配置以及测试
  9. 如何开发一款棋牌游戏?棋牌游戏平台搭建
  10. 高级终端termux下载不了Python_最新Termux安装MSF(metasploit)教程