Linux中文件的安全上下文

1、什么是安全上下文

(1)安全上下文是一个简单一致的访问控制属性
(2)特定的文件被特定的程序访问,是访问时的凭证
(3)会关闭系统认为不安全的所有功能

2、程序访问文件时匹配安全上下文

设置:

命令 功能
touch /mnt/abc 在mnt下建立一个新文件案abc
mv /mnt/abc /var/ftp 将mnt下的abc移动到/var/ftp中,移动可以保持文件原有的安全上下文
ls -Z /var/ftp 查看文件的信息,包括文件的安全上下文,若安全上下文不匹配则lftp时不能查看到
当安全上下文显示?时,说明此时selinux未启用
vim /etc/sysconfig/selinux 修改selinux的配置文件
SELINUX=enforcing 将selinux状态改为enforcing,开启,permissive意味警告,disabled禁用,修改完成后退出保存
reboot 重启,因为selinux在内核中记录,所以只能通过reboot的方式重读配置文件
getenforce 查看现在selinux的状态(此时应为enforcing)
ls -Z /var/ftp 再次查看文件的安全上下文(此时含有安全上下文)
chcon -t public content t 123 临时更改123的安全上下文
mkdir /dir1 建立一个目录测试
cd /dir1 到此目录下方便操作
touch file{1…4} 建立file1-4
ls -Z 显示此时file1-4的安全上下文
chcon -t public_content_t /dir1 -R 递归的形式临时更改目录及目录下文件的安全上下文
semanage fcontext -a -t public_content_t ‘/dir1(/.*)?’ 永久更改安全上下文
semanage fcontext -l grep /dir1

测试:

命令 功能
lftp 172.25.254.110 完成每项操作后,都用此服务访问服务端
ls 查看是否能显示

Linux中文件的安全上下文

3、程序使用某些功能时受限制

命令 功能
getsebool -a grep ftp
setsebool -P ftpd_anon_write 1 打开允许匿名用户上传功能
gentenforce 查看selinux状态是否为强制模式
setenforce 1 设置为强制模式
getenforce 查看是否成功
restorecon -RvvF /var/ftp/pub 刷新

Linux中文件的安全上下文