SELinuxを設定した後、PHPからメールが送れない → postfix fatal: setrlimit: Permission denied

SELinuxを設定した後、PHPからメールが送れない。

/var/log/maillogを確認すると、以下のようなエラーが出ているはず。

Mar 3 18:11:59 php postfix/sendmail[2237]: fatal: setrlimit: Permission denied

以下のコマンドでSELinuxの設定を確認できます。
sudo getsebool httpd_can_sendmail

httpd_can_sendmail –> off

いかのコマンドで、offからonに変更します。

sudo setsebool -P httpd_can_sendmail on

 

 

FTPのエラー → 500 OOPS: cannot change directory

SELinuxを有効にすると、

500 OOPS: cannot change directory: /home/developers

というようなエラーが出る。

これは、SELinuxがhomeディレクトリへのアクセスを禁止しているため。

次のコマンドで設定を変更する。

sudo setsebool -P ftp_home_dir 1

ただし、デフォルトではSELinuxは全てのFTPの設定を許可していません。

次のコマンドを入力すると、次のように出力されます。

sudo getsebool -a | grep ftp

allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
ftp_home_dir –> off
ftpd_connect_db –> off
httpd_enable_ftp_server –> off
sftpd_anon_write –> off
sftpd_enable_homedirs –> off
sftpd_full_access –> off
sftpd_write_ssh_home –> off
tftp_anon_write –> off

原則的には、意味を確認しながら一つずつ許可していくのですが、一般的には次のコマンドで全てを許可します。

sudo setsebool allow_ftpd_full_access on

個別に許可が必要な場合は、意味を調べて、必要な権限だけ許可して下さい。