- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
etsebool命令是用來修改SElinux策略內各項規則的布爾值。setsebool命令和getsebool命令是SELinux修改和查詢布爾值的一套工具組。SELinux的策略與規則管理相關命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。下面讓我們詳細講解一下setsebool命令的使用方法。
語法
setsebool [-P] 布爾值=[0|1]
選項
-P:直接將設置值寫入配置文件,該設置數據將來會生效的。
實例
setsebool -P allow_ftpd_anon_write=1 #允許ftpd匿名用戶可寫 setsebool -P ftp_home_dir 1 #允許用戶訪問自己的根目錄 setsebool -P ftpd_is_daemon 1 #允許daemon運行ftpd setsebool -P ftpd_disable_trans 1 #關閉SELINUX對ftpd的保護 setsebool -P allow_httpd_anon_write=1 #允許httpd匿名用戶可寫 setsebool -P allow_httpd_sys__anon_write=1 #同上 setsebool -P httpd_enable_cgi 1 #httpd被設置允許cgi被執行 setsebool -P httpd_enable_homedirs 1 #允許訪問用戶的根目錄 setsebool -P httpd_tty_comm 1 #允許httpd控制終端 setsebool -P httpd_unified 0 #httpd之間相互獨立 setsebool -P httpd_builtin_ing 0 #同httpd環境一樣運行 setsebool -P httpd_can_network_connect_db 1 #httpd可以連接到數據庫(如連接mysql就必須設置) setsebool -P httpd_can_network_connect 1 #httpd可以連接到網絡(如連接redis就必須設置) setsebool -P httpd_read_user_content 1 #開啟用戶文件的訪問權限(如日志文件就必須設置) setsebool -P httpd_suexec_disable_trans 1 #禁用suexec過度 setsebool -P httpd_disable_trans 1 #允許daemon用戶啟動httpd setsebool -P httpd_can_sendmail 1 #允許httpd發送email setsebool -P named_write_master_zones 1 #允許修改dns的主zone文件 setsebool -P named_disable_trans 1 #允許daemon啟動named setsebool -P nfs_export_all_ro 1 #nfs只讀 setsebool -P nfs_export_all_rw 1 #nfs可讀寫 setsebool -P use_nfs_home_dirs 1 #允許本機訪問遠程nfs的根目錄 setsebool -P allow_smbd_anon_write=1 #samba允許匿名用戶可寫 setsebool -P samba_enable_home_dirs 1 #允許根目錄訪問 setsebool -P use_samba_home_dirs 1 #允許本機訪問遠程samba根目錄 setsebool -P smbd_disable_trans 1 #允許daemon啟動samba setsebool -P allow_rsync_anon_write=1 #允許匿名用戶可寫 setsebool -P rsync_disable_trans 1 #允許daemon啟動rsync
其他命令
getsebool -a #列出所有模塊 getsebool -a | grep ftp #列出所有與ftp相關的模塊
selinux默認不允許httpd訪問“/home/用戶名”目錄(但是允許訪問"/usr/local/用戶名"這種目錄),現在有兩種解決方案:
方案一:(允許用戶httpd訪問其家目錄)
setsebool -P httpd_read_user_content 1 setsebool -P httpd_enable_homedirs 1
方案二:(使用semanage命令修改安全上下文)
semanage fcontext -a -t httpd_sys_content_t '/home/用戶名(/.*)?' #重新加載,刷新配置 restorecon -R -v /home/用戶名 #查看安全上下文是否永久生效 semanage fcontext -l | grep /home/用戶名 #查看安全上下文是否永久生效 ls -Zd /home/用戶名
允許公共目錄共享,如ftp,samba,web都訪問共享目錄
setsebool -P public_content_t 1 setsebool -P public_content_rw_t 1
允許httpd連接mysql:
setsebool -P httpd_can_network_connect_db 1
允許httpd連接redis:
setsebool -P httpd_can_network_connect=1
允許使用ftpd,如vsftpd就需要用到:
setsebool -P ftpd_full_access 1 setsebool -P ftp_home_dir 1 #可能會提示“Boolean ftp_home_dir is not defined”那就不用管了
允許httpd發送email:
setsebool -P httpd_can_sendmail 1
其他命令
#查看selinux狀態 sestatus #查看getenforce狀態 getenforce #臨時關閉selinux,設置SELinux 成為permissive模式 setenforce 0 #臨時打開selinux,設置SELinux 成為enforcing模式 setenforce 1 #永久關閉SELinux vi /etc/selinux/config 修改并設置SELINUX=disabled,再重啟服務器。
使用semanage管理SELinux
#使用semanage管理SELinux,安裝semanage yum -y install semanage 如果提示:“No package semanage available.”則執行如下命令: yum -y provides semanage 執行完以上命令成功后會提示:Filename : /usr/sbin/semanage 再執行: yum -y install policycoreutils-python 執行以上命令成功之后就安裝好了semanage #查看所有端口規則 semanage port -l #查看某個端口的規則 semanage port -l | grep 6379 #查看ssh端口規則 semanage port -l | grep ssh #給ssh放開某個端口 semanage port -a -t ssh_port_t -p tcp 9998 #給ssh刪除某個已放開的端口 semanage port -d -t ssh_port_t -p tcp 9998 #查看http端口規則 semanage port -l | grep http_port_t #給httpd放開某個端口 semanage port -a -t http_port_t -p tcp 2201 #給httpd刪除某個已放開的端口 semanage port -d -t http_port_t -p tcp 2201 #查看redis端口規則 semanage port -l | grep redis_port_t #redis添加端口規則 semanage port -a -t redis_port_t -p tcp 2201 semanage port -d -t redis_port_t -p tcp 2201 #給httpd添加某個目錄(如/websites)安全上下文 semanage fcontext -a -t httpd_sys_content_t "/websites(/.*)?" #重新加載配置 restorecon -R -v /websites #查看安全上下文是否永久生效 semanage fcontext -l | grep /websites #查看安全上下文是否永久生效 ls -Zd /websites
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP