Сообщение об ошибке “500 OOPS: vsftpd: отказ работать с перезаписываемым корнем внутри chroot ()” - сохраняет пользователя заключенным в тюрьму

До сих пор я не мог сохранить пользователя FTP заключенным в тюрьму к их каталогу веб-сайта. Существует ли решение, которое и исправляет эту ошибку и сохраняет пользователя заключенным в тюрьму к их каталогу?

Мои vsFTPd настройки, которые я изменил:

listen_port=9000
Set: anonymous_enable=NO
Uncomment: local_enable=YES
Uncomment: write_enable=YES
Uncomment: local_umask=022
Set: connect_from_port_20=NO
Uncomment: idle_session_timeout=600
Uncomment: data_connection_timeout=120
Comment out: #ftpd_banner=Welcome to blah FTP service. [should be on line 104]
Added: banner_file=/etc/issue.net
Uncomment: chroot_local_user=YES
Uncomment: chroot_local_user=YES
Uncomment: chroot_list_enable=YES
Uncomment : chroot_list_file=/etc/vsftpd.chroot_list

В конце файла я добавил:

# Show hidden files and the "." and ".." folders.
# Useful to not write over hidden files:
force_dot_files=YES

# Hide the info about the owner (user and group) of the files.
hide_ids=YES

# Connection limit for each IP address:
max_per_ip=10

# Maximum number of clients:
max_clients=5

# FTP Passive Settings
pasv_enable=YES
#If your listen_port is 9000 set this range to 7500 and 8500
pasv_min_port=[port range min]
pasv_max_port=[port range max]

Рассматриваемый пользователь, mybloguser, заключен в тюрьму к ее/его каталогу веб-сайта под /srv/www/myblog и этот пользователь не является частью nano /etc/vsftpd.chroot_list файл. Корневой каталог пользователя также /srv/www/myblog который используемый для работы в прошлом.

Я попробовал allow_writeable_chroot=YES решение, которое не работало и на самом деле повредило vsFTPd полностью.

Я попробовал:

Как мы можем зафиксировать эту ошибку и сохранить пользователя заключенным в тюрьму к их корневому каталогу?

19
задан 29 September 2018 в 17:51

9 ответов

Для VSFTPD 3,

  1. Перейдите по адресу: /etc/vsftpd.conf
  2. и добавьте это:

    allow_writeable_chroot=YES
    

    Просто добавьте его, если это так еще не существует.

  3. Перезапустите службу vsftpd:

    service vsftpd restart
    

И это должно сработать.

0
ответ дан 29 September 2018 в 17:51

После дальнейшего просмотра этого поста в комментариях был размещен пакет, который исправил мою проблему. Вы можете искать его либо по моему имени, либо по "Маркам". Документация: http://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside- корневой / . Вот мои подробности того, как я это исправил.

ПОЛЬЗОВАТЕЛИ ВСЕГДА ЗАВЕРШИЛИСЬ В ИХ ГЛАВНУЮ СПРАВОЧНИК !!!

# ------------------------------------------------------------------------------
# SETUP FTP USERS --------------------------------------------------------------
# ------------------------------------------------------------------------------

# create the ftp users and lock them to the website directories
useradd -d /srv/www/[website/appname] -m [ftp user name]

# set the ftp account passwords
passwd [ftp user name]

# add the ftp users to the www-data user/group
adduser [ftp user name] www-data

# BUG FIX: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd

# Edit the vsftpd.conf and append this setting to the end of the file to keep users' jailed!
nano /etc/vsftpd.conf

# add all of the text between the starting [[ and ending ]]
# [[

# Keep non-chroot listed users jailed
allow_writeable_chroot=YES

# ]]

# restart the service for changes to take effect
sudo service vsftpd restart

#test ftp via secondary terminal window:
ftp [ftp user name]@[server ipaddress] [ftp port]
0
ответ дан 29 September 2018 в 17:51

Согласно предыдущему ответу «РЕАЛЬНОЕ решение этой проблемы: домашняя папка пользователя не должна быть доступна для чтения только для чтения». Общее мышление правильно, но с неправильной реализацией.

