国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

SELinux策略規(guī)則的開啟和關(guān)閉(詳解版)

2024-08-27 23:56:20
字體:
供稿:網(wǎng)友
默認情況下,并不是所有的規(guī)則都處于開啟狀態(tài),因此,雖然我們無需修改規(guī)則的具體內(nèi)容,但學(xué)習(xí)如何開啟和關(guān)閉規(guī)則,還是很有必要的。

規(guī)則的開啟與關(guān)閉并不困難,使用 getsebool 命令來查詢規(guī)則的開啟和關(guān)閉狀態(tài),使用 setsebool 命令來修改規(guī)則的開啟與關(guān)閉狀態(tài)。

查詢策略規(guī)則是否開啟

先來看看如何知道哪些規(guī)則是啟用的,哪些規(guī)則是關(guān)閉的。這時需要使用 getsebool 命令,命令格式如下:

[root@localhost ~]# getsebool [-a] [規(guī)則名]

-a 選項的含義是列出所有規(guī)則的開啟狀態(tài)。

例如:

[root@localhost ~]# getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
allow_console_login --> on
allow_cvs_read_shadow --> off
allow_daemons_dump_core --> on
allow_daemons_use_tcp_wrapper --> off
…省略部分輸出…
#getsebool命令明確地列出了規(guī)則的開啟狀態(tài)

除此之外,還可以使用 semanage boolean -l 命令(此命令需事先手動安裝),此命令的輸出結(jié)構(gòu)同 getsebool 命令相比,輸出信息中多了默認狀態(tài)、當(dāng)前狀態(tài)以及相關(guān)描述等信息。感興趣的讀者,可以自己嘗試運行,觀看輸出結(jié)果。

修改規(guī)則的開啟狀態(tài)

能夠查詢到規(guī)則的開啟狀態(tài),我們使用 setsebool 命令就可以開啟和關(guān)閉某個規(guī)則。當(dāng)然,我們先應(yīng)該通過 sesearch 命令確認這個規(guī)則的作用。

sesearch 命令格式如下:

[root@localhost ~]# setsebool [-P] 規(guī)則名=[0|1]

-P 選項的含義是將改變寫入配置文件,永久生效。規(guī)則名有 2 個值,分別是 0 和 1,0 代表將該規(guī)則關(guān)閉,1 代表將該規(guī)則開啟。

舉個例子:

[root@localhost ~]# getsebool -a | grep httpd
#查詢和apache相關(guān)的規(guī)則
…省略部分輸出…
httpd_enable_homedirs --> off
…省略部分輸出…
#發(fā)現(xiàn)httpd_enable_homedirs規(guī)則是開啟的,這個規(guī)則主要用于允許apache進程訪問用戶的家目錄
#如果不開啟這個規(guī)則,那么apache的userdir功能將不能使用
[root@localhost ~]# setsebool -P httpd_enable_homedirs=1
#開啟httpd_enable_homedirs規(guī)則
[root@localhost ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs --> on
#查詢規(guī)則狀態(tài)是開啟
[root@localhost ~]# setsebool -P httpd_enable_homedirs=0
#關(guān)閉規(guī)則
[root@localhost ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs --> off
#查詢規(guī)則狀態(tài)是關(guān)閉

SElinux導(dǎo)致vsftpd不能正常登錄

舉個實際的例子,vsftpd 是 CentOS 默認的文件服務(wù)器,這個服務(wù)主要是用來進行文件的下載和上傳的。不過,如果啟動了 SELinux,則會發(fā)現(xiàn) vsftpd 服務(wù)是不能登錄的。我們來做一個實驗,命令如下:

[root@localhost ~]# yum -y install vsftpd
#安裝vsftpd服務(wù)器端
[root@localhost ~]# yum -y install ftp
#安裝ftp命令,也就是ftp客戶端
[root@localhost ~]# useradd user
[root@localhost ~]# passwd user
#添加測試用戶,并配置密碼
[root@localhost ~]# service vsftpd start
#啟動vsftpd服務(wù)
[root@localhost ~]# ftp 192.168.4.210
#登錄本機的ftp
Connected to 192.168.4.210 (192.168.4.210).2.0 (vsFTPd 2.2.2)
Name (192.168.4.210:root):user ←輸入用戶名
3.1 Please specify the password.
Password: ←輸入密碼
5.0 OOPS:cannot change directory:/home/user
Login failed.
#登錄報錯,不能正常登錄

這很奇怪,vsftpd 是只要安裝并啟動就可以正常使用的,不用修改任何配置文件,因為默認配置是非常完善而且正確的。這時我們考慮是 SELinux 引起的問題,可以使用前面章節(jié)中關(guān)于日志查看的三個命令中的任意一個,來看看是否有關(guān)于 vsftpd 的報錯。命令如下:

[root@localhost ~]# audit2why < /var/log/audit/audit.log
#分析SELinux的日志
type-AVC msg-audit(1370428985.525:1146) : avc: denied {search } for pid-28408 comm-"vsftpd" name="home" dev=sda3    ino=1046530 scontext=unconfined_u:system_r:ftpd_t:s0-s0:c0.ol023
tcontext=system_u:object_r:home_root_t:s0 tclass=dir
#有關(guān)于vsftpd的錯.看來確實是SELinux引起的不能登陸 ...省略部分輸出...
Was caused by:
One of the following booleans was set incorrectly.
Description:
Allow ftp servers to login to local users and read/write all files on the system, governed by DAC.
Allow access by executing:
# setsebool -P allow_ftpd_full_access 1
Description:
Allow ftp to read and write files in the user home directories
Allow access by executing:
#   setsebool -P ftp_home_dir 1
#建議執(zhí)行此命令,運行ftp讀取和寫入用戶的家目錄

既然給出了建議命令,我們就試試吧:

[root@localhost ~]# setsebool -P ftp_home_dir 1
#開啟ftp_home_dir規(guī)則
[root@localhost ~]# ftp 192.168.4.210
Connected to 192.168.4.210 (192.168.4.210).2.0 (vsFTPd 2.2.2)
Name (192.168.4.210:root):user ←輸入用戶名
3.1 Please specify the password.
Password: ←輸入密碼
2.0 Login successful. ←登錄成功

通過這個例子,我們學(xué)習(xí)了如何通過日志來解決因為規(guī)則沒有開啟而導(dǎo)致的 SELinux 問題。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 松阳县| 秦皇岛市| 西华县| 汶川县| 通江县| 桃源县| 秦皇岛市| 得荣县| 宜宾县| 贵阳市| 双流县| 资阳市| 朝阳市| 金秀| 马龙县| 铁岭县| 抚远县| 英吉沙县| 郑州市| 陆河县| 康保县| 松溪县| 达日县| 山东省| 泰州市| 高邮市| 宿州市| 白城市| 阜城县| 邯郸市| 凤城市| 台北市| 绵阳市| 扎兰屯市| 嘉义县| 嘉义县| 汉阴县| 丰都县| 汉阴县| 福州市| 荔波县|