论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
主机系统
›
linux
›
Linux中如何批量删除体系中所有的自建用户 ...
Linux中如何批量删除体系中所有的自建用户
东湖之滨
论坛元老
|
2024-11-21 18:31:13
|
显示全部楼层
|
阅读模式
楼主
主题
1857
|
帖子
1857
|
积分
5575
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、需求分析
在 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选项表示在删除用户的同时,删除用户的主目次以及邮件池等相关文件。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
东湖之滨
论坛元老
这个人很懒什么都没写!
楼主热帖
《HarmonyOS开发 - 小凌派-RK2206开发 ...
dotnet 6 为什么网络请求不跟随系统网 ...
大二C#实现酒店管理系统(C端展示、前 ...
VMware虚拟机安装黑群晖7.1
从0到1实现一套CICD流程之CD
当我们在聊「开源大数据调度系统Taier ...
ABP Framework 7.0 RC 新增功能简介 ...
RequestDispatcher具有什么功能呢? ...
MySQL视图
测试大姐提了个bug,为什么你多了个opti ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
人工智能
快速回复
返回顶部
返回列表