我正在通過CGI在Apache服務器中運行Python腳本。在腳本中,我嘗試讀取/ home目錄中的文件。但是,我只能讀取一個文件,而不能讀取其他文件。這對于我理解權限以及可以讀取或不讀取哪些內容的目標非常沮喪。# Worksfile_tmp = open("/home/blastdbs/db_01.fasta", 'r')# Failsfile_tmp = open("/home/blast_dbs/db_01.fasta", 'r')<type 'exceptions.IOError'>: [Errno 13] Permission denied: '/home/blast_dbs/db_01.fasta' ls -l /home/drwxr-xr-x. 2 myself myself 4096 Jun 17 18:18 blastdbsdrwxr-xr-x. 2 myself myself 4096 Jun 17 18:18 blast_dbsls -l /home/blastdbs/-rwxr-xr-x. 1 myself myself 32484551 Jun 17 17:28 db_01.fasta-rwxr-xr-x. 1 myself myself 2279012809 Jun 17 13:10 db_02.fastals -l /home/blast_dbs/-rwxr-xr-x. 1 myself myself 32484551 Jun 17 13:09 db_01.fasta順便說一句,嘗試讀取db_02會產生相同的異常。
2 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
Apache服務器安裝在啟用SELinux的Linux發行版中。SELinux默認情況下拒絕Apache讀取/ home文件夾中的文件。通過使用ls -Z可以檢查SELinux文件的標簽。就我而言,雖然通常的(DAC)權限是相同的,并且沒有設置ACL,但是SELinux上下文是不同的:
下一個可以從Apache守護程序和腳本讀?。?/p>
unconfined_u:object_r:httpd_sys_content_t:
下一個文件是SELinux拒絕訪問Apache的文件:
unconfined_u:object_r:user_home_t
添加回答
舉報
0/150
提交
取消