使用userdel命令删除Linux用户的教程详解
serdel是什么
userdel 是一个底层用于删除用户的工具。在 Debian 上,我们通常会使用 deluser 命令。userdel 会查询系统账户文件,例如 /etc/password 和 /etc/group。那么它会删除所有和用户名相关的条目。在我们删除它之前,用户名必须存在。
如何使用userdel
由于 userdel 会修改系统账户文件,那么我们需要root特权来运行它。不然我们会遇到一个报错信息“只有root权限才能执行这项操作”或者类似的信息。在我们得到特权后,我们可以通过输入 userdel 从你的控制台删除用户。下面是一个默认使用 userdel 的样例。
$ sudo userdel pasadena
或者
# userdel pasadena
正如你所见,我们不能没有root权限而删除用户 pasadena。当我们有权限时,系统不会给出错误信息,这意味着用户已经成功删除。
完全删除用户家目录
不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。
当我们进入/home目录时,我们仍旧可以看到ID 1002拥有 pasadena 文件夹。已创建的用户通常会有一个与用户名相同的组名。1002是 pasadena 用户名的 UID 和 pasadena 组名的 GID。
为了在删除用户时完全删除家目录,我们可以使用 -r 选项。这个选项同样会删除用户的邮件池,如果存在的话。
强制删除一个用户
userdel 提供了 -f 选项来强制删除用户。甚至当用户已经登入 Linux 系统时此选项仍旧生效。请看一下示例截图。
截图的上面显示用户 pasadena 已经登录了系统。它被标记的进程6218是 SSHD 进程。而当我们用“userdel -f pasadena”只会显示已经登录的要被删除的用户信息。命令本身已经成功。如果我们使用cat 命令查看/etc/passwd的内容,我们看不到到用户 pasadena 存在了。他的家目录还存在但是所有者只能显示为数字ID。
有一件事我们必须了解,带 -f 选项的 userdel 不会断开 该用户已有的 SSH 链接。因此,即使用户已经不存在,但实际上仍是登录状态,并且是活跃用户。但是当用户登出后不可再登录,因为用户已经被删除。
因此所以这个选项使用起来有些危险,因为它会使你的系统进入不一致的状态。
总结
userdel 是一个 Linux 系统内部删除用户的工具。userdel同样是deluser命令的后端,这是一个用perl编写的删除用户的脚本。如往常一样,你可以输入man userdel来查看关于userdel命令的更多细节。
以上所述是小编给大家介绍的使用userdel命令删除Linux用户的教程详解 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!
- GitHub敏感信息扫描工具
- Java数据结构和算法(九)——高级排序
- Java数据结构和算法(十一)——红黑树
- Entity Framework Core 之数据库迁移
- 常见Web源码泄露总结
- 浅析Entity Framework Core2.0的日志记录与动态查询条件
- ASP.NET Core中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)
- 【weakfilescan】敏感文件扫描工具
- ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)
- ASP.NET Core中使用IOC三部曲(一.使用ASP.NET Core自带的IOC容器)
- CVE-2017-11882漏洞复现
- ASP.NET Core使用静态文件、目录游览与MIME类型管理
- Python 黑客——使用Python破解门禁系统
- ASP.NET Core文件上传与下载(多种上传方式)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 从零学Paddle系列-1 Paddle框架CNN相关API详解
- 智能搜索模型预估框架的建设与实践
- 1,Jupyter NoteBook 常用魔法命令
- 60行代码徒手实现深度神经网络
- 30行代码徒手实现logistic回归
- 8,模型的训练
- 在腾讯云上部署科学计算软件Amber
- 手把手教你搭建一个灰度发布环境
- Kibana: 如何使用 Search Bar
- 「PHP」以nginx、php-cgi为例,把nginx、php-cgi安装为Windows系统服务
- 聊聊dubbo-go的GenericFilter
- 知新 | koa框架入门到熟练第二章
- JVM学习二
- 微信小程序对接云开发录音文件识别nodejs sdk
- 利用python读取WORD文档中的创建者信息