在bash中删除用户时删除目录

时间:2016-02-06 15:53:15

标签: linux bash scripting userdel

如何创建一个bash脚本,如果用户被删除,该脚本将删除目录内容?假设我有sizeof(treenode_t)和一些名为user1的文件。当删除somedata时,我想编写将删除文件somedata的脚本。

我正在尝试创建将在其中循环的bash文件。到目前为止,我提出了:

user1

3 个答案:

答案 0 :(得分:1)

您可能正在寻找-r的{​​{1}}选项 来自man page

userdel
     

用户主目录中的文件将与主目录本身和用户的邮件假脱机一起删除。   必须手动搜索和删除位于其他文件系统中的文件。   邮件假脱机由-r, --remove 文件中的MAIL_DIR变量定义。

请注意,用户可能会在其主目录的 之外创建文件,这些文件在删除用户后很难跟踪。

答案 1 :(得分:1)

用户被删除后,没有"用户"找到那个名字。但find实用程序有一个选项 -nouser 可以提供帮助:

  

如果文件属于用户ID,则主要应评估为true,对于该用户ID,POSIX.1-2008(或等效的)系统接口卷中定义的getpwuid()函数返回NULL。

要使用它,首先只列出无主文件(以验证这是你想要做的):

find / -nouser

或(大多数实现,但不在POSIX中):

find / -nouser -ls

如果列表找不到意外文件,请继续删除它们:

find / -nouser -exec rm -rf {}+ 

答案 2 :(得分:0)

My version of deluser附带--remove-all-files选项。

该选项将扫描所有文件系统以查找用户拥有的文件并删除它们。