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:所有的身份验证令牌已经成功更新。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式