SELinux的策略與規則管理相關命令seinfo、sesearch、getsebool、setsebool、semanage

SELinux的策略與規則管理相關命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。html

seinfo 命令linux

seinfo命令是用來查詢SELinux的策略提供多少相關規則,一個主體進程可否讀取到目標文件資源的重點是在於SELinux的策略以及策略內的各項規則,而後再經過該規則的定義去處理各項目標文件的安全上下文,尤爲是「類型」部分。正則表達式

-A:列出SELinux的狀態、規則布爾值、身份識別、角色、類型等全部信息。 安全

-t:列出SELinux全部類型(type)的種類。 服務器

-r:列出SELinux全部角色(role)的種類。 ide

-u:列出SELinux全部身份識別(user)的種類。 工具

-b:列出全部規則的種類(布爾值)。

實例 
spa

列出與httpd有關的規則:rest

     seinfo -b | grep httpdorm


sesearch命令

若是查到的相關類型或者布爾值,想要知道詳細規則時,使用sesearch命令查詢。

語法

sesearch [-a] [-s 主體類型] [-t 目標類型] [-b 布爾值] 

選項

-a:列出該類型或布爾值的全部相關信息 

-t:後面還要接類型,例如 -t httpd_t 

-b:後面還要接布爾值的規則


實例  

-b httpd_enable_ftp_server 實例 

找出目標文件資源類型爲httpd_sys_content_t的有關信息: 

    sesearch -a -t httpd_sys_content_t 

找出主體進程爲httpd_t且目標文件類型爲httpd相關的全部信息: 

    sesearch -s httpd_t -t httpd_* -a 

查看布爾值httpd_enable_homedirs設置了多少規則 

    sesearch -b httpd_enable_homedirs -a


getsebool命令

是用來查詢SElinux策略內各項規則的布爾值。

語法 

getsebool [-a] [布爾值條款] 

選項 

-a:列出目前系統上面的全部布爾值條款設置爲開啓或關閉值。 

實例 

查詢本系統內全部的布爾值設置情況: 

    getsebool -a 

        NetworkManager_disable_trans --> 

        off allow_console_login -->


 setsebool命令

setsebool命令是用來修改SElinux策略內各項規則的布爾值。setsebool命令和getsebool命令是SELinux修改和查詢布爾值的一套工具組。

語法

setsebool [-P] 布爾值=[0|1]

選項

-P:直接將設置值寫入配置文件,該設置數據未來會生效的。

實例

容許vsvtp匿名用戶寫入權限:

    setsebool -P allow_ftpd_anon_write=1

若是你但願你的ftp用戶能夠訪問本身的家目錄的話,須要開啓:

    setsebool -P ftp_home_dir 1

若是你但願將vsftpd以daemon的方式運行的話,須要開啓:

    setsebool -P ftpd_is_daemon 1

你可讓SElinux中止保護vsftpd的daemon方式動行:

    setsebool -P ftpd_disable_trans 1

HTTP被設置容許cgi的設置:

    setsebool -P httpd_enable_cgi 1

容許用戶HHTP訪問其家目錄,該設定限僅於用戶的家目錄主頁:

    setsebool -P httpd_enable_homedirs 1

    chcon -R -t httpd_sys_content_t ~user/public_html

容許httpd訪問終端:

    setsebool -P httpd_tty_comm 1

關閉Selinux的關於httpd進程守護的保護:

    setsebool -P httpd_disable_trans 1

    service httpd restart

關於named、master更新selinux設定:

     setsebool -P named_write_master_zones 1

關閉named的進程守護保護:

     setsebool -P named_disable_trans 1

    service named restart

Selinux將本機的NFS共享設置成只讀:

     setsebool -P nfs_export_all_ro 1

SElinux將本機的NFS共享設置成可讀可寫:

setsebool -P nfs_export_all_rw 1

若是你想要將遠程NFS的家目錄共享到本機,須要開啓:

     setsebool -P use_nfs_home_dirs 1

若是samba服務器共享目錄給多個域,則須要:

    setsebool -P allow_smbd_anon_write=1

samba服務器要共享家目錄時:

     setsebool -P samba_enable_home_dirs 1

若是你需在本機上使用遠程samba服務器的家目錄:

     setsebool -P use_samba_home_dirs 1

關閉selinux關於samba的進程守護的保護:

    setsebool -P smbd_disable_trans 1

    service smb restart

容許rsync其餘用戶寫入時:

     setsebool -P allow_rsync_anon_write=1

中止rsync的進程保護

     setsebool -P rsync_disable_trans 1

容許系統使用kerberos:

     setsebool -P allow_kerberos 1

系統工做在nis環境時:

    setsebool -P allow_ypbind 1


semanage命令

semanage命令是用來查詢與修改SELinux默認目錄的安全上下文。

語法

    semanage {login|user|port|interface|fcontext|translation} -l

    semanage fcontext -{a|d|m} [-frst] file_spec

選項

-l:查詢。

fcontext:主要用在安全上下文方面。

-a:增長,你能夠增長一些目錄的默認安全上下文類型設置。

-m:修改。

-d:刪除。

實例

查詢一下/var/www/html的默認安全性本文的設置:

    semanage fcontext -l SELinux fcontext    type          Context

     ....(前面省略)....

    /var/www(/.*)?       all files     system_u:object_r:httpd_sys_content_t:s0

    ....(後面省略)....

如上面例子所示,咱們能夠查詢的到每一個目錄的安全性本文!而目錄的設定可使用正則表達式去指定一個範圍。那麼若是咱們想要增長某些自定義目錄的安全性本文呢?舉例來講,我想要色設置/srv/samba成爲 public_content_t的類型時,應該如何設置呢?

用semanage命令設置/srv/samba目錄的默認安全性本文爲public_content_t:

    mkdir /srv/samba

    ll -Zd /srv/samba

        drwxr-xr-x  root root root:object_r:var_t    /srv/samba

如上所示,默認的狀況應該是var_t這個咚咚的!

     semanage fcontext -l | grep '/srv' /srv/.*                     all files   system_u:object_r:var_t:s0

    /srv/([^/]*/)?ftp(/.*)?     all files   system_u:object_r:public_content_t:s0

    /srv/([^/]*/)?www(/.*)?     all files   system_u:object_r:httpd_sys_content_t:s0

    /srv/([^/]*/)?rsync(/.*)?   all files   system_u:object_r:public_content_t:s0

    /srv/gallery2(/.*)?         all files   system_u:object_r:httpd_sys_content_t:s0

    /srv                        directory   system_u:object_r:var_t:s0   //看這裏!

上面則是默認的/srv底下的安全性本文資料,不過,並無指定到/srv/samba。

    semanage fcontext -a -t public_content_t "/srv/samba(/.*)?"

     semanage fcontext -l | grep '/srv/samba' /srv/samba(/.*)?            all files   system_u:object_r:public_content_t:s0

    cat /etc/selinux/targeted/contexts/files/file_contexts.local

    # This file is auto-generated by libsemanage

    # Please use the semanage command to make changes

    /srv/samba(/.*)?    system_u:object_r:public_content_t:s0  #寫入這個檔案

     restorecon -Rv /srv/samba* #嘗試恢復默認值

    ll -Zd /srv/samba

        drwxr-xr-x  root root system_u:object_r:public_content_t /srv/samba/  #有默認值,之後用restorecon命令來修改比較簡單!

semanage命令的功能不少,這裏主要用到的僅有fcontext這個選項的用法而已。如上所示,你可使用semanage來查詢全部的目錄默認值,也可以使用它來增長默認值的設置!

相關文章
相關標籤/搜索