登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Linux中如何批量删除系统中所有的自建用户 ...
Linux中如何批量删除系统中所有的自建用户
[ 复制链接 ]
泥地锚
2025-6-9 13:44:04
一、需求分析
在 Linux 系统中,一般情况下,系统用户(如root、bin、daemon等)的用户 ID(UID)通常是小于 1000 的。对于自建用户(非系统用户),UID 一般从 1000 开始分配。不过,这不是绝对的规则,具体的 UID 范围可以由系统管理员在创建用户时指定,或者根据系统的用户管理配置文件(如/etc/login.defs)来确定。
因此,我们可以通过awk工具提取/etc/passwd中uid大于1000的用户名,并结合管道符|和xargs 来进行批量删除。
二、下面进行实操
2.1.批量新增用户
[root@client-110 ~]# echo -e "u1\nu2\nu3\nu4" |xargs -L 1 useradd
复制代码
[root@client-110 ~]# tail /etc/passwd
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
u1nu2nu3nu4:x:1000:1000::/home/u1nu2nu3nu4:/bin/bash
u1:x:1001:1001::/home/u1:/bin/bash
u2:x:1002:1002::/home/u2:/bin/bash
u3:x:1003:1003::/home/u3:/bin/bash
u4:x:1004:1004::/home/u4:/bin/bash
复制代码
通过观察/etc/passwd文件发现,每个字段由:分隔,第一列为用户名,第三个字段为uid
2.2.通过awk工具提取uid大于等于1000的用户名
[root@client-110 ~]# awk -F ':' '$3>=1000{print$1}' /etc/passwd
u1nu2nu3nu4
u1
u2
u3
u4
复制代码
2.3.批量删除
[root@client-110 ~]# awk -F ':' '$3>=1000{print$1}' /etc/passwd|xargs -L 1 userdel
复制代码
[root@client-110 ~]# tail /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
复制代码
命令整体解释
这个命令的目的是批量删除/etc/passwd文件中uid大于等于 1000 的用户及其主目录。
首先是awk -F ':' '$3>=1000{print $1}' /etc/passwd部分:
awk是一个强大的文本处理工具,-F ':'表示以:作为字段分隔符来处理/etc/passwd文件。/etc/passwd文件的每行包含了用户的各种信息,格式大致为用户名:密码:用户ID:用户组ID:注释:主目录:默认shell。
$3>=1000{print $1}这一语句是awk的模式和动作语句。$3表示每行的第三个字段,在这里就是uid字段,当这个字段的值大于等于 1000 时,就打印该行的第一个字段,也就是用户名。
然后是| xargs -L 1 userdel -r部分:
|是管道符号,它将awk命令的输出(也就是符合条件的用户名)作为下一个命令的输入。
xargs -L 1表示每次将一行输入作为参数传递给userdel -r命令。这样可以避免因用户名中可能包含空格等特殊情况而导致参数传递错误。
userdel -r是用于删除用户及其主目录的命令。-r选项表示在删除用户的同时,删除用户的主目录以及邮件池等相关文件。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Linux
如何
批量
删除
系统
相关帖子
Linux系统编程入门(下)
dify自动化批量询问LLM并且保存回复为文件
在鸡哥14x上安装Linux:Fedora 42 上手体验
海量数据如何“安家”?一文读懂哈希、范围和一致性哈希三大分片策略
软考高级“系统架构设计师”论文——论微服务架构及其应用
百度多线程批量推送
谷歌sitemap地图批量推送工具
Oracle如何修改账号密码版本?
推荐系统中神经网络超参数调优—经验顺序方法
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Linux系统编程入门(下)
0
781
卜笑
2025-09-07
业界
dify自动化批量询问LLM并且保存回复为文件
0
291
岳娅纯
2025-09-08
业界
在鸡哥14x上安装Linux:Fedora 42 上手体验
0
892
闰咄阅
2025-09-08
业界
海量数据如何“安家”?一文读懂哈希、范围和一致性哈希三大分片策略
0
293
田雅宁
2025-09-08
安全
软考高级“系统架构设计师”论文——论微服务架构及其应用
0
938
乱蚣
2025-09-08
软件
百度多线程批量推送
0
10
新程序
2025-09-09
软件
谷歌sitemap地图批量推送工具
0
9
新程序
2025-09-09
安全
Oracle如何修改账号密码版本?
0
321
倡遍竽
2025-09-09
安全
推荐系统中神经网络超参数调优—经验顺序方法
0
68
港髁
2025-09-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
科技
签约作者
程序园优秀签约作者
发帖
泥地锚
2025-6-9 13:44:04
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多