LINUX.ORG.RU

Ответ на: комментарий от sanwashere

Может. А кто должен быть владельцами html, txt и других неисполнимых файлов, чтобы они были доступны из броузера только при выставленном разрешении Read для other? Или я копаю не туда и доступ по аттрибутам 600 вполне нормально?

X_Y_Z
() автор топика
Ответ на: комментарий от X_Y_Z

Для этого нужно сменить владельца файлов на пользователя, отличного от текущего.
Например, если имеем такое:

[root@beta www]# ls -l
итого 92
-rw-------. 1 nginx nginx 66782 авг 27 18:40 icon.png
-rw-------. 1 nginx nginx   412 авг 27 18:40 index.html
-rw-------. 1 nginx nginx 17447 авг 27 18:40 logo.gif

Меняем владельца на другого пользователя:
[root@beta www]# chown root.root *
[root@beta www]# ls -l
итого 92
-rw-------. 1 root root 66782 авг 27 18:40 icon.png
-rw-------. 1 root root   412 авг 27 18:40 index.html
-rw-------. 1 root root 17447 авг 27 18:40 logo.gif

После этого мой NGINX будет отдавать 403-ю ошибку, так как доступа к файлам у него нет.
Добавляем права на чтение остальным пользователям:
[root@beta www]# chmod 0604 *
[root@beta www]# ls -l
итого 92
-rw----r--. 1 root root 66782 авг 27 18:40 icon.png
-rw----r--. 1 root root   412 авг 27 18:40 index.html
-rw----r--. 1 root root 17447 авг 27 18:40 logo.gif

И страницы отдаются нормально.

sanwashere ★★
()
Последнее исправление: sanwashere (всего исправлений: 1)
Ответ на: комментарий от sanwashere

600 плохо тем, что при 604 я убираю 4 и файл становится недоступен в Web, но его можно редактировать через ftp. При 600 - скрывать получается толко через htaccess.

X_Y_Z
() автор топика
Ответ на: комментарий от sanwashere

На одном из серверов были следующие настройки. 1) Я мог закачивать файлы через ftp. 2) Я мог через ftp изменять содержимое, аттрибуты или имя файлов, созданных на сервере. Например когда php создает txt файл, то txt полностью редактируем через ftp. 3) html файлы через Web доступны только если Read для Other выставлен (perm. 604)

Я просто хотел повторить такие-же настройки на другом сервере.

X_Y_Z
() автор топика
Ответ на: комментарий от X_Y_Z

Тут уже нужно играться с параметром umask, если он имеется в настройках сервера FTP. Тогда закачанные через FTP файлы будут иметь другого владельца и тот самый 0600.

Т.е. для гипотетического vsftpd и nginx будет что-то вроде этого:

[root@beta ~]# useradd -d/srv/www/site sitemod

[root@beta ~]# cat /etc/nginx/conf.d/99-site.conf
http {
    server {
        listen 80 default_server;
        root /srv/www/site

        location / {
            try_files $uri $uri/index.html $uri/index.htm =404;
        }
    }
}

[root@beta ~]# cat /etc/vsftpd/vsftpd.conf
chroot_local_user=yes
local_enable=yes
local_umask=0177
userlist_enable=yes
userlist_deny=no
userlist_file=/etc/vsftpd/allow_users
write_enable=yes

[root@beta ~]# cat /etc/vsftpd/allow_users
sitemod

Так как загрузка по FTP создаёт файлы с владельцем sitemod и парвами 0600 за счёт umask, nginx не будет их отображать, пока не будут сменены права.

sanwashere ★★
()
Ответ на: комментарий от sanwashere

В смысле не будет их отображать, пока не будут сменены права? Лучше, чтобы отображало сразу.

X_Y_Z
() автор топика
Ответ на: комментарий от sanwashere

Параметр local_umask меняется на 0173 один раз и потом все заливаемые через ftp файлы доступны на чтение/запись серверу, а ftp клиент также свободно может менять файлы, созданные сервером. Я правильно понимаю?

X_Y_Z
() автор топика

В какую сторону копать?

копать в сторону разрешения на 'x' на всех вышестоящих директориях

targitaj ★★★★★
()
Ответ на: комментарий от X_Y_Z

Да. Данная маска как раз и даст на выходе 0777 - 0173 = 0604. Заливаемые файлы будут принадлежать другому пользователю (sitemod в примере), а веб-сервер обычно имеет пользователем что-то своё (nginx, www-data, и т.п.).

sanwashere ★★
()
Последнее исправление: sanwashere (всего исправлений: 1)
Ответ на: комментарий от X_Y_Z

Только файлы будут доступны серверу только на чтение, ибо для Other установлено только Read. Для разрешения записи нужно будет маску в 0171 выставлять, чтобы получать 0606.

sanwashere ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.