2013-12-17 57 views
0

我已經開始學習Linux命令,並且正在做簡單的事情,比如添加新用戶和組並刪除它們。當我嘗試刪除使用語法「userdel username」創建的用戶時,它將被刪除而沒有任何問題,但是當我嘗試使用userdel -r用戶名執行相同操作時,它會生成我在標題中指定的錯誤。userdel命令產生「DIRECTORY_PATH不屬於USER,不能刪除」錯誤

注:我以root身份登錄時正在做所有這些事情。

回答

0

這是因爲用戶的住宅不是由username擁有,而是由另一個擁有。

檢查哪一個是grep username /etc/passwd(倒數第二個字段)並查看它的權限。

例如:

$ grep root /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
       ^^^^^ 

然後

$ ls -ld /root 
drwx------ 12 root root 4096 Oct 18 12:55 /root 
0

主目錄的所有權發生了變化。在使用userdel -r之前,請嘗試更改它的所有權:

# chown -R username ~username 

chown代表更改所有權。 -R告訴它遞歸到目錄中。用戶名是您想要更改所有權的帳戶的用戶名,〜username僅表示指定用戶的主目錄。該命令將主目錄及其中的所有內容的所有權更改回用戶。或者,你可以刪除主目錄手動,而無需改變任何東西的所有權:

# rm -Rf ~username 
# userdel username 

如果用波浪號前面加上用戶名不是指用戶的主目錄,你可以使用/ etc/passwd文件爲fidorqui建議。

$ grep username /etc/passwd 

(grep的=搜索文件或I/O流)

在/ etc/passwd中的每一行的格式如下: 密碼:用戶ID:GROUPID:評論(UID信息):home目錄:登錄外殼