openEuler基础(二十)用户创建、密码管理、用户锁定
提出问题:
如何给系统添加新的用户?
如何给用户设置新的密码?
如何锁定一个用户?
如何解锁一个用户?
如何让一个用户下线?
openEuler是一个多用户的操作系统,所有要使用系统资源的用户需要先向系统管理员申请一个账号,之后用此账号进入系统;可以在系统上建立多个用户,而多个用户可以在同一时间内登录至同一系统执行不同的任务,并不会相互影响。
用户是能够获取系统资源的权限的集合;每个普通用户都有一个账号,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,具有特殊的存在意义,其中最重要的用户就是管理员账户,默认的用户名为root(也就是超级用户)。每个用户都会分配一个特有的id号UID。
用户UID指的是用户的ID(User ID),一个用户UID标示一个给定用户,UID是用户的唯一标示符,通过UID可以区分不同用户的类别(用户在登录系统时是通过UID来区分用户,而不是通过用户名来区分)。
openEuler中有三类用户,分别是超级用户、普通用户、虚拟用户。
其中,超级用户,也称为root用户,它的UID为0,超级用户拥有系统的完全控制权,可以进行修改、删除文件等操作,也可以运行各种命令,所以在使用root用户时要十分谨慎。
普通用户,也称为一般用户,它的UID为1000-60000之间,普通用户可以对自己目录下的文件进行访问和修改,也可以对经过授权的文件进行访问;
虚拟用户,也称为系统用户,它的UID为1-999之间,虚拟用户最大的特点是不提供密码登录系统,它们的存在主要是为了方便系统的管理。
通过查看不同用户UID可以区分用户的类别为超级用户、普通用户或是虚拟用户。
一、查看UID命令
格式:id [option] [user_name]
相关参数:
-u,-user 只输出有效UID
-n,-name 对于-ugG输出名字而不是数值
-r,-real 对于-ugG输出真实ID而不是有效ID
用法示例1:查看root用户的UID
[root@localhost ~]# id root
用户id=0(root) 组id=0(root) 组=0(root)
二、创建用户useradd命令
useradd命令可用来创建用户账号,并保存在/etc/passwd文件中。
语法:useradd [options] user_name。
其中的命令选项说明如下:
-u 指定用户UID
-o 配合“-u”属性,允许UID重复
-g 指明用户所属基本组,既可为用户组名,也可为GID(该组必须已存在)
-d 指定用户的home目录,并自动创建用户home目录
-s 指明用户的默认shell程序
-D 显示或更改默认配置
-m 自动创建用户目录
用法示例1:创建一个新用户user1
[root@localhost ~]# useradd user1
用法示例2:创建一个新用户user2,并设置ID为1100
[root@localhost ~]# useradd user2 -u 1100
用法示例3:创建一个新用户user3,并设置密码为asd?1234
[root@localhost ~]# useradd user3
[root@localhost ~]# passwd user3
更改用户 user3 的密码 。
新的密码:
无效的密码: 密码未通过字典检查 - 太简单或太有规律
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
用法示例4:批量创建新用户test1-4
(1)建立用户名列表文件username.txt,里面包含4个用户名test1、test2、test3、test4
[root@localhost ~]# vi username.txt
test1
test2
test3
test4
(2)创建用户密码对应文件pwd.txt,每一行的格式为username:password
[root@localhost ~]# vi pwd.txt
test1:pwd1?asd
test2:pwd2?asd
test3:pwd3?asd
test4:pwd4?asd
(3)编写批量添加的脚本文件add.sh
[root@localhost ~]# vi add.sh
##添加用户,并且在/home/下为用户生成用户目录。
cat < username.txt | xargs -n 1 useradd -m
## xargs命令能够捕获一个命令的输出,然后传递给另外一个命令。
##批处理模式下更新密码
cat pwd.txt|chpasswd
##结束验证信息
echo "批量创建用户完成"
(4)执行该脚本文件
[root@localhost ~]# sh add.sh
批量创建用户完成
(5)查看/home目录下的用户目录情况
[root@localhost ~]#ls /home
test1 test2 test3 test4
最后,可以用新建的test1用户登录系统,看能否成功。
三、查看系统里所有的用户
通过cat /etc/passwd命令查看所有用户。
[root@localhost ~]# cat /etc/passwddbus:x:980:980:System Message Bus:/:/usr/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
test02:x:1001:1001::/home/test02:/bin/bash
user:x:1002:1004::/home/user:/bin/bash
上面的每一行代表一个用户,共7个域,用冒号隔开。
(1)账号名称;(2)口令,用x代替,实际放在/etc/shadow中;(3)UID;(4)GID;(5)用户信息说明;(6)家目录;(7)Shell
四、修改用户的密码passwd命令
openEuler中涉及到管理用户信息的文件有以下两种:
/etc/passwd:用户账号信息文件。在这个文件中,保存着系统中所有用户的主要信息,每一行代表着一个记录;每一行用户记录中定义了用户各个方面的相关属性。
/etc/shadow:用户账号信息加密文件(又称为“影子文件”)。用于存储系统中用户的密码信息;由于/etc/passwd文件允许所有用户读取,容易导致密码泄露,因此将密码信息从该文件中分离出来,单独放置在/etc/shadow文件中。
命令passwd用来修改用户的密码。
语法:passwd [OPTION…] user_name。
其中的命令选项说明如下:
-n 设置修改密码最短天数
-x 设置修改密码最长天数
-w 设置用户在密码过期前多少天收到警告信息
-i 设置密码过期多少天后禁用账户
-d 删除用户密码
-S 显示用户密码信息
(root用户可以修改任何用户的密码,普通用户只能修改自身的密码)
用法示例1:修改用户user1的密码为newasd?123
[root@localhost ~]# passwd user1
Changing password for user user1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
在终端用新密码登录,测试是否修改成功。
用法示例2:直接修改用户user1的密码为newasd?123
[root@localhost ~]# echo "newasd?123" | passwd --stdin user1
更改用户 user1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
在终端用新密码登录,测试是否修改成功。
用法示例3:清除用户user1的密码
[root@localhost ~]# passwd -d user1
清除用户的密码 user1。
passwd: 操作成功
用法示例4:锁定用户user1
[root@localhost ~]# passwd -l user
锁定用户 user 的密码 。
passwd: 操作成功
在终端重新登录,测试是否锁定成功。
用法示例5:解锁用户user1
[root@localhost ~]# passwd -u user1
解锁用户 user 的密码。
passwd: 操作成功
在终端重新登录,测试是否解锁成功。
用法示例6:锁定所有用户
锁定所有用户,可以通过在/etc目录下创建nologin文件实现。
[root@localhost ~]# touch /etc/nologin
在终端重新登录,测试是否禁止所有用户登录shell。
用法示例7:解锁所有用户
解锁对所有用户的登录限制,删除在/etc目录的nologin文件即可。
[root@localhost ~]# rm -rf /etc/nologin
在终端重新登录,测试是否解锁所有用户登录shell
五、修改用户usermod命令
usermod可用来修改用户账号的各类信息。
语法:usermod [options] user_name。
其中的命令选项说明如下:
-u 修改用户UID
-g 修改用户所属用户组
-G修改用户所属的附加群组
-I 修改用户账号名称
-d 修改用户home目录
-s 修改用户默认shell程序
用法示例1:修改用户user的UID
首先,添加user用户,并查看它的uid。
[root@localhost ~]# useradd user
[root@localhost ~]# id user
uid=1002(user) gid=1004(user) groups=1004(user)
修改用户的uid为1003,并查看它的uid。
[root@localhost ~]# usermod -u 1003 user[root@localhost ~]# id user
uid=1003(user) gid=1004(user) groups=1004(user)
用法示例2:修改用户user,用户名改为student
[root@localhost ~]# useradd user
[root@localhost ~]# usermod user -l student
[root@localhost ~]# id user
id: “user”:无此用户
[root@localhost ~]# id student
用户id=1001(student) 组id=1001(user) 组=1001(user)
用法示例3:修改用户user的组信息为student
[root@localhost ~]# useradd user
[root@localhost ~]# groupadd student
[root@localhost ~]# id user
用户id=1001(user) 组id=1001(user) 组=1001(user)
[root@localhost ~]# usermod user -g student
[root@localhost ~]# id user
用户id=1001(user) 组id=1000(student) 组=1000(student)
六、用户删除userdel命令
userdel用于删除指定的用户以及与该用户相关的文件。
语法:userdel [options] user_name。
其中的命令选项说明如下:
-f 强制删除用户账号,即使用户当前处于登录状态
-r 删除用户,同时删除与用户相关的所有文件
-h 显示命令的帮助信息
(userdel命令用于删除指定的用户以及用户相关的文件,实际上是对系统的用户账号文件进行了修改)
用法示例1:删除用户user
首先,添加user用户。
[root@localhost ~]# useradd user
查看用户:cat /etc/passwd
[root@localhost ~]# cat /etc/passwd
dbus:x:980:980:System Message Bus:/:/usr/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
test02:x:1001:1001::/home/test02:/bin/bash
user:x:1002:1004::/home/user:/bin/bash
删除用户user
[root@localhost ~]# userdel user
查看用户:cat /etc/passwd
[root@localhost ~]# cat /etc/passwd
dbus:x:980:980:System Message Bus:/:/usr/sbin/nologin
test:x:1000:1000::/home/test:/bin/bash
test02:x:1001:1001::/home/test02:/bin/bash
七、查看当前在线用户,并强制下线其他用户
命令w查看当前在线用户。
命令pkill按照进程名来杀死指定进程。
语法:pkill(选项)(参数)
选项:
-o:仅向找到的最小(起始)进程号发送信号;
-n:仅向找到的最大(结束)进程号发送信号;
-P:指定父进程号发送信号;
-g:指定进程组;
-t:指定开启进程的终端。
用法示例1:查看当前在线用户
[root@localhost ~]# w
10:54:35 up 2:00, 2 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 08:56 1.00s 0.13s 0.00s w
zhangsan pts/1 09:49 1:05m 0.00s 0.00s -bash
用法示例2:
[root@localhost ~]# pkill -kill -t pts/1
[root@localhost ~]# w10:57:32 up 2:03, 1 user, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 08:56 4.00s 0.14s 0.00s w
八、综合训练
1.新建一个用户(自己姓名的拼音)
[root@localhost ~]# useradd zhangsan
[root@localhost ~]#
2.为这个新用户设置密码
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的密码:
无效的密码: 密码包含少于 3 的字符类型
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
3.使用这个用户登录系统,测试是否成功。
System information as of time: 2022年 01月 11日 星期二 09:47:01 CSTSystem load: 0.07
Processes: 153
Memory used: 16.1%
Swap used: 0%
Usage On: 8%
IP address: 202.112.113.5
Users online: 2[zhangsan@localhost ~]$
4.锁定这个用户
[root@localhost ~]# passwd -l zhangsan
锁定用户 zhangsan 的密码 。
passwd: 操作成功
[root@localhost ~]#
5.使用这个用户登录系统,测试是否成功。
Authorized users only. All activities may be monitored and reported.
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(user) at 09:48:47.Type `help' to learn how to use Xshell prompt.
[C:\~]$
6.解锁这个用户
[root@localhost ~]# passwd -u zhangsan
解锁用户 zhangsan 的密码。
passwd: 操作成功
[root@localhost ~]#
7.使用这个用户登录系统,测试是否成功。
System information as of time: 2022年 01月 11日 星期二 09:49:13 CSTSystem load: 0.07
Processes: 154
Memory used: 16.1%
Swap used: 0%
Usage On: 8%
IP address: 202.112.113.5
Users online: 2[zhangsan@localhost ~]$
openEuler基础(二十)用户创建、密码管理、用户锁定相关推荐
- 应用安全系列之二十九:密码管理
一个系统的登录有多种方式,严格的有使用人的指纹.虹膜等生物特征作为登录凭据,在一些电影大片中,也经常看到一些牛逼的人如何盗取指纹来获取系统的登录.生活中,常见的指纹锁采用的是人的指纹作为登录凭证.不过 ...
- linux 用户创建、管理、权限分配
(1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...
- 用户统一密码管理校验服务说明
1 背景说明 目前大多数企业尤其是集团性企业已经构建了一定的信息化系统,但伴随信息系统越建越多,账户体系紊乱.用户不统一.体系不统一的弊端越来越明显.当前企业亟需解决全集团内部的"统一认证& ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- SQL 基础之DDL语句创建和管理表(十四)
数据库对象 Object 描述 表 基本的数据存储集合,由行和列组成 View 从一张表或多张表中抽出的 逻辑上相关的数据集合 序列 生成规律的数值 index 索引 提高查询性能 Synonym 别 ...
- Spring Boot 2.x基础教程:使用LDAP来管理用户与组织数据
很多时候,我们在做公司系统或产品时,都需要自己创建用户管理体系,这对于开发人员来说并不是什么难事,但是当我们需要维护多个不同系统并且相同用户跨系统使用的情况下,如果每个系统维护自己的用户信息,那么此时 ...
- Linux用户配置密码,linux用户配置文件passwd和密码配置文件shadow,用户管理,组管理...
一.linux和windows互传文件 1.安装支持包:lrzszyum -y install lrzszputty工具 不支持lrzsz 2.rz windows文件fail2ban-0.8.1 ...
- Linux大神进阶二十:Mariadb服务管理
文章目录 1.MariaDB数据库 1.1理解 1.2 mariadb服务的搭建 2.基于LAMP框架搭建个人博客:typecho 2.1理解 2.2 typecho服务的搭建 3.基于LAMP框架搭 ...
- Java架构师之旅(二十九 附录《MyBatis3 用户指南》中文版)
夜光序言: 岁月波光粼粼,赋予爱与生命,唯有生活不能被他人代替,只会有寂寞相随~~ 正文: MyBatis 3 2010.08.01 翻译的一个版本,虽难比较老了,但是有一些基础还是值得学习,毕竟是 ...
- 计算机重新创建一个管理用户,如何给电脑新建一个登录账户并赋予管理权限?...
原标题:如何给电脑新建一个登录账户并赋予管理权限? 在前面和大家分享的如何给个人电脑设置管理员登录密码?,时和大家分享了如何给Administrator设置密码,这里的Administrator是系统 ...
最新文章
- oracle 11g完全安装教程(CentOS)
- [C++ STL] map使用详解
- Linux 设备模型之 (kobject、kset 和 Subsystem)(二)
- 全面讲解Python列表数组(三)列表数组类型的内置函数方法
- eclipse中快捷键
- 使用通用mapper实现条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了...
- python误删文件怎么恢复_记录一次脚本误删文件后恢复
- LeetCode 排序和搜索简单部分 Python实现
- 大数据之-Hadoop之HDFS的API操作_文件IO流_下载_案例---大数据之hadoop工作笔记0064
- 斐讯k2p梅林忘记密码恢复出厂之后的解决办法
- linux 查看、关闭、后台程序 【进程】
- 利用Volatility进行Windows内存取证分析(二):内核对象、内核池学习小记
- 如何使用计算机建模,计算机模拟在数学建模中的应用
- SSH远程控制与访问
- 2022-2028全球与中国硅片清洗设备市场现状及未来发展趋势
- 原典法的学习训练程序详细介绍
- 教育CRM究竟是什么?有何用处?
- 【愚公系列】2023年01月 Java教学课程 039-Java中API
- VisualBoy Advance编译心得
- (sketch to image) 论文阅读笔记 SketchyCOCO:Image Generation from Freehand Scene Sketches