官术网_书友最值得收藏!

認證目標4.05 安全增強型Linux入門

SELinux(Security-Enhanced Linux)是由美國國家安全局開發的安全增強型Linux,目的是提供強制訪問控制級別。它的安全性能優于通過文件權限和ACL實現的自主訪問控制。實質上,SELinux強制在操作系統的內核中實施安全規則。當系統安全受到破壞時,SELinux盡量控制其影響。例如,當FTP服務的系統賬戶受到危害時,SELinux會使用此賬戶危害其他服務的意圖更難實現。

4.5.1 SELinux的基本功能

SELinux安全模型基于主題、對象和動作。主題是一個進程,如正在執行的命令,或在Apache服務器中正在運行的應用程序。對象就是文件、設備、套接字,或者推而廣之,任何可被主題訪問的資源。動作就是主題對對象執行的操作。

SELinux為對象分配不同的上下文。上下文就是一個標簽,由SELinux安全策略用來決定是否允許在對象上執行主題的動作。

例如,Apache Web服務器進程可以接收網頁文件等對象,并把它們顯示給世界各地的客戶端瀏覽。只要這個對象文件擁有合適的SELinux上下文,則這個動作在SELinux的RHEL 7實現中是允許的。

SELinux的上下文是非常嚴格的。換言之,如果一個黑帽黑客闖入用戶的系統并接管了用戶的Web服務器,SELinux上下文會阻止這個黑客利用這個漏洞闖入到其他服務。

用lz -Z命令可以顯示特定文件的上下文。例如,仔細檢查這個命令的執行結果,如圖4-10所示,它顯示了作者之一的/root目錄中的安全上下文。

圖4-10 不同文件的SELinux安全上下文

正如本章的開頭曾提到的,在RHCSA考試中,與SELinux有關共有5個認證目標。接下來我們將討論如何實現這些目標。

4.5.2 SELinux的狀態

RHCSA的認證目標要求,考生必須知道如何“為SELinux設置強制的(或許可的)(enforcing/permissive)模式”。SELinux可以使用3個模式:強制模式(enforcing)、許可模式(permissive)和禁用模式(disabled)。強制模式和禁用模式的含義不言自明。許可模式是指,所有不符合的SELinux規則都保存在日記中,但是此違反事件不會阻止任何動作。

假如我們想要修改SELinux的默認模式,則需要修改/etc/selinux/config文件中的SELINUX指令,如表4-10所示。下次系統啟動后,這些修改就會應用于系統。

表4-10 /etc/selinux/config文件中的標準指令

實際經驗

在RHEL 6中,SELinux配置變量定義在/etc/sysconfig/selinux文件中。在RHEL中,/etc/sysconfig/selinux是一個符號鏈接,指向/etc/selinux/config。


當SELinux配置為強制模式,它用兩種方法保護系統的安全:目標模式(targeted mode)和mls模式。默認情況下是目標模式,它允許用戶更加精細地自定義SELinux要保護的服務。與此相反,MLS模式利用為美國國防部開發的Bell-La Padula模型進一步提高保護級別。該模型根據/etc/selinux/targeted/setrans.conf文件的要求,支持c0和c3級的安全級別。雖然c3被認為“最高級保密”,但是可用的最高級保密可達c1023級。像這樣細化的保密級別還沒有完全開發成功,如果想進一步了解MLS,需要安裝selinux-policy-mls RPM程序包。

實際經驗

如果你只是想測試SELinux,則可以把它配置為許可模式。它就會記錄任何違反安全的操作,但不會阻止任何操作。用SELinux管理工具很容易配置SELinux,也可以在/etc/selinux/config文件中設置SELINUX=permissive指令。如果正在運行審計服務(auditd service),則任何違反安全的操作都會記錄在/var/log/audit目錄的audit.log文件中。請記住,Red Hat可能會要求考生在考試期間把SELinux配置為強制模式。

4.5.3 在命令行配置SELinux

雖然SELinux仍在不斷發展,但是隨著RHEL 6和RHEL 7的發布,它變得越來越有用。然而考慮到SELinux的復雜性,對于不是十分熟悉它的系統工程師來說,用SELinux管理工具(SELinux Administration Tool)配置SELinux參數可能會更加高效。

為此,接下來將介紹如何在命令行接口配置和管理SELinux。但是,由于用GUI工具更容易顯示SELinux的全部功能,因此本章后面將詳細介紹這些功能。

4.5.4 配置基本的SELinux設置

