linux删除文件夹所属用户,linux基础命令--userdel 删除用户帐户和相关文件

描述

userdel命令用于删除用户帐户和相关文件。

userdel命令修改系统账户文件,删除所有涉及用户的信息,指定的用户(LOGIN)必须存在。

语法

userdel [options] LOGIN

选项列表

选项(常用的已加粗)

说明

-f, --force

强制删除用户账户,即使用户处于登录状态。它强制删除用户家目录和邮件池(一般在/var/spool/mail/目录下),即使其他用户家目录和指定的用户家目录同名或指定的用户没有邮件池。

如果在/etc/login.defs中将USERGROUPS_ENAB定义为yes,并且存在与删除的用户同名的组,那么这个组也会被删除,即使它是另一个用户的主组。

注意:该选项很危险,可能会导致系统处于不一致的情况,谨慎使用。

-r, --remove

删除用户的家目录和邮件池(文件),包括它们自身。必须搜索和手动删除其他文件系统下的相关文件

-R, --root CHROOT_DIR

指定在CHROOT_DIR(改变后的根目录)下更改生效以及使用CHROOT_DIR目录下的配置文件

-Z, --selinux-user

删除用户登录的任何SELinux用户映射

说明

应该先手动检查所有的文件系统,确保没有任何文件仍然属于该用户。

不能删除NIS客户端上的任何NIS属性,这必须在NIS服务器上执行。

如果正在运行属于该账户的进程,userdel将不会允许删除该账户;此时,你需要先kill该进程或锁定用户的口令(或账户),然后再删除账户;当前也可以使用-f选项强制删除。

如果/etc/login.defs的USERGROUPS_ENAB设置为yes, userdel将删除与用户同名的组。为了避免口令和组数据库中的不一致,userdel会检查该组不会作为另一个用户的主组,否则只会警告而不会删除组。-f选项可以强制删除该组

实例

分别使用-f和-r选项测试删除共享的主组。

[[email protected] ~]# ls -la /home/test/ /var/mail/test /var/spool/mail/test

-rw-rw---- 1 test mail 0 Apr 10 13:05 /var/mail/test

-rw-rw---- 1 test mail 0 Apr 10 13:05 /var/spool/mail/test

/home/test/:

total 16

drwx------ 2 test test 83 Apr 10 18:53 .

drwxr-xr-x. 5 root root 41 Apr 10 13:05 ..

-rw------- 1 test test 41 Apr 10 18:53 .bash_history

-rw-r--r-- 1 test test 18 Oct 31 01:07 .bash_logout

-rw-r--r-- 1 test test 193 Oct 31 01:07 .bash_profile

-rw-r--r-- 1 test test 231 Oct 31 01:07 .bashrc

[[email protected] ~]# useradd -g test test_userdel # 添加一个新用户,设置它的初始主组为用户test的主组

[[email protected] ~]# id test && id test_userdel                       # 共享一个用户组:test

uid=1002(test) gid=1002(test) groups=1002(test)

uid=1003(test_userdel) gid=1002(test) groups=1002(test)

[[email protected] ~]# userdel -r test                              # 删除用户test,提示不能删除组test,因为该组也是另一个用户的主组,但除用户组之外的信息都已经删除了。

userdel: group test is the primary group of another user and is not removed.

[[email protected] ~]# tail -2 /etc/passwd && tail -2 /etc/group               # 可以发现test组还存在,用户test已删除。

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

test_userdel:x:1003:1002::/home/test_userdel:/bin/bash

tss:x:59:

test:x:1002:

[[email protected] ~]# useradd -g test test                           # 恢复用户test,进行下一步测试。

[[email protected] ~]# id test && id test_userdel              # 对比两用户信息。

uid=1004(test) gid=1002(test) groups=1002(test)

uid=1003(test_userdel) gid=1002(test) groups=1002(test)

[[email protected] ~]# userdel -f test               # 可以看到跟使用-r选项不同的是使用-f选项没有报任何异常,强制性删除。

[[email protected] ~]# tail -2 /etc/passwd && tail -2 /etc/group              # 所有有关用户test的信息已删除,包括其主组,即使该组是另一个用户的主组。

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

test_userdel:x:1003:1002::/home/test_userdel:/bin/bash

stapdev:x:158:

tss:x:59:

[[email protected] ~]# id test_userdel                              # 可以发现/etc/group文件里已经没有组test文件的信息,用户test_userdel的gid是不存在的,无效的。

uid=1003(test_userdel) gid=1002 groups=1002

[[email protected] ~]# su - test_userdel

/usr/bin/id: cannot find name for group ID 1002 # 切换到该用户下提示没有找到用户的gid对应的组名

[[email protected] ~]$ touch a.txt # 但是依旧能创建一个文件,不过文件的属组是不存在的。

[[email protected] ~]$ ls -l a.txt

-rw-r--r-- 1 test_userdel 1002 0 Apr 15 15:36 a.txt

总结:删除一个用户账户,应该确保没有任何文件仍然属于该账户,而且应谨慎使用-f选项,手动检查用户组不被其他用户当作主组来使用,否则会导致组信息异常。

原文:https://www.cnblogs.com/yuelaoban/p/10710798.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值