如何保證安全的最大化呢?量體裁衣,有的放矢,取舍得當是關鍵。現從以下幾個方面加以詳述。
控制文件的屬性和權限
密切關注文件的屬性和權限設置是保證主機文件系統完整性的至關緊要的操作。
兩種特殊的文件訪問權限分別是SUID(八進制為4000)和SGID(八進制為2000)。設置這兩種權限的文件,將使其它用戶在執行它們時擁有所有者的權限。也就是說,如果一個設置為SUID的程序,即使是普通用戶使用也是作為root來運行的。因此,SUID/SGID文件是安全的隱患。
SUID和SGID攻擊方式的預防:
1.嚴格審查系統內的文件權限。可以找出系統內使用SUID/SGID的文件,列出清單保存,做到心中有數。命令如下:
[root#] find / -type f -perm +6000 -ls | less
[root#] find / -type f -perm +6000 > Suid-Sgid.txt
2.對于一部分程序必須設置為SUID的,可以讓它們自成一組,集中管理。但是絕對不允許在用戶的家目錄下有SUID程序存在。
3.確保重要的SUID腳本不可寫。命令如下:
[root#] find / -perm -2 ! -type l -ls
4.對于并非絕對需要被設置成SUID的程序,改變它們的訪問權限或者卸載程序。如:
[root#] chmod -s [program]
5.查找系統內所有不屬于任何用戶和組的文件。因為這些文件很容易被利用來獲得入侵主機的權限,造成潛在的威脅。命令如下:
[root#] find / -nouser -o -nogroup
6.善于使用lsattr和chattr這兩個ext2/3的屬性命令。本文將主要討論a屬性和i屬性,因為這兩個屬性對于提高文件系統的安全性和保障文件系統的完整性有很大的好處。a屬性(Append-only),系統只允許在這個文件之后追加數據,不允許任何進程覆蓋或截斷這個文件。如果目錄具有這個屬性,系統將只允許在這個目錄下建立和修改文件,而不允許刪除任何文件。i屬性(Immutable),系統不允許對這個文件進行任何的修改。如果目錄具有這個屬性,那么任何進程只能修改目錄之下的文件,不允許建立和刪除文件。
如果主機直接暴露在因特網或者位于其它危險(如其它非管理員亦可接觸服務器)環境,有很多Shell賬戶或提供HTTP和FTP等網絡服務,一般應該在安裝配置完成后使用如下命令,便于保護這些重要目錄:
[root#] chattr -R +i /bin /boot /etc /lib /sbin
[root#] chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
[root#] chattr +a /var/log/messages /var/log/secure......
如果很少對賬戶進行添加、變更或刪除操作,把/home本身設置為Immutable屬性也不會造成什么問題。
在很多情況下,整個/usr目錄樹也應該具有不可改變屬性。實際上,除了對/usr目錄使用chattr -R +i /usr/命令外,還可以在/etc/fstab文件中使用ro選項,使/usr目錄所在的分區以只讀的方式加載。
另外,把系統日志文件設置為只能添加屬性(Append-only),將使入侵者無法擦除自己的蹤跡,以便于執法人員取證、分析。
文件系統的完整性檢查
完整性是安全系統的核心屬性。管理員需要知道是否有文件被惡意改動過。攻擊者可以用很多方法破壞文件系統,例如,可以利用錯誤配置獲得權限,也可以修改文件植入特洛伊木馬和病毒。Linux中常用如下工具進行校驗檢查。
1.md5sum
md5sum 命令可以用來創建長度為128位的文件指紋信息。通過md5sum -c命令可以反向檢查文件是否被修改過。黑客進入到系統后,會用修改后的文件來取代系統上某些特定的文件,如netstat命令等。于是當使用 netstat -a命令查看系統狀態時,不會顯示系統攻擊者存在的信息。攻擊者還可能會替代所有可能泄露其存在的文件,一般來說包括:
/bin/ps、/bin/netstat、/bin/login、/bin/ls、
/usr/bin/top、/usr/bin/passwd、/usr/bin/top、
/sbin/portmap、/etc/xinetd.conf、/etc/services。
這些文件都是替代的對象。由于這些文件已經被取代,那么簡單地利用ls命令是查看不出這些文件有什么破綻的。因此你需要用md5sum工具在系統安裝前期為這些文件做好指紋認證并保存,以備日后檢測所用。
2.RPM安裝包
如果使用的是基于RPM的安裝包(Red Hat公司開發并包含在其Linux產品之中的多功能軟件安裝管理器,現有多種版本的Linux使用此管理器,如Red Hat、 TurboLinux),它可以用來建立、安裝、查詢、檢驗、升級和卸載獨立的軟件包。一個完整的RPM包包括壓縮文件和包信息。當使用RPM安裝軟件時,RPM為每個被安裝的文件向數據庫中添加信息,包括MD5校驗和、文件大小、文件類型、擁有者、組和權限模式。當RPM以-verify標志運行時,將把初始文件的值與當前安裝的文件進行比較并報告差異。例如,下面是對一個被黑站點的運行結果:
# rpm -qf /bin/ps(或# rpm -qf /usr/bin/top 查看命令隸屬哪個RPM包)
procps.2.0.2-2
# rpm -V procps(-V MD5檢驗)
SM5..UGT /bin/ps
SM5..UGT /usr/bin/top(有消息表示此文件已被修改)
由上可以看出,攻擊者已經入侵到系統中,并且用自己的ps及top命令替代了原來系統中的命令,從而使管理員看不到其運行的進程。RPM的使用方法很多,具體操作方法參見man rpm文檔。
3.Tripwire
Tripwire是一個用來檢測整個系統是否存在惡意代碼和檢驗文件完整性的有用工具。它采用MD5算法生成128位的“指紋”,通過命令自動保存系統快照,再產生相應的MD5數值以供日后比較判斷。
使用Tripwire可以定義哪些文件/目錄需要被檢驗。一般默認設置能滿足大多數的要求。該工具運行在四種模式下:數據庫生成模式、數據庫更新模式、文件完整性檢查模式、互動式數據庫更新模式。當初始化數據庫生成的時候,它生成對現有文件各種信息的數據庫文件。為預防以后系統文件或者配置文件被意外地改變、替換或刪除,它將每天基于原始數據庫對現有文件進行比較,以發現哪些文件被更改、是否有系統入侵等意外事件發生。當然,如果系統中的配置文件或程序被更改,則需要再次生成數據庫文件,保持最新的系統快照。此軟件功能強大,使用方便。具體的安裝和使用,可以通過Google搜索獲得。
有效控制服務器運行的后臺進程
服務進程(Daemon)是Linux操作系統的核心程序,是外界與主機互相交互的主要途徑,同時也是連接因特網的大門。正因為運行了不同的服務進程,Linux系統才能夠提供不同的服務,網絡才變得豐富多彩。一個稱職的管理員必須掌握以下幾個要領:
1. 要對自己的服務器有足夠的了解,清楚每臺服務器的所有后臺進程,了解哪臺主機運行了哪些服務,開放了哪些端口。我們可以用以下方法得到服務器的配置:
# ntsysv (或 setup) (列出所有的服務清單,可以選擇安裝/卸載)
# less /etc/services (列出所有服務運行的端口)
# ps -auxf > daemons.txt(推薦使用,把所有后臺打印列表)
# cd /var/run/|ls -al(查看啟動服務的進程號文件)
2. 對每個服務都要做好軟件版本號的登記歸檔,密切注意各服務軟件的漏洞,盡快升級或打補丁。如bind軟件在8.X存在安全漏洞,應該盡快升級到9.X。
3.尤其要注意的是,新手們總是認為把服務運行起來工作就已經做完了,其實這是不對的。當服務進程運行起來后,配置文件的優化處理相當重要。比如, Apache的配置文件中,KeepAlive、MaxKeepAliveRequests、KeepAliveTimeout、 StarServers、MinSpareServers、MaxSpareServers、MaxClients、 MaxRequestsPerChild對機器性能的影響都非常重要。所以,需要常去網上論壇了解最新信息和發展動態,從而更好地守住每個進出的要口。管理員應該常去的網站鏈接http://www.linuxsecurity.com。
同時還要特別注意以下幾方面:
配置獨立的專用服務器,增加負荷能力,降低風險
Linux 作為優秀的網絡操作平臺,完全有能力勝任運行多個服務器。比如,它可以作為Web服務器,同時也可以充當FTP服務器和Mail服務器。這樣做的好處在于能夠降低投資成本,但是不安全因素也會隨之相應增加。因此,需要在投資成本與安全最大化之間權衡。假如電腦連接因特網,提供多種服務,且每天都要提供大量訪問量時,建議一“不要把所有的雞蛋放在同一個籃子里”。把各個服務進程運行在不同的主機上,成為專用的Web服務器,FTP服務器或Mail服務器,共同分擔風險。建議二把各種服務分類管理。在FTP服務器和Mail服務器訪問量不大時,也可以把它們統一管理。
取消所有非必要的服務,盡量做到干凈,減少后門
把Linux作為專用服務器是個明智的舉措。例如,希望Linux成為強大的Web服務器,可以取消系統內所有非必要的服務,只開啟必要服務。這樣做可以盡量減少后門,降低隱患,而且可以合理分配系統資源,提高整機性能。以下是幾個不常用的服務:
1. fingerd(finger服務器)報告指定用戶的個人信息,包括用戶名、真實姓名、shell、目錄和聯系方式,它將使系統暴露在不受歡迎的情報收集活動下,應避免啟動此服務。
2. R服務(rshd、rlogin、rwhod、rexec)提供各種級別的命令,它們可以在遠程主機上運行或與遠程主機交互,在封閉的網絡環境中登錄而不再要求輸入用戶名和口令,相當方便。然而在公共服務器上就會暴露問題,導致安全威脅。
3. X-Window從嚴格的意義上說,是Linux窗口管理器的擴展,而不是重要組成部分。從目前的GNOME、KDE這兩種主流圖形服務器來看,體積越來越臃腫,耗存越來越大,一些基于圖形界面的軟件在使用上也存在不少問題。雖然開發人員不會放棄對它的完善,但對于服務器來說,它的存在價值幾乎沒有。因此,在安裝服務器時,務必考慮是否真的需要圖形管理界面。
4. 其它服務,如amd、arpwatch、atd、dhcpd、innd、nntpd、talkd、lpd、named、routed、snmpd、 xfs、wuftpd、tftpd、telnet、ypbind、yppasswd、ypserv,既然是Web服務器,都可以取消或卸載掉。
同理,如果是作為FTP服務器運行,只需FTP進程和必要的程序。
安全系數高的服務替代正在運行的服務進程
對于一些必要的服務器,如前所說的Web服務器,理論上只需要Apache的進程就可以工作了。但是如果管理員需要遠程控制放在運營中心的主機呢?或者用戶需要通過FTP上傳更新資料呢?Telnet、wu-ftp這些服務的安全性太低,這時,就需要啟用安全級別高的服務來替代這些服務程序。以下為幾個需要替代的進程:
1.用OpenSSH替代Telnet
推薦使用開放軟件OpenSSH(Secure Shell),這是一個安全的登錄系統,且不受加密方法的出口限制,適用于替代Telnet、rlogin、rsh、rcp、rdist。另外, OpenSSH也可以用來在兩臺計算機間建立一條加密信道供其它不安全軟件使用。OpenSSH支持多種算法,包括BlowFish、Triple DES、IDEA、RSA。目前支持SSH的客戶端軟件不少,推薦使用Putty和Filezilla。關于服務器和軟件的安裝使用,請參見相關文章,在此不再詳述。
2.用Vsftpd替代wu-ftpd、tftpd(基本的FTP服務)、ncftpd(匿名服務)
如果想要一個優秀的FTP軟件,建議使用Vsftpd。Vsftpd(Very Secure)是一個非常值得信賴的FTP軟件。除了與生俱來的高安全性外,在ASCⅡ傳輸模式下的速度是wu-ftpd的兩倍,在千兆以太網的下載速度可達86Mb/s;在穩定性方面,Vsftpd可以在單機(非集群)上支持4000~15000個以上的并發用戶同時連接。除此以外,還可以建立虛擬 FTP服務器,支持非系統用戶的登錄下載,同時也可以給不同的用戶分配不同的權限,保證服務的安全最大化。現在世界上很多著名的公司都在使用 Vsftpd,如Red Hat、GNU、GNOME、SuSe、KDE、OpenBSD等。具體安裝和配置請見參考資料。
3.用Qmail替代Sendmail
Sendmail 將來仍然是主要的SMTP服務器,網絡上有關Sendmail服務器的配置資料隨處可見。但事實上由于Sendmail代碼的復雜性,使得很多人對其配置一知半解。多數情況下,新手們往往只要能夠讓Sendmail啟動起來、能收發郵件就覺得萬事大吉了。這樣的配置其實漏洞太多,難以保證安全性。所以, Qmail是個更好的選擇。當然,要想真正建立一個功能強大、運行穩定的郵件服務器,掌握其靈活的配置,認真閱讀How-to手冊和FAQ是很有必要的。
使用tcpwrappers控制文件
在沒有設置防火墻之前,可以通過一種簡單而可靠的機制——tcpwrappers來加強網絡訪問控制。tcpwrappers從兩個文件中讀取網絡訪問控制規則:
/etc/hosts.allow 指定授權主機
/etc/hosts.deny 指定非授權主機
配置文件的編寫規則非常簡單,一般是:
services_list : client_list [ : shell_command ]
1. 如果client及services滿足hosts.allow里面的條目,那么訪問將被允許。
2. 如果client及services滿足hosts.deny里面的條目,那么訪問將被禁止。
3. 如果以上兩條都不滿足,訪問將被允許。
4. 如果訪問控制文件不存在,將被當作空規則文件處理。所以可以通過刪除訪問控制文件來關閉訪問限制。
其中services_list可以列出一個或幾個服務進程名,也可以使用通配符;client_list可以是IP地址、主機名或者網絡號,也可以使用通配符。
services_list有兩個特殊用法的符號:ALL和EXCEPT。ALL表示所有的進程,而EXCEPT表示排除某個進程。比如,ALL EXCEPT in.fingerd表示除了in.fingerd外所有的進程。
client_list可以使用如下通配符:
1. “.”號在字符串前匹配所有后面部分和所提供字符串一樣的主機名。比如:.xssz.net可以匹配www.xssz.net或mail.xssz.net。
2. “.”號在字符串后匹配以所提供字符串開頭的地址,比如,10.44.可以匹配所有10.44.xxx.xxx的地址。
3. 可以使用n.n.n.n/m.m.m.m的格式來表示net/mask,比如,10.44.72.0/255.255.254.0匹配從10.44.72.0到10.44.73.255的地址。
4. 以“/”號開頭的字符串將被看作一個文件處理,它匹配所有在這個文件中列出的主機名或者地址。
5. “@”開頭的串將被當作一個NIS組的名字。
6. ALL表示所有的主機,LOCAL匹配所有機器名中不帶“.”號的主機,EXCEPT表示排除某些主機。
比如,hosts.allow中有一行,ALL: .edu.cn EXCEPT example.edu.cn表示允許除了主機名叫example.edu.cn 以外的所有.edu.cn域內的機器訪問所有的服務。而在hosts.deny中,ALL EXCEPT in.fingerd:192.168.0.0/255.255.255.0則表示禁止192.168.0.1到192.168.0.254的機器訪問除了in.fingerd以外的服務。
防火墻的選用和配置
前面介紹了tcpwrappers的詳細應用,但是對管理員而言,只有經過Internet的考驗才能真正得到直接有效的磨煉和提高。如何分辨和抵擋 Internet上形形色色的信息呢?僅僅 tcpwrappers是不夠的,關鍵是防火墻的選用和配置。配置高效的防火墻是管理員要掌握的十分重要而且非常有效的必修課。在此,防火墻的功能和類型就不介紹了。最主要的是防火墻的構建要量身定制,應從企業自身狀況和需求特點來考慮所需要的防火墻解決方案。不同規模、不同類型的企業,其網絡保護的要求也存在明顯的差異。防火墻是個重要的話題,在這里限于篇幅不可能詳細分析每一種配置。有興趣的朋友可以詳見參考資料http://linux-firewall-tools.com/linux/faq/index3.html,這是個很不錯的主題。
入侵檢測系統
對攻擊者來說,端口掃描是入侵主機的必備工作,可以用端口掃描程序掃描服務器的所有端口來收集有用的信息,如哪些端口打開、哪些端口關閉、提供服務的程序版本、操作系統的版本等。下面介紹幾種對付端口掃描的工具。
1. PortSentry
PortSentry是一個被設計成實時地發現端口掃描并對端口掃描快速作出反應的檢測工具。一旦發現端口掃描,PortSentry做出的反應有:
(1)通過syslog()函數給出一個日志消息;
(2)自動地把對服務器進行端口掃描的主機加到tcp wrappers的/etc/hosts.deny文件中;
(3)本地主機會自動把所有的信息流都重定向到一個不存在的主機;
(4)本地主機用包過濾程序把所有的數據包(來自對其進行端口掃描的主機)都過濾掉。
該軟件的安裝和使用可按照源碼包里的手冊進行,也可以參考http://www.linuxsecurity.com/tips/tip-23.html中的介紹,但是這里的下載鏈接已不能使用,讀者可以去rpmfind.net查找下載。簡單地介紹一下配置和啟動步驟:
(1)配置/usr/psionic/portsentry/portsentry.conf文件
/usr/psionic/portsentry/portsentry.conf是PortSentry的主要配置文件。可以設置需要監聽的端口、需要禁止和監控的IP地址等。可以參看PortSentry的README.install文件以獲取更多的信息。
(2)配置portsentry.ignore文件
在portsentry.ignore文件中設置希望PortSentry忽略的主機。這個文件至少要包括localhost(127.0.0.1)和本地界面(lo)的IP。
(3)最好改變文件默認的權限:
#chmod 600 /usr/psionic/portsentry/portsentry.conf
#chmod 600 /usr/psionic/portsentry/portsentry.ignore
(4)啟動PortSentry
PortSentry程序可以配置在6個不同的模式下運行,但每次啟動時只能在一種模式下運行。這些模式是:
◆ portsentry -tcp(基本的端口綁定TCP模式)
◆ portsentry -udp 基本的端口綁定UDP 模式)
◆ portsentry -stcp(秘密的TCP掃描檢測)
◆ portsentry -atcp(高級TCP秘密掃描檢測)
◆ portsentry -sudp(秘密的UDP掃描檢測)
◆ portsentry -audp(高級的秘密UDP掃描檢測)
推薦使用最后兩種模式檢測。建立啟動腳本:
# vi /etc/init.d/portsentry
/usr/local/portsentry/portsentry sudp
/usr/local/portsentry/portsentry audp
# chmod a+x ./portsentry(建立啟動腳本)
# cd /etc/rc.d/rc3.d/ ; ln -s ../init.d/portsentry S60portsentry(建立軟鏈接啟動)
2. chkrootkit
另一個有用的工具是chkrootkit。chkrootkit是設計用來檢查許多廣為人知的rootkit(一組包括常用木馬程序的套件,以方便 cracker攻入主機時, 在受害主機上順利地編譯和安裝特洛伊木馬程序)。在chkrootkit的網站上會公布最新的rootkit列表。
配置chkrookit非常簡單:先從http://www.chkrootkit.com下載源代碼,解開軟件包,在文件被解開的路徑里敲入make。完成后,chkrootkit就隨時侯命了。下面是在機器上chkrootkit的一個輸出的例子:
# ./chkrootkit
Checking `su'... not infected
Checking `ifconfig'... not infected
Checking `inetd'... not tested
Checking `inetdconf'... not found
Checking `identd'... not infected
Checking `init'... not infected
Checking `killall'... not infected
Checking `login'... not infected
Checking `ls'... not infected
Checking `lsof'... not infected
Checking `mail'... not infected
Checking `mingetty'... not infected
Checking `netstat'... not infected
Checking `named'... not infected
Checking `passwd'... not infected
[...]
由上可以看到,系統中重要的一些命令并沒有被改變。chkrootkit是一個很不錯的實用工具,它可以進一步讓我們放心:機器目前是安全的。
3.secheck
個人推薦一個比較好的檢測工具secheck,這個軟件安裝簡單,檢測范圍廣,記錄文件條目簡明,資料詳細。它可以檢測開放端口列表、登錄用戶、磁盤空間情況;檢查UID和GID為0的非root用戶、弱口令用戶、正在運行的系統進程、su root的用戶;檢測有SUID和SGID標識的命令,以及相關password、shadow、xinetd.conf、.rhosts文件的變化等。建議配合crontab做定時檢查,命令如下(每隔一小時做一次檢查):
00 * * * * /usr/local/etc/secheck/secheck
可以從http://twtelecom.dl.sourceforge.net/secheck/secheck-0.03.tgz下載感受一下。
災難恢復
盡管已經采用了許多的安全措施來保護主機穩定運行,但是遇到一些意外情況,如停電、硬件故障或地震等仍有可能發生系統崩潰事件。要想在最短時間內恢復系統,必須事先做好備份工作。
在進行備份之前,首先要選擇合適的備份策略,包括何時需要備份,以及出現故障時進行恢復的方式。通常使用的備份方式有三種:
1.完全備份
每隔一定時間就對系統進行一次全面的備份,這樣在備份間隔期間出現數據丟失等問題,可以使用上一次的備份數據恢復到前次備份時的數據狀況。
2.增量備份
首先進行一次完全備份,然后每隔一個較短時間進行一次備份,但僅備份在這個期間更改的內容。這樣一旦發生數據丟失,首先恢復到前一個完全備份,然后按日期逐個恢復每天的備份,就能恢復到前一天的情況。這種備份方法比較經濟。
3.累計備份
這種備份方法與增量備份相似,首先每月進行一次完全備份,然后備份從上次進行完全備份后更改的全部數據文件。一旦發生數據丟失,使用一個完全備份和一個累計備份就可以恢復故障以前的狀態。累計備份只需兩次恢復,因此它的恢復工作相對簡單。
備份內容 工作量 恢復步驟 恢復速度 優缺點
完全備份 全部內容 大,慢 一次操作 很快 占用空間大,恢復快
增量備份 每次修改后的單個內容 小,很快 多次操作 中 空間小,恢復麻煩
累計備份 每次修改后的所有內容 中,快 二次操作 快 空間較小,恢復快
增量備份和累計備份都能以比較經濟的方式對系統進行備份。如果系統數據更新不是太頻繁的話,可以選用累計備份。如果系統數據更新太快,使每個備份周期后的幾次累計備份的數據量相當大,這時候可以考慮增量備份或混用累計備份和增量備份的方式,或者縮短備份周期。下面是一個有效的備份方式供參考。
假設備份介質為支持熱插拔的硬盤,掛接在/backup目錄下:
# tar zcvf /backup/bp_full.tar.gz /*(先做一個完全備份)
# find / -mtime -7 -print > /tmp/filelist(找出7天內修改過的文件)
# tar -c -T /tmp/filelist -f /backup/bp_add.tar.gz(每隔7天做增量備份)
其它建議和技巧
1.用密碼保護單用戶模式。
# vi /etc/lilo.conf
restricted
password="I am admin"
2.修改/etc/inittab文件。
# ca::ctrlaltdel:/sbin/shutdown -t3 -r now
#表示取消Alt+Ctrl+Delete重啟機器
3.刪除登錄信息(不顯示內核版本,主機名,發行版本號及一些后臺進程的版本號),這樣可以從一定程度上防止別有用心的探測。
# cat /dev/null > /etc/issue
# cat /dev/null > /etc/issue.net
# cat /dev/null > /etc/motd
4.設置密碼屬性,包括有效時間(-e)、失效時間、警告時間(-w)等。修改缺省的密碼長度。
# vi /etc/login.defs
PASS_MAX_DAYS 99999(設置密碼有效期限)
PASS_MIN_DAYS 0(設置修改密碼的最少時間段)
PASS_MIN_LEN 5(修改密碼設置的長度)
PASS_WARN_AGE 7(修改改變密碼的告警時間)
修改為:
PASS_MAX_DAYS 30 (30天后必須重新設置)
PASS_MIN_LEN 8 (密碼長度不得少于8位)
5.默認賬號的管理。查看/etc/passwd 文件,刪除多余的賬號,檢查有沒有除root外UID、GID為0的其它非法用戶。
6.如果正在接手的是一個新的服務器,那么對原先的配置必須有深刻的了解。要刪除一些舊的系統賬戶應注意以下問題:
(1) 刪除用戶與其home目錄
# userdel -r good
(2) 刪除用戶未接收的郵件
# rm /var/spool/mail/good
(3) 刪除由此用戶在后臺執行的程序
# ps -aux|grep "good"
# kill PID
(4) 刪除crontab 任務
# crontab -l good
# crontab -d good
7.應該取消普通用戶的控制臺訪問權限,比如shutdown、reboot、halt等命令。
# rm -f /etc/security/console.apps/*
*表示要注銷的程序名,如halt、shutdown
8.修改/etc/profile文件中的“HISTFILESIZE”和“HISTSIZE”行,確定所有用戶的.bash_history文件中可以保存的舊命令條數。編輯profile文件(vi /etc/profile),把下面這行改為:
HISTFILESIZE=30
HISTSIZE=30
表示每個用戶的.bash_history文件只可以保存30條舊命令。
9.編輯.bash_logout文件。
# vi /etc/skel/.bash_logou(添加下面這行)
# rm -f $HOME/.bash_history
這樣,當用戶每次注銷時,.bash_history文件自動被刪除。