有幾個重要的命令可用來檢查和配置基本的SELinux設置。為查看SELinux的當前狀態,執行getenforce命令。它返回三個選項中的一個:enforcing、permissive和disabled(這些選項不需要多加解釋)。sestatus命令可提供更多的信息,其輸出結果類似于如下的內容:

        SELinux status:                 enabled
        SELinuxfs mount:                /sys/fs/selinux
        SELinux root directory:        /etc/selinux
        Loaded policy name:             targeted
        Current mode:                   enforcing
        Mode from config file:         enforcing
        Policy MLS status:              enabled
        Policy deny_unknown status:    allowed
        Max kernel policy version:     28

用setenforce命令可以改變SELinux的當前狀態,它的選項也是容易理解的:

        # setenforce enforcing
        # setenforce permissive

上述命令會改變/sys/fs/selinux/enforce布爾值。作為布爾型參數,我們可以用1和0替換enforcing和permissive。如果要使修改永久生效,必須修改/etc/selinux/config文件中的SELINUX變量。但如果要具體修改SELinux各個布爾型參數,則需要不同的命令。

如果由于某些原因SELinux被禁用,則輸出結果如下:

        SELinux status:    disabled

此時setenforce命令不會起作用。相反,需要在/etc/selinux/config文件設置SELINUX=enforcing。這需要重啟系統才能“重新賦予標簽(relabel)”,這里SELinux標簽需要應用于本地系統上的每個文件。

考試提示

如果SELinux已被禁用,則在把SELinux設置為強制模式之后,重新引導系統需要好幾分鐘才行。盡管如此,它的引導過程并沒有像以前版本的RHEL系統那樣費時。

4.5.5 為SELinux配置普通用戶

為查看當前SELinux用戶的狀態,執行semanage login -l命令。根據RHEL 7的默認安裝模式,它會輸出如下結果:

        Login Name       SELinux User       MLS/MCS Range    Service
        __default__      unconfined_u       s0-s0:c0.c1023    *
        root             unconfined_u       s0-s0:c0.c1023    *
        system_u         system_u           s0-s0:c0.c1023    *

換言之,普通的“默認”用戶也擁有與root用戶相同的SELinux用戶上下文。為了證實這一點,以普通用戶身份運行id -Z命令。不改變其他條件,則這個命令輸出以下結果,它表示此用戶不受任何SELinux設置的限制。

        unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

上面的字符串定義了SELinux中的標簽。標簽由幾個上下文字符串組成,字符串之間用列分開:用戶上下文(以_u結束),角色上下文(以_r結束),類型上下文(以_t結束),機密性上下文和一個類別集。目標策略(在RHEL 7中是默認的SELinux策略)的規則常與類型(_t)上下文關聯。

雖然這不屬于考試要求的范圍,但是普通用戶必須受到SELinux的控制。當用戶賬戶被破壞或者將要被破壞時,我們希望因此造成的損失會受到SELinux規則的限制。下面這個示例限制了添加(-a)普通用戶michael,并為這種約束定義(-s)user_u上下文。

        # semanage login -a -s user_u michael

user_u角色不能執行第8章中介紹的su或sudo命令。如有必要,可以用semanage -d michael命令取消這個設置。由于用戶角色仍然還在發展,因此必須注意出現在最新Red Hat文檔中各種可用的用戶上下文,如表4-11所示。

表4-11 SELinux User Roles(用戶角色)的選項

另一個常見的“用戶”上下文是system_u,它通常不能應用于普通用戶。當把ls -Z命令作用于系統和配置文件時,在其輸出結果中經常會看到這個角色。

當一個用戶角色發生變化時,只有等到下次登錄后才會生效。例如,假如在基于GUI的命令行中把michael用戶的角色改為user_u,則只有退出系統再登錄到GUI環境此修改才會生效。當你在自己的系統上測試這個命令時,將不能啟動任何管理配置工具,也不能使用su和sudo命令。

在某些網絡中,我們可能希望把未來用戶的角色改為user_u。但如果不希望普通用戶盲目操作管理工具,則可以用下面的命令修改這些未來默認用戶的角色:

        # semanage login -m -S targeted -s "user_u" -r s0 __default__

這個命令修改(-m)了目標策略存儲(-S),把SELinux用戶設置為(-s)user_u角色,并給默認用戶設置了MLS s0安全級(-r)。其中的“__default__”的兩側都包含兩個下劃線。只要user_u角色對默認的SELinux用戶有效,則普通用戶就無法使用管理工具或者諸如su和sudo的命令。下面這個命令取消前面的設置:

        # semanage login -m -S targeted -s "unconfined_u" \
        -r s0-s0:c0.c1023 __default__

