Сегодня я столкнулся с проблемой настройки FTP в Mac OS X Server 10.8.
Так как на русскоязычных сайтах я ничего вменяемого не нашел, решил поделиться найденной информацией.
Казалось бы, что может быть проще: включил переключатель в определенном разделе настроек Сервера — и все само собой заработало…
Но это не совсем так!
Давайте рассмотрим по порядку все шаги, которые надо сделать, прежде чем включить заветный переключатель, и все заработает «в один клик». Для кого-то эти шаги очевидны, а для всех остальных и написана эта статья.
Команды терминала я здесь стараюсь по возможности не рассматривать, так как большинство параметров можно настроить через графический интерфейс MacOS X Server, а терминал — на крайний случай.
1. Первым делом — в разделе Users надо создать пользователя, которому впоследствии и будет предоставлен доступ. Можно, конечно, выбрать из списка уже созданных пользователей. Но в ряде случаев, например, для администрирования сайта сторонним администратором, имеет смысл создать нового.
Локальную папку (Home Directory) для него можно не указывать, то есть можно создать его как Local Network User (в этом случае — см. описание ошибки 530 в конце статьи).
2. Надо разрешить этому пользователю пользоваться сервисом FTP.
Для этого есть два способа:
— Либо делаем клик правой кнопкой мыши на пользователе, настройки которого надо изменить, выбираем «Edit access to servises», и в появившемся окне отмечаем FTP.
— Либо создаем группу пользователей, разрешаем этой группе доступ к FTP, и затем добавляем нашего пользователя к этой группе. Причем в отличии от группы, например, «Офис», в которой можно разрешить доступ сразу к нескольким сервисам (Контакты, Календарь, Сообщения, Почта, Wiki), я думаю, что для «FTP» лучше создать отдельную группу.
Выбор зависит от количества пользователей, а в целом — кому как нравится!
3. Добавляем пользователя в список пользователей FTP, назначаем права, указываем папку для доступа по FTP…
В настройках Сервера, в разделе FTP, в верхней части указываем путь к «расшариваемой по FTP» папке, или же выбираем Website Root, если планируется разместить на Сервере какой-то сайт. В предыдущих версиях MacOS X Server можно было дать доступ одновременно к нескольким папкам, но начиная с версии 10.8 можно указать только одну.
В этом же разделе нажимаем плюс "+" под списком 'Access", добавляем в него нашего пользователя, и указываем его права (чтение и запись, только чтение, только запись, нет доступа). Остальных пользователей (root, wheel, everyone else) лучше оставить как есть.
Теоретически, можно уже сейчас включать переключатель, и внутри сети все должно работать.
Если не заработало — ниже по тексту есть описания ошибок и пути их устранения.
4. Включаем доступ к нашему FTP-серверу через интернет
Для этого есть несколько путей:
— Подключение к сети через интернет по VPN:
Это самый предпочтительный способ с точки зрения безопасности, если все пользователи «свои». Но лично мне очень не хочется давать, например, стороннему администратору сайта даже теоретический доступ внутрь сети. Да и не всегда есть возможность или желание настраивать VPN-подключение с чужого устройства.
Чтобы не настраивать VPN, надо открыть 21 порт и пробросить его на Сервер.
Настройку базовой станции Apple делаем через утилиту AirPort, или прямо из настроек нашего Сервера:
Подключаемся к базовой станции проводом или через Wi-Fi, запускаем утилиту AirPort и выбираем вкладку Сеть.
В списке «DHCP-резервирование» назначаем Серверу статический IP-адрес внутри сети (MAC-адрес Сервера смотрим в разделе Системные настройки — Сеть, указываем MAC-адрес того подключения, которым Сервер будет постоянно подключен к базовой станции — LAN или Wi-Fi. Теоретически, это должно быть уже сделано перед самым началом настройки Сервера!)
В списке «Настройки порта» добавляем новое правило, в выпадающем меню выбираем «Доступ FTP», и указываем Частный IP-адрес (статический IP Сервера внутри сети, который мы зарезервировали). Значения общего и частного TCP-портов подставятся автоматически (21), UDP-порты оставляем пустыми.
Проброс порта 21 можно сделать и из настроек самого Сервера (в моем случае — в нем появился раздел TimeCapsule). Но почему-то там есть шаблоны для всех настроек, кроме FTP. Поэтому там выбираем вариант Other…, и далее заполняем поля, как написано выше.
Для настройки проброса портов в роутере другой марки — читайте руководство роутера, разделы DHCP-reservation, Port Forwarding.
5. Ошибки при настройке FTP и способы их устранения:
550 Can't change root.
ftp: Login failed
Одна из возможных проблем: путь к расшариваемой папке не должен содержать пробелов. Например, не получится расшарить папку вида
/Shared Items/Server/Documents/Scans
В этом случае лучше переименовать папку, например, так:
/Shared_Items/Server/Documents/Scans
Если это невозможно, можно попробовать создать ссылку на папку, например, командой терминала
ln -s "/Shared Items/Server/Documents/Scans" /private/tmp/Scans,
и затем в настройках FTP указывать /private/tmp/Scans вместо /Shared Items/Server/Documents/Scans
530 User john may not use FTP.
ftp: Login failed
Эта ошибка может возникнуть при попытке подключения по FTP с логином/паролем сетевого пользователя (Local Network User), при этом локальные пользователи подключаются без проблем. Происходит это оттого, что сетевым пользователям не назначена оболочка входа (точнее, login shell имеет значение false). Для исправления делаем следующее: делаем клик правой кнопкой мыши на пользователе, настройки которого надо изменить, выбираем «Advanced options...», и в появившемся окне в строке Login Shell меняем значение:
/usr/bin/false
на
/bin/sh
Если проблема была в этом, будет необходимо внести подобные изменения в настройки всех сетевых пользователей, которым необходимо подключаться по FTP.
В общем — ничего сложного, все на поверхности, «в один клик»!
Так как на русскоязычных сайтах я ничего вменяемого не нашел, решил поделиться найденной информацией.
Казалось бы, что может быть проще: включил переключатель в определенном разделе настроек Сервера — и все само собой заработало…
Но это не совсем так!
Давайте рассмотрим по порядку все шаги, которые надо сделать, прежде чем включить заветный переключатель, и все заработает «в один клик». Для кого-то эти шаги очевидны, а для всех остальных и написана эта статья.
Команды терминала я здесь стараюсь по возможности не рассматривать, так как большинство параметров можно настроить через графический интерфейс MacOS X Server, а терминал — на крайний случай.
1. Первым делом — в разделе Users надо создать пользователя, которому впоследствии и будет предоставлен доступ. Можно, конечно, выбрать из списка уже созданных пользователей. Но в ряде случаев, например, для администрирования сайта сторонним администратором, имеет смысл создать нового.
Локальную папку (Home Directory) для него можно не указывать, то есть можно создать его как Local Network User (в этом случае — см. описание ошибки 530 в конце статьи).
2. Надо разрешить этому пользователю пользоваться сервисом FTP.
Для этого есть два способа:
— Либо делаем клик правой кнопкой мыши на пользователе, настройки которого надо изменить, выбираем «Edit access to servises», и в появившемся окне отмечаем FTP.
— Либо создаем группу пользователей, разрешаем этой группе доступ к FTP, и затем добавляем нашего пользователя к этой группе. Причем в отличии от группы, например, «Офис», в которой можно разрешить доступ сразу к нескольким сервисам (Контакты, Календарь, Сообщения, Почта, Wiki), я думаю, что для «FTP» лучше создать отдельную группу.
Выбор зависит от количества пользователей, а в целом — кому как нравится!
3. Добавляем пользователя в список пользователей FTP, назначаем права, указываем папку для доступа по FTP…
В настройках Сервера, в разделе FTP, в верхней части указываем путь к «расшариваемой по FTP» папке, или же выбираем Website Root, если планируется разместить на Сервере какой-то сайт. В предыдущих версиях MacOS X Server можно было дать доступ одновременно к нескольким папкам, но начиная с версии 10.8 можно указать только одну.
В этом же разделе нажимаем плюс "+" под списком 'Access", добавляем в него нашего пользователя, и указываем его права (чтение и запись, только чтение, только запись, нет доступа). Остальных пользователей (root, wheel, everyone else) лучше оставить как есть.
Теоретически, можно уже сейчас включать переключатель, и внутри сети все должно работать.
Если не заработало — ниже по тексту есть описания ошибок и пути их устранения.
4. Включаем доступ к нашему FTP-серверу через интернет
Для этого есть несколько путей:
— Подключение к сети через интернет по VPN:
Это самый предпочтительный способ с точки зрения безопасности, если все пользователи «свои». Но лично мне очень не хочется давать, например, стороннему администратору сайта даже теоретический доступ внутрь сети. Да и не всегда есть возможность или желание настраивать VPN-подключение с чужого устройства.
Чтобы не настраивать VPN, надо открыть 21 порт и пробросить его на Сервер.
Настройку базовой станции Apple делаем через утилиту AirPort, или прямо из настроек нашего Сервера:
Подключаемся к базовой станции проводом или через Wi-Fi, запускаем утилиту AirPort и выбираем вкладку Сеть.
В списке «DHCP-резервирование» назначаем Серверу статический IP-адрес внутри сети (MAC-адрес Сервера смотрим в разделе Системные настройки — Сеть, указываем MAC-адрес того подключения, которым Сервер будет постоянно подключен к базовой станции — LAN или Wi-Fi. Теоретически, это должно быть уже сделано перед самым началом настройки Сервера!)
В списке «Настройки порта» добавляем новое правило, в выпадающем меню выбираем «Доступ FTP», и указываем Частный IP-адрес (статический IP Сервера внутри сети, который мы зарезервировали). Значения общего и частного TCP-портов подставятся автоматически (21), UDP-порты оставляем пустыми.
Проброс порта 21 можно сделать и из настроек самого Сервера (в моем случае — в нем появился раздел TimeCapsule). Но почему-то там есть шаблоны для всех настроек, кроме FTP. Поэтому там выбираем вариант Other…, и далее заполняем поля, как написано выше.
Для настройки проброса портов в роутере другой марки — читайте руководство роутера, разделы DHCP-reservation, Port Forwarding.
5. Ошибки при настройке FTP и способы их устранения:
550 Can't change root.
ftp: Login failed
Одна из возможных проблем: путь к расшариваемой папке не должен содержать пробелов. Например, не получится расшарить папку вида
/Shared Items/Server/Documents/Scans
В этом случае лучше переименовать папку, например, так:
/Shared_Items/Server/Documents/Scans
Если это невозможно, можно попробовать создать ссылку на папку, например, командой терминала
ln -s "/Shared Items/Server/Documents/Scans" /private/tmp/Scans,
и затем в настройках FTP указывать /private/tmp/Scans вместо /Shared Items/Server/Documents/Scans
530 User john may not use FTP.
ftp: Login failed
Эта ошибка может возникнуть при попытке подключения по FTP с логином/паролем сетевого пользователя (Local Network User), при этом локальные пользователи подключаются без проблем. Происходит это оттого, что сетевым пользователям не назначена оболочка входа (точнее, login shell имеет значение false). Для исправления делаем следующее: делаем клик правой кнопкой мыши на пользователе, настройки которого надо изменить, выбираем «Advanced options...», и в появившемся окне в строке Login Shell меняем значение:
/usr/bin/false
на
/bin/sh
Если проблема была в этом, будет необходимо внести подобные изменения в настройки всех сетевых пользователей, которым необходимо подключаться по FTP.
В общем — ничего сложного, все на поверхности, «в один клик»!