溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中怎么利用semanage修改文本

發(fā)布時(shí)間:2021-07-27 17:40:05 來(lái)源:億速云 閱讀:272 作者:Leah 欄目:系統(tǒng)運(yùn)維

今天就跟大家聊聊有關(guān)Linux中怎么利用semanage修改文本,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

CentOS系統(tǒng)自帶的chcon工具只能修改文件、目錄等的文件類型和策略,無(wú)法對(duì)端口、消息接口和網(wǎng)絡(luò)接口等進(jìn)行管理,semanage能有效勝任SELinux的相關(guān)配置工作。

安裝:

代碼如下:


# yum -y install policycoreutils-python

用法:
semanage命令用來(lái)查詢與修改SELinux默認(rèn)目錄的安全上下文。
 semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
 semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target

主要參數(shù):


-a:添加
-d:刪除
-m:修改
-l:列舉
-n:不打印說(shuō)明頭
-D:全部刪除
-f:文件
-s:用戶
-t:類型
r:角色

基本使用:

管理登錄linux的用戶和SELinux局限的用戶之間的映射。

代碼如下:


semanage login [-S store] -{a|d|m|l|n|D} [-sr] login_name | %groupname


管理策略模塊:

代碼如下:


semanage module [-S store] -{a|d|l} [-m [--enable | --disable] ] module_name


管理網(wǎng)絡(luò)端口類型定義

代碼如下:


semanage port [-S store] -{a|d|m|l|n|D} [-tr] [-p proto] port | port_range


例:如apache采用非標(biāo)準(zhǔn)端口,需執(zhí)行如下命令:

代碼如下:


emanage port -a -t http_port_t -p tcp port_number


查看當(dāng)前允許的httpd端口:

代碼如下:


# semanage port -l|grep http
http_cache_port_t tcp 3128, 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8888, 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989


注意:8888是我剛才添加的

管理網(wǎng)絡(luò)接口類型定義

代碼如下:


semanage interface [-S store] -{a|d|m|l|n|D} [-tr] interface_spec


管理網(wǎng)絡(luò)節(jié)點(diǎn)類型定義

代碼如下:


semanage node [-S store] -{a|d|m|l|n|D} [-tr] [ -p protocol ] [-M netmask] address


管理文件中映射定義

代碼如下:


semanage fcontext [-S store] -{a|d|m|l|n|D} [-frst] file_spec
semanage fcontext [-S store] -{a|d|m|l|n|D} -e replacement target


例:讓 Apache 可以訪問(wèn)位于非默認(rèn)目錄下的網(wǎng)站文件

首先,用 semanage fcontext -l | grep '/var/www' 獲知默認(rèn) /var/www 目錄的 SELinux 上下文:

代碼如下:


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


從中可以看到 Apache 只能訪問(wèn)包含 httpd_sys_content_t 標(biāo)簽的文件。

假設(shè)希望 Apache 使用 /srv/www 作為網(wǎng)站文件目錄,那么就需要給這個(gè)目錄下的文件增加 httpd_sys_content_t 標(biāo)簽,分兩步實(shí)現(xiàn)。

首先為 /srv/www 這個(gè)目錄下的文件添加默認(rèn)標(biāo)簽類型:semanage fcontext -a -t httpd_sys_content_t '/srv/www(/.*)?' 然后用新的標(biāo)簽類型標(biāo)注已有文件:restorecon -Rv /srv/www 之后 Apache 就可以使用該目錄下的文件構(gòu)建網(wǎng)站了。

其中 restorecon 在 SELinux 管理中很常見(jiàn),起到恢復(fù)文件默認(rèn)標(biāo)簽的作用。比如當(dāng)從用戶主目錄下將某個(gè)文件復(fù)制到 Apache 網(wǎng)站目錄下時(shí),Apache 默認(rèn)是無(wú)法訪問(wèn),因?yàn)橛脩糁髂夸浀南碌奈募?biāo)簽是 user_home_t。此時(shí)就需要 restorecon 將其恢復(fù)為可被 Apache 訪問(wèn)的 httpd_sys_content_t 類型:

代碼如下:


restorecon -v /srv/www/foo.com/html/file.html
restorecon reset /srv/www/foo.com/html/file.html context unconfined_u:object_r:user_home_t:s0->system_u:object_r:httpd_sys_content_t:s0
semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?" //新建一條規(guī)則,指定/web目錄及其下的所有文件的擴(kuò)展屬性為httpd_sys_content_t

看完上述內(nèi)容,你們對(duì)Linux中怎么利用semanage修改文本有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI