如果用户被删除,如何创建一个 bash 脚本来删除目录的内容?假设我有一个user1
名为somedata
. 我想编写删除文件somedata
时删除文件的脚本user1
。
我正在尝试创建 bash 文件,该文件将在其中循环。到目前为止,我想出了:
#!/bin/bash
if userdel $user1
then
find . -name "somedata" -exec rm -rf
fi
您可能正在-r
寻找userdel
.
从手册页:
-r, --remove
用户主目录中的文件将连同主目录本身和用户的邮件假脱机一起被删除。必须手动搜索和删除位于其他文件系统中的文件。邮件假脱机由文件
MAIL_DIR
中的变量定义login.defs
。
请注意,用户可能会在其主目录之外创建文件,这些文件在用户被删除后更难跟踪。
删除用户后,将无法通过该名称找到“用户”。但是该find
实用程序有一个选项-nouser
可以提供帮助:
如果文件属于在 POSIX.1-2008(或等效)的系统接口卷中定义的getpwuid()函数返回 NULL 的用户 ID,则主文件应评估为真。
要使用它,首先只需列出无主文件(以验证这是您想要做的):
find / -nouser
或(大多数实现,但不在 POSIX 中):
find / -nouser -ls
如果列表没有找到意外文件,请继续删除它们:
find / -nouser -exec rm -rf {}+
我的版本deluser
带有一个--remove-all-files
选项。
该选项将扫描所有文件系统以查找用户拥有的文件并删除它们。