Назад | Перейти на главную страницу

Пользователь Proftpd не может писать / удалять в домашнем каталоге

Я пытаюсь настроить пользователя в centos, который может читать / писать / удалять файлы / etc в каталоге / var / www / html. С некоторой помощью здесь я дал пользователю возможность входить в систему и просматривать файлы, но теперь они не могут загружать / удалять и т. Д.

Я создал пользователя ftpuser с UID / GID 500, действующей оболочкой / bin / sh и домашним каталогом / var / www /

Я сменил владельца / var / www / html на ftpuser.ftpuser [и попробовал также 0777]

Этот пользователь должен иметь возможность читать / записывать / del файлы в каталоге / var / www / html /.

вот конфиг proftpd:

ServerName                      "ProFTPD server"
ServerIdent                     on "FTP Server ready."
ServerAdmin                     root@localhost
ServerType                      standalone
DefaultServer                   on
VRootEngine                     on
#DefaultRoot                    ~ !adm
DefaultRoot                     /var/www/
VRootAlias                      /etc/security/pam_env.conf etc/security/pam_env.conf
AuthPAMConfig                   proftpd
AuthOrder                       mod_auth_pam.c* mod_auth_unix.c
#PersistentPasswd               off
UseReverseDNS                   off
User                            nobody
Group                           nobody
MaxInstances                    20
UseSendfile                     off
LogFormat                       default "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth    "%v [%P] %h %t \"%r\" %s"

# Global Config - config common to Server Config and all virtual hosts
# See: http://www.proftpd.org/docs/howto/Vhost.html
<Global>
  Umask                         022
  AllowOverwrite                yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>
</Global>

<Directory /var/www>
        AllowOverwrite          yes
        <Limit ALL>
                AllowAll
        </Limit>
</Directory>

<Limit LOGIN>
AllowUser ftpuser
DenyALL
</Limit>

Не знаю, почему это не сработает. Кто-нибудь видит, что я делаю не так?

Похоже, здесь вам помешал SELinux. Если вы не хотите, чтобы SELinux предотвращал запись файлов ftp где-либо в системе, вам нужно включить логическое значение allow_ftpd_full_access. Прежде всего, проверьте, включен ли он в настоящее время или отключен, запустив:

getsebool allow_ftpd_full_access

Если он сообщает вам, что он выключен, включите его с помощью этой команды (может потребоваться около минуты, чтобы применить во всей вашей системе, поэтому наберитесь терпения):

setsebool -P allow_ftpd_full_access = 1

Кроме того, поскольку вы установили домашний адрес вашего пользователя в / var / www, вам также потребуется установить ftp_home_dir значение Вкл.

setsebool -P ftp_home_dir = 1

Когда вы устанавливаете хомедир, user_home_t контекст безопасности, вероятно, также был установлен на / var / www. Установите что-нибудь более общедоступное, например httpd_sys_content_t или public_content_rw_t. Ты можешь использовать chcon для этого.

chcon -R -t httpd_sys_content_t / var / www

После применения этих настроек перезагрузите FTP-сервер, и все будет в порядке.

Видеть эта документация если вам нужна более подробная информация.