Ниже я попытаюсь привести простой пример:

Для начала нам нужно построить топологию каталога пользователя:

 /home (ro)
   |-someuser (rw,700)
         |-ftp_upload (ro,555)  - ch_rooting here, required read-only by vsftpd :(
           |-temp (rw,755)
           |-in_box (rw,755)
           |-out_box (rw,755)

vsftpd.conf cut: [ 119]

# Enable chrooting
chroot_local_user=YES

# chroot all users except listened inside chroot_list
chroot_list_enable=YES

# Exception list. Ideally, it should be blank ;)
chroot_list_file=/etc/vsftpd/chroot_list

# Map ftp root directory to specific directory
local_root=/home/someuser/ftp

Эта конфигурация прекрасно работает с однопользовательской конфигурацией . Для многопользовательских, директива user_config_dir должна использоваться дополнительно.

** ОБНОВЛЕНИЕ 20/09

------ **

Вот хитрый обходной путь, не лучшая идея для использования, но .... Если вам нужен ftp с возможностью записи корневую папку, просто вставьте команды изменения разрешений в команды перед запуском и после запуска.

  1. Pre-start - изменить права доступа только для чтения, которые требуются серверу (:

  2. Запустить сервер

  3. [ 1116] Post-start - измените разрешение на чтение-запись или что вам нужно.

0
ответ дан 29 September 2018 в 17:51

Реальное решение этой проблемы: домашняя папка пользователя пользователя не должна быть доступной для записи только для чтения.

Итак, если пользовательский сайт находится в папке cat/example.com/http/, папка cat должна иметь chmod 555 и все будет в порядке.

0
ответ дан 29 September 2018 в 17:51

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

0
ответ дан 29 September 2018 в 17:51

После 3 часов поиска с помощью Google я вошел в Ubuntu 14.04.2 работа LTS VSFTPd 3. Домашняя папка будет видимым/home/vimal, однажды получил доступ с клиентом. Я вошел в систему с vimal с полномочием пользователя root. У меня есть ftpShare созданная папка, но не имеет большого значения.

sudo chown vimal:vimal /home/vimal/ftpShare/

некоторые полезные команды:

sudo nano /etc/vsftpd.conf
sudo service vsftpd restart
sudo apt-get purge vsftpd
netstat -a | grep ftp
tcp        0        0        *:ftp         *:*        LISTEN
ftp://12.345.23.xxx/  for browser login

Выше средств работает демон ftp

У меня есть следующая конфигурация:

seccomp_sandbox=no
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES

После того как FTP, работающий Вас, может далее настроить его на определенные потребности, часть вышеупомянутого имеет значения по умолчанию, но я не помню точно.

Ошибки замечены в Клиенте FTP:

1. 500 OOPS: prctl PR_SET_SECCOMP перестал работать

Решение.

seccomp_sandbox=no    

[добавьте его на самой первой строке vsftpd.conf, после того, как начальная буква прокомментировала концы раздела]

2. 500 OOPS: vsftpd: отказ работать с перезаписываемым корнем внутри chroot ()

allow_writeable_chroot=YES

Я добавил его в последней строке.

0
ответ дан 29 September 2018 в 17:51

Это почти то, что упомянул тостбой70. Сделайте ftp-root dir chown'd для ftp.ftp и недоступным для записи (/etc/vsftpd.conf): anon_root = / srv / ftp

Затем сделайте доступным для записи дочерним dir: / srv / ftp / upload

0
ответ дан 29 September 2018 в 17:51

Я решил проблему vsFTPd, отказывающегося работать с доступным для записи корнем внутри chroot () на моем сервере Ubuntu, следующим образом:

Я только что добавил следующую строку в файл vsftpd.conf:

[ 110]
0
ответ дан 29 September 2018 в 17:51

Мне также нужно было добавить следующее в файл /etc/vsftpd.conf:

seccomp_sandbox=NO

И нет необходимости в пользовательском репо !!

И раскомментировать строку:

write_enable=YES
0
ответ дан 29 September 2018 в 17:51

Другие вопросы по тегам:

Похожие вопросы: