Можно ли создавать пользователей ftp и назначать им доступ к избранным папкам с помощью php? - PullRequest
1 голос
/ 07 ноября 2010

Мне просто нужно было знать, возможно ли в php создать пользователя ftp, а затем создать папки на сервере и предоставить ftp доступ к выбранным папкам для созданного пользователя ftp.

Еще раз спасибо!

Ответы [ 4 ]

2 голосов
/ 07 ноября 2010

Родной PHP не может этого сделать. Задача - выход из сферы действия PHP.

Однако, в зависимости от используемой ОС сервера и программного обеспечения сервера FTP, PHP может вызывать некоторые сценарии оболочки (или сценарии WMI / PowerShell в Windows), которые выполняют задачу. Это не так просто для настройки, особенно если это не нужно делать безопасно (без предоставления привилегий корневого уровня процесса PHP).

Этот вопрос лучше подходит для Serverfault.com.

1 голос
/ 07 ноября 2010

Существует несколько веб-хостингов панелей , написанных на PHP, которые, среди прочего, создают учетные записи ftp, поэтому это определенно возможно.

Точная процедура полностью зависит от используемого вами FTP-сервера. Это может включать создание новых учетных записей пользователей Unix.

Это скорее вопрос о FTP или операционной системе, чем вопрос PHP, хотя вам нужно выложить оболочку, чтобы выполнить настройку. Как сказал Пекка, вам, возможно, повезет больше с вопросом о Serverfault, если вы включите детали своей настройки.

0 голосов
/ 07 ноября 2010

Ответ «Да», если веб-процесс, в котором запускается скрипт, позволяет изменять настройки FTP, например, добавлять пользователей, группы и т. Д. С помощью встроенной функции PHP или дополнительного «сценария оболочки», и будет «Нет», есливеб-процесс не имеет доступа и прав для внесения изменений.

0 голосов
/ 07 ноября 2010

Нет, но если я не ошибаюсь, вы могли бы сделать что-то вроде этого

Создайте сценарий оболочки (ftp.sh), который имеет SUID (убедитесь, что он принадлежит root и может быть только для чтения / записи root), который создает пользователей, устанавливает разрешения и т.д.

вызов скрипта с php

system("./ftp.sh ".escapeshellarg($newUsername)." ".escapeshellarg($newPassword))

Однако я почти уверен, что есть более безопасные / правильные способы сделать это. Я определенно вижу, что это становится кошмаром безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...