Was ist der Unterschied zwischen httpd_read_user_content und httpd_enable_homedirs?

8

Das Apache-Modul von SELinux hat zwei ähnliche boolesche Parameter: httpd_read_user_contentund httpd_enable_homedirs.

Manpage sagt, das erstere erlaubt httpd, Benutzerinhalte zu lesen , und das letztere erlaubt httpd, Home-Verzeichnisse zu lesen .

Was ist der Unterschied zwischen ihnen?

Welchen Parameter sollte ich auf true setzen, wenn httpd Dateien im /home/fooVerzeichnis lesen soll ?

Tsutomu
quelle

Antworten:

10

httpd_read_user_contentErmöglicht jedem eingeschränkten Webserver das Lesen von Dateien in Benutzer-Home-Verzeichnissen in /home.

httpd_enable_homedirsermöglicht es Apache, seine UserDirDirektive zu verwenden (dh URLs, die aussehen http://www.example.com/~username/).

Wenn Sie nur Domänennamen den Benutzerverzeichnissen zuordnen, sollte es ausreichen, das erste zu aktivieren. httpd_read_user_contentWenn Sie jedoch Apache-Benutzerverzeichnisse verwenden möchten, sollten Sie beide aktivieren.

Michael Hampton
quelle
2

Nachdem ich selbst einige Nachforschungen angestellt hatte, untersuchte ich die Unterschiede zwischen ihnen mit dem sesearchBefehl:

$ sesearch --allow -s httpd_t -b httpd_read_user_content
5 semantische av-Regeln gefunden:
   Erlaube httpd_t user_home_dir_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t user_home_t: file {ioctl read getattr lock open}; 
   Erlaube httpd_t user_home_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t home_root_t: dir {getattr search open}; 
   Erlaube httpd_t home_root_t: lnk_file {read getattr};
$ sesearch --allow -s httpd_t -b httpd_enable_homedirs
Gefunden 15 semantische av-Regeln:
   Erlaube httpd_t user_home_dir_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t user_home_dir_t: lnk_file {read getattr}; 
   Erlaube httpd_t autofs_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t cifs_t: file {ioctl read getattr lock open}; 
   Erlaube httpd_t cifs_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t cifs_t: lnk_file {read getattr}; 
   Erlaube httpd_t nfs_t: file {ioctl read getattr lock open}; 
   Erlaube httpd_t nfs_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t nfs_t: lnk_file {read getattr}; 
   Erlaube httpd_t user_home_t: file {ioctl read getattr lock open}; 
   Erlaube httpd_t user_home_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t user_home_type: dir {getattr search open}; 
   Erlaube httpd_t user_home_type: lnk_file {read getattr}; 
   Erlaube httpd_t home_root_t: dir {ioctl read getattr lock search open}; 
   Erlaube httpd_t home_root_t: lnk_file {read getattr}; 

Alle Regeln der http_read_user_contentsind in der enthalten httpd_t -b httpd_enable_homedirs. Das heißt, der Umfang des letzteren ist breiter als der des ersteren.

Wie Michael richtig sagte, sollten wir nur den ersten aktivieren, wenn wir nur das Dokumentenstammverzeichnis im Home-Verzeichnis eines Benutzers platzieren möchten.

Tsutomu
quelle