Вот моя ситуация: я настраиваю веб-сервер Ubuntu 14.04, которым должна поделиться команда. Я бы хотел, чтобы у команды был доступ на чтение / запись ко всему внутри var/www/html
(такой же как CHMOD 775
для каждого файла и папки).
Моя проблема в том, что клиенты SFTP на Mac (Transmit, Cyberduck и FileZilla) не соблюдают разрешения по умолчанию, которые я установил.
Спустя несколько часов я прошел много шагов, чтобы достичь своей цели:
Настройте разрешения для команды:
myteam
группаmyteam
группа/var/www/html
к myteam
С этой точки зрения, ls -la
из /var/www
возвращается
drwxrwsr-x 2 marcelo myteam 4096 Jul 20 13:29 html
Установите UMASK по умолчанию:
/etc/ssh/sshd_config
с участием Subsystem sftp /usr/lib/openssh/sftp-server -u 002
на основе Эта статья./etc/pam.d/sshd
и /etc/pam.d/login
с новой строкой session optional pam_umask.so umask=0027
на основе этот вопрос/etc/pam.d/common-session/
с новой строкой session optional pam_umask.so
и отредактировал /etc/login.defs
изменить строку UMASK на UMASK 002
на основе этот вопросНа этом этапе, если я подключусь к серверу по SSH через оболочку, umask
командные отчеты 002
, и все новые файлы и папки имеют правильные разрешения. Однако, если я отправляю SFTP на сервер через Transmit, Filezilla, Cyberduck и т. Д. И создаю файлы или папки, он не соблюдает и по умолчанию устанавливает файлы на rw-r--r--
и папки в rwxrwsr-x
(папки правильные). Я проверил, и FTP-клиенты не отменяют никаких разрешений - они отключены.
Это вечнозеленая проблема, о которой много раз говорили. Я написал здесь короткий ответ:
https://superuser.com/questions/937003/setting-default-group-permissions-via-sftp/937735#937735
По сути, вы сами ответили своим последним комментарием. SFTP сохраняет исходные разрешения и усекает umask
от него.