由于unconfined_u用戶通常不受MSL安全的限制,因此這里需要全部的MLS安全級范圍(s0-s0:c0.c1023)。

考試提示

MLS模式增加了SELinux的復雜性。給目標默認策略設置正確的布爾型參數和文件上下文,通常會提供超出平常需要的安全設置。

4.5.6 管理SELinux布爾型設置

大多數SELinux設置都是布爾型——換言之,它們都可以用1和0值表示啟動和禁用。這些參數一旦設置好,就保存在/sys/fs/selinux/booleans目錄中。一個簡單示例是selinuxuser_ping,這個參數通常置為1,它允許用戶執行ping命令和traceroute命令。很多SELinux設置都與特定的RHCE服務有關,因此將在本書后半部分討論。

用getsebool可以讀取這些設置的值,用setsebool命令可以修改它們的值。例如,下面的內容是getsebool user_exec_content命令的輸出結果,它說明SELinux允許用戶執行自己主目錄中或/tmp目錄中的腳本:

        user_exec_content --> on

這個默認設置應用于SELinux user_u用戶。換言之,利用這個布爾型參數,這些用戶可以在前面提到的目錄中創建和執行腳本。這個布爾型參數可以暫時被禁用,或者在系統重新啟動后保留下來。可以使用setsebool命令來達到上述目的。例如,下面的命令禁用剛才提到的這個布爾型參數,直到系統下次重新啟動為止:

        # setsebool user_exec_content off

在這個命令中可以用=0替換off,由于這是一個布爾型設置,替換后的效果是一樣的。但為使這個布爾型設置的修改值在系統重新啟動后仍然有效,必須使用-P選項。注意,只有等該用戶實際登錄到相關的系統后,這個修改才會起作用。

用getsebool -a命令可以顯示全部可用的布爾型參數列表。

想了解每個布爾型參數的更多信息執行semanage boolean -l命令。這個命令的輸出包含了全部可用的布爾型參數的詳細說明,它是一個可以用grep命令進行搜索的數據庫。

4.5.7 顯示和識別SELinux文件上下文

如果已經啟動了SELinux,則用ls -Z命令可以列出當前SELinux文件上下文,如前面的圖4-10所示。作為一個示例,我們只列出與/root目錄中的anaconda-ks.cfg文件有關的輸出結果:

        -rw-------. root root system_u:object_r:admin_home_t:s0?
        anaconda-ks.cfg

輸出結果中包含了普通的ugo/rwx所有權和權限數據,也指定了SELinux安全的四個元素:指定文件的用戶、角色、類型和MLS級別。一般說來,文件的SELinux用戶是system_u或unconfined_u,而這通常不會影響訪問。大多數情況下,文件與object_r有關,后者是文件的一個對象角色。當然在SELinux目標策略的未來版本中,用戶和角色可能會包含更多的細分選項。

主要的文件上下文是類型。此處即為admin_home_t。在第1章配置FTP和HTTP服務器時,為了與這些服務的共享文件的默認類型相匹配,我們用chcon命令修改了配置目錄和目錄中文件的類型。

例如,為給一個FTP服務器配置一個非標準的目錄,必須使它的上下文與默認的FTP目錄相匹配。考慮下面的命令:

        # ls -Z /var/ftp/
        drwxr-xr-x. root root system_u:object_r:public_content_t pub

上下文是系統用戶(system_u)和系統對象(object_r)、類型為與公開用戶共享(public_content_t)。如果我們給這個FTP服務創建了另一個目錄,則需要把同樣的安全上下文賦給此目錄。例如,如果我們以root管理員身份創建/ftp目錄并且執行ls -Zd /ftp命令,則會看到這個/ftp目錄的上下文:

        drwxr-xr-x. root  root  unconfined_u:object_r:root_t   /ftp

為修改這個目錄的上下文,可以使用chcon命令。如果它們是一些子目錄,必須使用-R選項確保可以遞歸地應用所有修改。這里為了修改用戶和type上下文使之與/var/ftp相匹配,需要執行以下命令:

        # chcon -R -u system_u -t public_content_t /ftp

如果我們想支持上傳到FTP服務器,則需要給它分配不同類型的上下文,具體來說需要指定public_content_rw_t選項。相應的命令如下:

        # chcon -R -u system_u -t public_content_rw_t /ftp

