1.啥是selinux
安全增強型Linux(Security-Enhanced Linux)簡稱selinux,它是一個Linux內核模塊,也是Linux的一個安全子系統。
selinux的狀態:
Enforcing:強制模式,在selinux運作時,已經開始限制domain/type
permissive:警告模式,在selinux運作時,會有警告信息,但不會限制domain/type的存取
disabled:關閉模式
使用getenforce命令查看當前模式
更改selinux的狀態命令:
setenforce 1 ##更改selinux的狀態為Enforcingsetenforce 0 ##更改selinux的狀態為Permissive
注 : 當selinux關閉時,該命令無法使用
使用該命令只能切換開啟時的兩種狀態,即Enforcing和Permissive
使用該命令切換selinux狀態時,不需要重啟電腦
selinux對文件的作用
當開啟selinux后,selinux會給每個文件加載標簽context,安全上下文必須配對,否則文件不能訪問
開啟selinux為Enforcing強制模式
在根目錄下創建一個目錄在此目錄中新建一個文件,并且移動到ftp中的pub目錄
用戶登陸ftp查看文件
可以發現移動的文件看不到
使用ls -Z /var/ftp/命令查看該文件的安全上下文
臨時更改安全上下文
chcon -t public_content_t /westos/ -R 臨時更改安全上下文
chcon只是對安全上下文的臨時修改,當系統selinux重啟后,修改會失效
semanage fcontext -l | grep /westos 查看該文件是否有默認的安全上下文
semanage fcontext -a -t public_content_t '/westos(/.*)?' 永久更改目錄安全上下文
restorecon -FvvR /westos/ 同步該目錄的安全上下文
.本地用戶上傳權限的開啟
getsebool -a | grep ftp 查看seLinux對ftp開關狀態
setsebool -P ftp_home_dir on 允許本地用戶上傳文件 -P為永久開啟
chmod 775 /home/*
chgrp ftp /home/*
登陸ftp,本地用戶可以上傳文件
匿名用戶上傳權限的開啟
vim /etc/vsftpd/vsftpd.conf 在配置文件中打開匿名用戶上傳參數
寫好之后重啟服務
systemctl restart vsftpd
setsebool -P ftpd_anon_write on ##打開selinux匿名用戶上傳開關
semanage fcontext -a -t public_content_rw_t /var/ftp/pub ##安全上下文加入可寫的權限說明
restorecon -FvvR /var/ftp/pub/ ##同步該目錄的安全上下文
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
測試一下: