2016-02-06 115 views
-2

如何創建一個bash腳本,刪除用戶被刪除的目錄內容?假設我有一個user1和一個名爲somedata的文件。我想編寫腳本,當刪除user1時,將刪除文件somedata用戶在bash中刪除時刪除目錄

我想創建bash文件,將做它將循環。到目前爲止,我想出了:

#!/bin/bash 
if userdel $user1 
then 
find . -name "somedata" -exec rm -rf 
fi 
+0

爲了使此問題的範圍和責任範圍適當,您應該說明您嘗試了什麼以及您卡在哪裏。另外,問題的範圍還不清楚。任何合理的近期U * x系統都會在您移除用戶時處理這些事情。你沒有使用標準的管理工具嗎?爲什麼不? – tripleee

回答

0

My version of deluser配有--remove-all-files選項。

該選項將掃描用戶擁有的文件的所有文件系統並刪除它們。

1

您可能正在尋找到選項userdel
man page

-r, --remove 

文件在用戶的主目錄將隨着主目錄本身和用戶的郵件閥芯一起被除去。 位於其他文件系統中的文件將不得不被手動搜索和刪除。 郵件緩衝區由login.defs文件中的MAIL_DIR變量定義。

記住,一個用戶可能創建文件之外的主目錄的這是很難跟蹤用戶已被刪除後。

+0

用戶的以前的文件仍將顯示爲擁有相同的數字用戶ID;沒有用戶*名稱*與該id關聯了。 – chepner

1

一旦用戶被刪除,沒有「用戶」通過該名稱查找。但find工具有一個選項-nouser的幫助:

主要應如果文件屬於在POSIX.1-2008的系統接口的體積定義爲其getpwuid()功能的用戶ID評估爲真(或等效)返回NULL。

要使用它,首先只列出無主文件(以驗證這是你想要做什麼):

find/-nouser 
(,但不是在POSIX大多數實現)

或:

find/-nouser -ls 

,如果列表中沒有找到意想不到的文件,繼續和刪除它們:

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