第1章已經使用過chcon命令的另一種形式。為使用那里的內容,下面的命令將用到/var/ftp目錄上的user、role和上下文,并將這些修改遞歸地應用于/ftp目錄。

        # chcon -R --reference /var/ftp /ftp

但是,如果文件系統被重新賦予標簽,會發生什么?使用chcon做出的修改在文件系統重新賦予標簽后不會保存,因為所有的文件上下文將被重置為SELinux策略中定義的默認值。因此,我們需要有一種方法,以修改定義了每個文件的默認文件上下文的規則。下一節將介紹這個主題。

實際經驗

使用restorecon是修改文件上下文的首選方式,因為它將上下文設置為SELinux策略中配置的值。chcon命令可以將文件上下文修改為參數中傳遞的任何值,但是如果上下文不同于SELinux策略中定義的默認值,那么文件系統被重新賦予標簽后,使用chcon所做的修改不會保存。因此,為了避免犯錯,應該使用semanage fcontext修改SELinux策略中的上下文,使用restorecon修改文件的上下文。

4.5.8 恢復SELinux文件上下文

在/etc/selinux/targeted/contexts/files/file_contexts文件中可以配置默認的上下文。當我們操作出錯并想恢復一個文件原來的SELinux設置,則restorecon命令可以根據file_contexts配置文件恢復這些設置。但是目錄的默認參數值可能會不一樣。例如,下面這個命令(-F開關選項強制修改所有上下文,而不只是類型上下文)會給/ftp目錄分配一組不同的上下文。

        # restorecon -F /ftp
        # ls -Zd /ftp
        drwxr-xr-x.  root  root  system_u:object_r:default_t  ftp

注意,user上下文不同于/ftp目錄剛創建時的上下文。這是由于前面提到的file_contexts文件的第一行的原因,這一行應用前面提到的上下文。

        /.*    system_u:object_r:default_t:s0

使用semanage fcontext -l命令可列出file_contexts中的所有默認文件上下文。圖4-11是其輸出的一段節選。

圖4-11 SELinux上下文的定義

