3

我正在尝试学习 Selinux。使用沙箱并使用 VSFTPD 进行试验,我有一个在 Centos 中运行的 vsfptd 服务器。我有匿名用户将文件放在 /var/ftp/incoming 中。在远程机器上,我可以让用户成功登录,但无法将文件放在删除 vsftpd 服务器上:

$ftp mysql_server
Connected to mysql_server (192.168.1.31).
220 Welcome to blah FTP service.
Name (mysql_server:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer ftp> put atd 
local: atd remote: atd
227 Entering Passive Mode (192,168,1,31,19,161).
553 Could not create file.
ftp> 

在 VSFTPD 服务器上,aureport -a 报告显示:

[root@mysql_server ftp]# aureport -a

AVC Report
========================================================
# date time comm subj syscall class permission obj event
========================================================
4. 04/08/2013 13:30:36 vsftpd unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 21 dir write system_u:object_r:public_content_t:s0 denied 28
5. 04/08/2013 13:34:57 vsftpd unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 2 dir write system_u:object_r:public_content_t:s0 denied 47

我检查了目录,文件上下文看起来不错,所以我不明白为什么 Selinux 不允许 vsftpd 写入传入目录:

[root@mysql_server ftp]# ls -Z
drwx-wx---. root ftp  system_u:object_r:public_content_t:s0 incoming
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
[root@mysql_server ftp]#
4

2 回答 2

4

您需要运行以下命令以允许在 SELinux 中上传和编辑文件:

setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
于 2014-06-10T04:38:58.160 回答
1

您的 SELinux 类型不正确。使用“public_content_rw_t”而不是“public_content_t”。阅读更多http://beginlinux.com/blog/2008/11/vsftpd-and-selinux-on-centos/

于 2013-06-16T11:58:47.480 回答