当前位置:首页 > 操作系统 > 正文内容

Linux中怎么批量删去体系中所有的自建用户

邻居的猫1个月前 (12-09)操作系统1518

一、需求剖析

在 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选项表明在删去用户的一起,删去用户的主目录以及邮件池等相关文件。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=623

分享给朋友:

“Linux中怎么批量删去体系中所有的自建用户” 的相关文章

《痞子衡嵌入式半月刊》 第 111 期

《痞子衡嵌入式半月刊》 第 111 期

痞子衡嵌入式半月刊: 第 111 期 这儿共享嵌入式范畴有用风趣的项目/东西以及一些热点新闻,阴历年分二十四节气,期望在每个交节之日按时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或引荐你知道的嵌入式那些事儿。 上期...

linux根据端口查进程,使用lsof命令查端口对应的进程

linux根据端口查进程,使用lsof命令查端口对应的进程

在Linux系统中,你可以使用`netstat`或`ss`命令来根据端口查找相关进程。以下是一个基本的步骤指南:1. 使用`netstat`或`ss`命令列出所有活动的网络连接和监听端口。2. 使用`grep`命令过滤出你感兴趣的端口。3. 使用`awk`或`cut`命令提取出与该端口关联的进程ID...

Windows的桌面是指,什么是Windows的桌面?

Windows的桌面是指,什么是Windows的桌面?

Windows的桌面是指用户打开计算机后,首先看到的一个可视化界面。它包含了图标、任务栏、背景图片等元素。用户可以在桌面上放置各种应用程序的快捷方式,以便快速启动。同时,桌面也是用户与计算机交互的一个重要平台,用户可以通过桌面上的各种工具和应用程序来完成任务。什么是Windows的桌面?Window...

正常启动windows蓝屏,电脑启动Windows后出现蓝屏怎么办?全面解析及解决方法

正常启动windows蓝屏,电脑启动Windows后出现蓝屏怎么办?全面解析及解决方法

蓝屏错误(通常称为“蓝屏死机”或“BSOD”)是Windows操作系统中的一种严重错误,通常表示系统遇到了无法恢复的错误。蓝屏错误可能是由于多种原因引起的,包括硬件故障、驱动程序问题、软件冲突或系统文件损坏等。要解决蓝屏问题,您可以尝试以下步骤:1. 重启计算机:有时,简单的重启可以解决临时的问题。...

windows中的任务栏,个性化定制与高效操作指南

Windows的任务栏是一个位于桌面底部的小条,它提供了快速访问程序、文件、设置和其他功能的方式。任务栏通常包括以下几个部分:1. 开始按钮:点击开始按钮可以打开“开始”菜单,从那里可以访问程序、文件、设置、控制面板等。2. 程序图标:当你打开一个程序时,它的图标会出现在任务栏上。你可以通过点击这些...

windows10正版价格,windows10摄像头软件下载

windows10正版价格,windows10摄像头软件下载

Windows 10正版系统的价格根据版本和购买渠道的不同而有所差异。以下是微软官方商城提供的常见版本价格:1. Windows 10 家庭版:售价为1088元人民币。2. Windows 10 专业版:售价为1817元人民币。3. 从 Windows 10 家庭版升级至专业版:升级包价格为808元...