可以看到,SELinux上下文定義使用了正則表達式,例如:

       ((/.*)?

這個正則表達式匹配/字符,后跟任意數量的字符串(.*)。?字符的意思是,括號內的整個正則表達式可被匹配0次或1次。因此,總體結果是匹配/后跟任意數量的字符,或者匹配什么都沒有的情況。這個正則表達式被廣泛用于匹配一個目錄及其包含的所有文件。

舉個例子,下面這個正則表達式可匹配/ftp目錄及其中的所有文件:

        /ftp(/.*)?

通過使用這個正則表達式,可以定義一個SELinux策略規則,為/ftp目錄及其中的所有文件分配一個默認的類型上下文。這可以使用semanage fcontext -a命令完成。例如,下面的命令將默認的類型上下文public_content_t分配給/ftp目錄及其中的所有文件:

        # semanage fcontext -a -t public_content_t '/ftp(/.*)? '

當為文件系統路徑定義了新的默認策略上下文后,可以運行restorecon命令,將上下文設為對應的默認策略值。下面的命令以遞歸方式(-R)將上下文恢復為前面定義的public_context_t值:

        # restorecon -RF /ftp
        # ls -Zd /ftp
        drwxr-xr-x.  root  root  system_u:object_r:public_content_t  ftp

4.5.9 識別SELinux進程上下文

正如第9章將要指出,ps命令可以顯示當前正在運行的進程。在SELinux系統中,每個運行的進程都有上下文。為了查看當前所有運行進程的上下文,可以執行ps -eZ命令,它列出每個(-e)進程的SELinux上下文(-Z)。圖4-12是在我們的系統上執行此命令的一段輸出結果。

圖4-12 不同進程的SELinux安全上下文

盡管用戶和角色不會經常改變,但是進程的類型變化很大,這是為了與運行進程的目的相匹配。例如,從圖的底部Avahi守護進程(avahi-daemon)與avahi_t SELinux類型匹配。你至少可以識別部分SELinux類型與相應的服務相匹配。

換言之,雖然SELinux類型各不一樣,但是它們都與正在運行的進程相一致。

4.5.10 診斷和處理違反SELinux策略的事件

如果出現一個問題且SELinux正在強制模式下運行,而且確信目標服務或應用程序不會存在問題,則不要禁用SELinux! Red Hat已簡化了SELinux的管理和故障處理。根據Red Hat,引起SELinux相關問題的兩個主要原因是上下文和布爾型設置。

1. SELinux審計

SELinux遇到的問題都會保存在相關的日志文件,即/var/log/audit目錄中的audit.log文件中。這個文件很容易迷惑人,第一次看到它更是如此。現在有許多工具可用來解釋這個日志文件。

首先,審計搜索命令(ausearch)命令可以幫助我們過濾某些特定類型的問題。例如,下面的命令列出所有與使用sudo命令有關的SELinux事件:

        # ausearch -m avc -c sudo

這些事件也稱為訪問向量緩存(Access Vector Cache, AVC)(-m avc)消息,-c選項允許我們定義通常在日志中使用的名字,如httpd或su。如果已經試驗過本章前面介紹的SELinux用戶user_u,則在audit.log文件中有幾個消息與這個用戶有關。

即使對大多數管理員而言,這個輸出列表也是也顯得過于冗長。但是它包含了一些標識信息,如被審計的用戶ID(顯示為auid),用它可以確定發出攻擊的用戶。也許用戶正需要這樣的訪問,也許此用戶賬戶已受到破壞,不管哪種情況,這警告我們要更多地注意這個賬戶。

相反,sealert -a /var/log/audit/audit.log命令可能會提供更容易理解的列表,圖4-13是其中的一個片段。

圖4-13 一個SELinux警告

2. SELinux標簽和上下文問題

考慮圖4-13以及到目前為止介紹的SELinux概念,你可能想知道出現問題的用戶能否允許執行su命令。假如這個問題出現在第8章要介紹的/etc/sudoer文件中,則SELinux警告消息甚至不會出現。因此必須特別注意源和目標上下文。如果兩者相匹配,則文件上下文不是問題。

通過排除法表明前面提到的用戶上下文就是這個問題的原因。出現問題的用戶的UID必須出現在這個文件后面的“Raw Audit Message”(原始審計消息)段中。如果上述用戶需要訪問su和sudo命令,則必須用semanage login命令修改此用戶的角色。否則說明此用戶可能正在測試Linux。任何對sudo命令的訪問都會記錄在/var/log/secure日記文件中。

3. SELinux的布爾型問題

在禁用了前面提到的user_exec_content布爾型后,我們為由user_u標簽控制的用戶創建了一個簡單的腳本script1。在把該腳本變成可執行文件后,我們試圖用/home/examprep/script1命令執行這個腳本文件。盡管這個用戶是這個文件的所有者,并且擁有可執行權限集,但這個嘗試得到了以下消息:

        -bash: /home/examprep/script1: Permission denied

這就得到如圖4-14所示的一段日志。注意頂部的一段,它清楚地列明了處理這個問題需要使用的命令。作為系統管理員,我們需要決定是否允許這樣的用戶擁有執行自己腳本的權限。如果是,則上述命令可以解決這個問題。

圖4-14 一個SELinux警告和解決辦法

4.5.11 GUI SELinux管理工具

如果已經花了一些時間學習命令行的SELinux,則本節只是一個概述。對許多用戶而言,修改SELinux設置的最簡單方法是使用SELinux管理工具。這個工具可以用system-config-selinux命令啟動。如圖4-15所示,它先顯示本地系統上SELinux的基本狀態,這些狀態的信息反映在sestatus命令的輸出列表中。

圖4-15 管理工具中SELinux的狀態信息

正如讀者所見,默認和當前的強制模式都有幾個選項,我們可以把它們設置為Enforcing、Permissive或Disabled。雖然,SELinux的重點在于目標策略(Targeted policy),但是如果安裝了selinux-policy-mls程序包,則MLS也是可以使用的。通常情況下,我們不必激活Relabel On Next Reboot選項,除非我們已經修改了默認的策略類型。

SELinux Management Tool窗口的左側窗格中有許多類別,這些類別將在稍后介紹。在本書的RHCE部分,還要討論這個工具,但是重點是關布爾型參數的設置。

1. SELinux布爾型設置

在SELinux管理工具中,單擊左側窗格中的Boolean,翻卷可用的模塊。正如讀者所見,SELinux策略可以在許多不同的類別中修改,有些與管理功能有關,還有的與一些特定服務有關。圖4-16顯示了這些選項的選取情況。在這里所做的任何修改都會反映到/sys/fs/selinux/booleans目錄中的布爾型變量。對于RHCSA考試來說比較重要的模塊類別有cron、mount、virt和包含一切的模塊類型:unknown。這個列表比較短,相關的布爾型參數顯示在表4-12中,它們按在SELinux管理工具中的順序進行排列。

表4-12 部分SELinux布爾型參數

圖4-16 SELinux管理工具中的布爾型參數

2.文件標簽(File Labeling)

我們可以修改文件的默認標簽,其中部分標簽已在本章前面介紹過(其他幾章中將要介紹SELinux上下文)。圖4-17列出其中一些標簽的選項。在這個窗口中所做的任何修改都要寫入/etc/selinux/targeted/contexts/files目錄中的file_contexts.local文件。

圖4-17 在SELinux管理工具中的文件類型

3.用戶映射

在User Mapping(用戶映射)組中,我們可以為普通用戶和管理員用戶設置默認參數以外的參數。這里顯示的內容說明了semanage login -l命令的當前結果。如果無法記住semanage命令錯綜復雜的選項,則使用這個屏幕可以比較容易地建立起現有用戶到不同上下文之間的映射關系。單擊Add按鈕打開如圖4-18所示的Add User Mapping窗口。此圖也說明如何把名為michael用戶重新歸類為SELinux的user_u用戶類型。

圖4-18 在SELinux管理工具中建立用戶映射

4. SELinux用戶

SELinux User允許我們為標準的用戶定義和修改默認的角色。標準用戶包括普通用戶(user_u)、系統用戶(system_u)和不受限制用戶(unconfined_u)。

5.網絡端口

Network Port在標準端口與服務之間建立關聯。

6.策略模塊

Policy Module定義了應用于每個模塊的SELinux策略版本號。

7.進程域組

Process Domain允許我們針對單個進程域(而不是整個系統)把SELinux的狀態改為允許模式或強制模式。

4.5.12 SELinux故障排除瀏覽器

RHEL 7包含了SELinux故障排除瀏覽器(SELinux Troubleshoot Browser),如圖4-19所示。它為經常遇到的問題提供幫助和建議,并使用大多數Linux管理員能理解的語言,通常還包含用戶可以運行的能解決相關問題的命令。

圖4-19 SELinux故障排除瀏覽器中的安全警告

要在GNOME桌面上啟動這個瀏覽器,選擇Applications | Sundry | SELinux Troubleshooter,或者在GUI的命令行中執行sealert -b命令。此命令由setroubleshoot-server程序包提供。

4.5.13 練習4-3:測試SELinux用戶類型

在本練習中,要把一個用戶配置為staff_u SELinux用戶類型并測試配置結果。你需要一個GUI工具,除root管理員用戶外至少還需要一個普通用戶。

(1)如有必要,創建一個普通用戶。即使已經有一個普通用戶,在本練習中創建第二個普通用戶可以減少風險。用戶總是可以刪除的,這將在第8章中討論。為此用useradd user1命令創建一個用戶,用passwd user1命令給此用戶設置口令。

(2)用semanage login -l命令檢查當前用戶的SELinux類型。

(3)用semanage login -a -s staff_u user1命令把上述用戶配置為staff_u用戶。根據實際情況替換其中的user1。

(4)如果已完全登錄到GUI,則先退出。選擇System | Log out命令,在隨后出現的窗口中單擊Log Out按鈕。

(5)以剛修改過的staff_u賬戶即user1(或者其他在步驟(3)中配置的名字)登錄到GUI。如果沒有看到GUI登錄屏幕,按ALT+F1或ALT+F7。

(6)嘗試各個管理命令。訪問su命令了嗎?sudo命令呢?如果不知道如何使用sudo命令,可以在閱讀第8章后回過頭看這個練習。本書到目前為止介紹的哪些管理工具可以訪問?從GUI命令行啟動這個工具與從GUI菜單啟動它是否有區別?

(7)退出新建的user1賬戶,重新以普通用戶身份登錄到系統。

(8)從staff_u列表中刪除新創建的用戶。如果這個用戶是user1,則執行semanage login -d user1命令也可以刪除這個用戶。

(9)用semanage login -l命令驗證配置是否已恢復。

主站蜘蛛池模板: 台江县| 北海市| 丁青县| 永胜县| 肥城市| 唐山市| 建湖县| 大理市| 资中县| 云林县| 池州市| 文昌市| 古浪县| 新巴尔虎左旗| 临泉县| 江北区| 海丰县| 盐源县| 府谷县| 高碑店市| 廊坊市| 阿拉善盟| 长沙市| 郯城县| 嘉祥县| 文昌市| 钟祥市| 武宁县| 正安县| 马公市| 鄂州市| 沛县| 沁水县| 衡阳县| 陈巴尔虎旗| 南木林县| 仪陇县| 望城县| 凤庆县| 安国市| 平乐县|