在Linux上刪除一個使用者所涉及的事情比你想象的要多。如果您是系統管理員,則需要從系統中清除帳戶及其訪問許可權的所有跟蹤。我們會告訴你要採取的步驟。
如果您只想從系統中刪除使用者帳戶,而不想結束任何正在執行的程序和其他清理任務,請按照下面“刪除使用者帳戶”部分中的步驟進行操作。在基於Debian的發行版上需要deluser命令,在其他Linux發行版上需要userdel命令。
自從第一個分時系統在20世紀60年代初出現並帶來了讓多個使用者在一臺計算機上工作的能力以來,就需要將每個使用者的檔案和資料與所有其他使用者隔離開來。於是使用者帳號和密碼就誕生了。
使用者帳戶有管理開銷。它們需要在使用者第一次需要訪問計算機時建立。當不再需要訪問時,它們需要被移除。在Linux上,為了正確而系統地從計算機中刪除使用者、他們的檔案和他們的帳戶,應該遵循一系列步驟。
如果你是系統管理員,責任就落在你身上。這是怎麼做的。
可能有許多原因需要刪除帳戶。一名員工可能會調到另一個團隊,或者乾脆離開公司。該帳戶可能是為與另一家公司的訪問者進行短期合作而設定的。團隊合作在學術界很常見,研究專案可以跨越院系、不同的大學,甚至商業實體。在專案結束時,系統管理員必須執行內務管理並刪除不必要的帳戶。
最壞的情況是,有人因為輕罪而離開。這類事件通常是突然發生的,沒有什麼先兆。這使得系統管理員幾乎沒有時間進行計劃,並且迫切需要鎖定、關閉和刪除帳戶,並備份使用者檔案的副本,以防關閉後的取證需要這些檔案。
在我們的場景中,我們將假裝使用者Eric已經做了一些事情,保證他立即從該場所移除。這時他不知道這件事,他還在工作,登入了。你一點頭,他就要被護送出大樓。
一切都準備好了。所有的眼睛都盯著你。
讓我們看看他是否真的登入了,如果是的話,他正在處理多少個會話。who命令將列出活動會話。
whoEric登入過一次。讓我們看看他在執行什麼程序。
我們可以使用ps命令列出這個使用者正在執行的程序。u(使用者)選項允許我們告訴ps將其輸出限制為在該使用者帳戶的所有權下執行的程序。
ps -u eric我們可以使用top命令看到具有更多資訊的相同程序。top還有一個-U(使用者)選項,用於將輸出限制為單個使用者擁有的程序。請注意,這一次它是一個大寫的“U”
top -U eric我們可以看到每個任務的記憶體和CPU使用情況,並可以快速查詢任何可疑活動。我們將強制終止他的所有程序,因此最安全的做法是花點時間快速檢查這些程序,並檢查並確保在您終止使用者帳戶的程序時不會給其他使用者帶來不便。
看起來他做的不多,只是少用檢視檔案。我們可以繼續。但是在我們殺死他的程序之前,我們會鎖定密碼來凍結帳戶。
相關:如何使用ps命令監視Linux程序
在終止程序之前,我們將鎖定帳戶,因為當我們終止程序時,它將登出使用者。如果我們已經更改了他的密碼,他就無法登入了。
加密的使用者密碼儲存在/etc/shadow檔案中。您通常不會為接下來的步驟操心,但是為了在鎖定帳戶時可以看到/etc/shadow檔案中發生了什麼,我們將稍微繞道。我們可以使用以下命令檢視eric使用者帳戶條目的前兩個欄位。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadowawk命令解析文字檔案中的欄位,並可選地對其進行操作。我們使用-F(欄位分隔符)選項告訴awk檔案使用冒號“:”分隔欄位。我們要找一條有“埃裡克”圖案的線。對於匹配行,我們將列印第一個和第二個欄位。這些是帳戶名和加密密碼。
使用者帳戶eric的條目是為我們列印的。
要鎖定帳戶,我們使用passwd命令。我們將使用-l(lock)選項並傳入要鎖定的使用者帳戶的名稱。
sudo passwd -l eric如果我們再次檢查/etc/passwd檔案,就會看到發生了什麼。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow在加密密碼的開頭添加了感嘆號。它不會覆蓋第一個字元,只是新增到密碼的開頭。這就是阻止使用者登入到該帳戶所需的全部內容。
既然我們已經阻止了使用者重新登入,我們就可以終止他的程序並將其登出。
殺死使用者程序的方法有很多種,但是這裡顯示的命令是廣泛可用的,並且是比其他一些方法更現代的實現。pkill命令將查詢並終止程序。我們正在傳遞KILL訊號,並使用-u(使用者)選項。
sudo pkill -KILL -u eric您將以一種絕對反**的方式返回到命令提示符。為了確定發生了什麼,我們再檢查一下是誰:
who他的療程結束了。他被登出了,他的程式也被停止了。這就消除了局勢的一些緊迫性。現在我們可以放鬆一下,繼續掃蕩剩下的東西,保安走到埃裡克的辦公桌旁。
相關:如何從Linux終端終止程序
在這樣的場景中,將來需要訪問使用者的檔案,這不是不可能的。無論是作為調查的一部分,還是僅僅因為他們的替代者可能需要參考他們前任的工作。我們將使用tar命令來歸檔他們的整個主目錄。
我們使用的選項有:
許多螢幕輸出將在終端視窗中滾動。要檢查存檔是否已建立,請使用ls命令。我們使用的是-l(長格式)和-h(人類可讀)選項。
ls -lh eric-20200802.tar.bz已建立722 MB的檔案。這可以複製到安全的地方,以備日後審查。
我們最好檢查一下,以防有任何cron作業安排給使用者帳戶。cron作業是在指定時間或間隔觸發的命令。我們可以使用ls檢查是否有任何cron作業計劃用於此使用者帳戶:
sudo ls -lh /var/spool/cron/crontabs/eric如果此位置中存在任何內容,則表示有cron作業排隊等待該使用者帳戶。我們可以用這個crontab命令刪除它們。-r(remove)選項將刪除作業,-u(user)選項告訴crontab要刪除誰的作業。
sudo crontab -r -u eric作業將自動刪除。據我們所知,如果埃裡克懷疑他即將被驅逐,他可能安排了一個惡意的工作。這一步是最佳實踐。
可能使用者有掛起的列印作業?只是為了確保,我們可以清除屬於使用者帳戶的任何作業的列印佇列。lprm命令從列印佇列中刪除作業。使用-U(使用者名稱)選項可以刪除命名使用者帳戶擁有的作業:
lprm -U eric作業將被刪除,並返回到命令列。
我們已經備份了/home/eric/directory中的檔案,因此我們可以繼續刪除使用者帳戶,同時刪除/home/eric/directory。
要使用的命令取決於您使用的Linux發行版。對於基於Debian的Linux發行版,命令是deluser,對於Linux世界的其他地方,命令是userdel。
實際上,在Ubuntu上這兩個命令都是可用的。我有一半希望其中一個是另一個的別名,但它們是不同的二進位制檔案。
type deluser type userdel儘管兩者都可用,但建議在Debian衍生髮行版上使用deluser:
“userdel是一個用於刪除使用者的低階實用程式。在Debian上,管理員通常應該改用deluser(8)。”
這很清楚,所以在這個Ubuntu計算機上使用的命令是deluser。因為我們還希望刪除它們的主目錄,所以我們使用--remove home標誌:
sudo deluser --remove-home eric用於非Debian發行版的命令是userdel,帶有--remove標誌:
sudo userdel --remove eric使用者帳戶的所有痕跡都已清除。我們可以檢查/home/eric/目錄是否已被刪除:
ls /homeeric組也已被刪除,因為使用者帳戶eric是其中唯一的條目。透過grep將/etc/group的內容管道化,我們可以很容易地檢查這一點:
sudo less /etc/group | grep eric埃裡克,為了他的罪,已經走了。安全人員仍在把他帶出大樓,而你已經保護並存檔了他的檔案,刪除了他的帳戶,清除了系統中的任何殘餘。
準確總是勝過速度。在你採取行動之前,一定要考慮每一步。你不會希望有人走到你的辦公桌前說“不,另一個埃裡克。”
...間很快就用完了。如果您面臨這個問題,我們將向您展示如何在iCloud上釋放一些空間。icloud儲存成本是多少?幸運的是,iCloud儲存並不十分昂貴。如果您想升級到更大的計劃,而不是刪除資料以釋放現有儲存空間,以下是您的選...
...隱私問題上一直受到嚴重批評。現在該公司正試圖重建與使用者的信任。這樣做的一個方法是引入一些工具,讓使用者可以看到自己的Facebook資料,並對這些資料進行更多的控制。離開Facebook的活動工具允許使用者控制Facebook從其...
... 亞馬遜只允許使用者刪除一天以內的錄音,這可能有實際原因。但是,我們希望看到這種擴充套件,以便使用者可以刪除儲存在較長時間內的資料,或者最好是刪除您說過的所有內容。...
如果您在個人計算機上執行Linux,那麼使用者管理是非常簡單的。但是,對於那些擁有成千上萬使用者的伺服器的使用者來說,管理成為一個需要注意的重要問題。 ...
...明,你需要遵循刪除flashplayer為好。在這裡,我們將展示如何在macOS中做到這一點。 ...
...器。但仍然需要其他包管理器,因為Pacman不支援來自Arch使用者儲存庫的包。 ...