linux:系统用户命令

1.操作系统用户分类

用户类型: 作用
root 管理员 拥有最高权限,类似皇帝
user 普通用户 拥有个人用户的最高权限 类似平民 登录系统(优化系统,更加安全)
虚拟用户 傀儡用户 启动进程必须使用一个用户来运行,此用户不需要登录操作系统,只为了运行程序而存在

系统分类表示方式: 使用UID表示 类似身份证号

用户 UID号码(系统默认)
管理员 0
普通用户 1000+
虚拟用户 1-999

2.passwd文件

root@linux \~# cat /etc/passwd
root : x : 0 : 0 : root : /root: /bin/bash

以冒号分隔:

第一列: 用户名称 管理员普通用户和虚拟用户体现的位置
第二列: x 用户的密码
第三列: 0 用户的UID号
第四列: 0 用户的GID号 小组的号码
第五列: root 描述信息 可写可不要
第六列: /root 用户的家目录 管理员/root 普通该用户user家目录--->/home/user/
第七列: 命令解释器

/bin/bash

普通用户包括root,允许登录操作系统

/sbin/nologin 虚拟用户 不允许登录操作系统

/etc/skel/ 作用: 所有用户的家模版

创建用户的流程:

1.创建用户(useradd oldboy)

2.系统会将/etc/skel/隐藏的环境变量文件 复制到/home/oldboy/家目录中隐藏文件

3.系统将隐藏文件属主属组修改为普通用户

3.用户相关命令

3.1 useradd 添加用户

语法格式:

useradd 参数选项 用户名称

子命令:

-s 指定解释器 /bin/bash /sbin/nologin

-u 指定UID 身份证 如果不指定默认往后排

-g 指定GID 组号

-M 不创建家目录,如果不使用-M 创建家目录

-G 附加组 了解

3.1.1 创建一个普通用户user,默认可以不加任何参数

root@linux \~# useradd user

root@linux \~# id user

uid=1001(user) gid=1001(user) 组=1001(user)

root@linux \~# grep 'user' /etc/passwd

.....

user:x:1001:1001::/home/user:/bin/bash

3.1.2 创建一个虚拟用户 user2 指定UID 666 不创建家目录 不允许登录

root@linux \~# useradd -u666 -M -s /sbin/nologin user2

您在 /var/spool/mail/root 中有新邮件

root@linux \~# id user2

uid=666(user2) gid=1002(user2) 组=1002(user2)

3.1.3 创建一个虚拟用户 user3 uid888 gid888 不创建家目录 不允许登录系统

root@linux \~# useradd -u888 -g888 -M -s /sbin/nologin user3

useradd:"888"组不存在 #得先创造组

root@linux \~# groupadd -g888 user3

root@linux \~# useradd -u888 -g888 -M -s /sbin/nologin user3

root@linux \~# id user3

uid=888(user3) gid=888(user3) 组=888(user3)

3.2 删除用户

userdel (用户名)

-r 删除用户相关的所有文件

每次只能删除一个用户

3.2.1 用awk批量添加用户

root@linux \~# seq 10 | awk '{print "useradd " "user"$1}' | bash

useradd:用户"user2"已存在

useradd:用户"user3"已存在

3.2.2 使用awk批量删除

root@linux home# seq 10 | awk '{print "userdel -r ""user"$1}'

4. 修改密码

passwd (用户名)

4.1 修改test03用户密码

root@linux \~# passwd test03

更改用户 test03 的密码 。

新的 密码:

无效的密码: 密码未通过字典检查 - 过于简单化/系统化

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

ps:输入的内容不会显示

4.2 免交互强制修改密码

root@linux \~# echo 1|passwd --stdin test03

更改用户 test03 的密码 。

passwd:所有的身份验证令牌已经成功更新。

5. 切换用户

su - (用户名)

1.root切换到普通用户 不需要密码

2.普通用户切换到root 需要root的密码

3.普通用户切换到普通用户 需要密码

4.不加用户名默认切换至root

root@linux \~# su - test03

test03@linux \~$ su #root

密码:

root@linux test03#

6. mkpasswd生成密码

mkpasswd (子命令) (算法)

-l:指定密码长度(例如 -l 15 表示15位)。

-s:指定特殊字符的最小数量(例如 -s 3 表示至少包含3个符号)。

-m 指定加密算法 (如md5, sha-256, sha-512

6.1 批量生成用户 自动生成修改密码 并将生成的密码保存

root@linux \~# seq 10 |awk '{print "useradd test" $1}' | bash

root@linux \~# seq 10 | awk '{print "mkpasswd |tee -a passwd.txt | passwd --stdin test"$1}' | bash

更改用户 test1 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test2 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test3 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test4 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test5 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test6 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test7 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test8 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test9 的密码 。

passwd:所有的身份验证令牌已经成功更新。

更改用户 test10 的密码 。

passwd:所有的身份验证令牌已经成功更新。

相关推荐
Huangjin007_7 分钟前
【Linux 系统篇(十一)】基础开发工具(六) —— 版本控制器 Git
linux·运维·git
j7~26 分钟前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
PC2005-cloud8 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
沸速存储8 小时前
整机瓶颈判断思路,自上而下定位卡顿根源
运维·服务器·电脑·内容运营
奈斯先生Vector8 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
乌萨奇也要立志学C++8 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
DLYSB_10 小时前
AIOps 大模型实战:基于 LangChain 运维 Agent 的根因诊断与现场声光播报闭环
运维·langchain·报警灯
RisunJan10 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
一可米11 小时前
gitHub.com Actions自动化发布
运维·自动化·github
智塑未来12 小时前
证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景
运维·科技·区块链