Linux基础--用户管理

目录

查看用户

[使用命令: id](#使用命令: id)

创建用户

[使用命令: useradd](#使用命令: useradd)

​编辑

为用户设置密码

[使用命令: passwd](#使用命令: passwd)

​编辑

删除用户

[使用命令: userdel](#使用命令: userdel)

创建用户组

[使用命令: groupadd](#使用命令: groupadd)

删除用户组

[使用命令: groupdel](#使用命令: groupdel)

用户设置

[使用命令: usermod](#使用命令: usermod)

将用户从组中去除

[使用命令: gpasswd](#使用命令: gpasswd)

用户信息文件

[文件位置: /etc/passwd](#文件位置: /etc/passwd)

用户组信息文件

[文件位置: /etc/group](#文件位置: /etc/group)

其他

系统用户与普通用户的区分

统计不同用户的数量

[使用命令: awk](#使用命令: awk)

对文件内容进行排序

[使用命令: sort](#使用命令: sort)


查看用户

使用命令: id

查看用户tom是否存在

用户存在会显示对应信息,用户不存在会报错

创建用户

使用命令: useradd

创建用户jack

如果用户jack存在,则会报错

可以使用"&&"和"||"来进行创建,避免报错

为用户设置密码

使用命令: passwd

为jack用户设置密码

使用--stdin来为tom进行密码的设置

此方法虽然方便,但是会将密码明文显示在终端,可以使用cat来读取密码文件来增强安全性

删除用户

使用命令: userdel

删除用户jack

使用userdel直接对用户进行删除时,用户的家目录文件和邮件目录文件不会被删除,需要进行手动删除,否则会影响下次用户的添加,

选项: -r

删除用户tom以及tom用户家目录和邮件目录文件

使用此选项可以将用户在删除的时候将其家目录和邮件目录一并删除

创建用户组

使用命令: groupadd

创建用户组hr

删除用户组

使用命令: groupdel

用户设置

使用命令: usermod

更改用户tom登录的shell,使其无法进行登录

更改用户登录shell为/sbin/login后,用户将无法进行登录

将用户tom追加一个附加组hr

将用户从组中去除

使用命令: gpasswd

将tom用户从hr组中除去

用户信息文件

文件位置: /etc/passwd

文件内的内容以":"分隔;

第一列: 用户名

第二列: 密码占位符

第三列: 用户ID

第四列: 组ID

第五列: 用户描述信息

第六列: 用户家目录

第七列: 用户登录shell

用户组信息文件

文件位置: /etc/group

文件内容仍然是以":"进行分隔:

第一列: 组名字

第二列: 占位符

第三列: 组ID

第四列: 组其他成员(不以此组为主族的用户)

其他

系统用户与普通用户的区分

系统用户UID都是小于1000,普通用户UID大于1000,其中root用户UID为0

统计不同用户的数量
使用命令: awk

统计系统用户的数量

bash 复制代码
cat /etc/passwd | awk -F":" 'BEGIN{i=0;print "统计用户数量"}{if ($3<1000){i++}}END{print"系统用户数量为:"i}'
对文件内容进行排序
使用命令: sort

对文件/etc/passwd以用户ID从大到小的顺序进行排序

bash 复制代码
cat /etc/passwd | sort -t":" -k3nr 

对文件/etc/passwd进行排序,以GID为标准进行从小到大排序,当GID一样时,根据UID从大到小进行排序

bash 复制代码
cat /etc/passwd | sort -t":" -k4n -k3nr 
相关推荐
AlfredZhao1 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐2 天前
Linux内存扩容指南
linux
zylyehuo2 天前
Linux 彻底且安全地删除文件
linux
用户805533698033 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297913 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维