Тема: [Fedora] ProFTPd відповідає на STOR кодом 550 після перезапуску серве
Історія така:
Був жив собі сервер з ProFTPd з модулями:
################################################################################
# Динамічне завантаження модулей (DSO) #
################################################################################
<IfModule mod_dso.c>
# Якщо не завантажено модуль mod_lang, то завантажити
# У Fedora він зазвичай завжди встановлений і не потребує цього
<IfModule !mod_lang.c>
LoadModule mod_lang.c
</IfModule>
# Завантажити модуль mod_ifsession
# У Fedora він не встановлений, тому треба завантажувати завжди
LoadModule mod_ifsession.c
# Завантажити модуль mod_ifversion
# У Fedora він не встановлений, тому треба завантажувати завжди
LoadModule mod_ifversion.c
# Завантажити модуль mod_copy
# SITE_COPY
# У Fedora він не встановлений, тому треба завантажувати завжди
LoadModule mod_copy.c
# Завантажити модуль mod_site_misc
# SITE_UTIME, SITE_SYMLINK, SITE_MKDIR, SITE_RMDIR
# У Fedora він не встановлений, тому треба завантажувати завжди
LoadModule mod_site_misc.c
# Завантажити модуль mod_ban
# У Fedora він не встановлений, тому треба завантажувати завжди
LoadModule mod_ban.c
# Завантажити модуль mod_delay
# Він входить у склад ProFTPd
<IfModule !mod_delay.c>
LoadModule mod_delay.c
</IfModule>
# Завантажити модуль mod_log
# Він входить у склад ProFTPd
<IfModule !mod_log.c>
LoadModule mod_log.c
</IfModule>
# Завантажити модуль mod_site
# Він входить у склад ProFTPd
<IfModule !mod_site.c>
LoadModule mod_site.c
</IfModule>
# Завантажити модуль mod_ls
# Він входить у склад ProFTPd
<IfModule !mod_ls.c>
LoadModule mod_ls.c
</IfModule>
# Завантажити модуль mod_auth
# Він входить у склад ProFTPd
<IfModule !mod_auth.c>
LoadModule mod_auth.c
</IfModule>
# Якщо не завантажено модуль mod_ctrls, то завантажити
# У Fedora він зазвичай завжди встановлений і не потребує цього
<IfModule !mod_ctrls.c>
LoadModule mod_ctrls.c
</IfModule>
# Завантажити модуль mod_ctrls_admin
# У Fedora він не встановлений, тому треба завантажувати завжди
# Потребує mod_ctrls
<IfModule mod_ctrls.c>
LoadModule mod_ctrls_admin.c
</IfModule>
# Якщо не завантажено модуль mod_readme, то завантажити
# У Fedora він зазвичай завжди встановлений і не потребує цього
<IfModule !mod_readme.c>
LoadModule mod_readme.c
</IfModule>
</IfModule>
#Якщо бачиш, то оформи! Не лінуйся!
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
# Рекомендовані налаштування для справної роботи модуля аутентифікації користувачів
RequireValidShell off
AllowRetrieveRestart on
# Налаштування взаємодії з базою даних
<IfModule mod_sql.c>
# Метод аутентифікації користувачів (лише з БД MariaDB)
AuthOrder mod_sql.c
</IfModule>
Всі юзери мали доступ відповідно до налаштувань, всі писали і читали. Оновлення на сервер ставилися автоматично, SELinux жив і працював та претензій не мав.
Та одного дня вирішив трохи підкоригувати конфіги що підтягувалися так до основного:
################################################################################
# Розмежування доступу до тек #
################################################################################
<Global>
DefaultRoot %{env:PATH_FILES}
########################################################################
# Читання: всі
# Запис: всі
<Directory %{env:PATH_FILES}/PUBLIC>
AllowOverwrite on
HideNoAccess on
<Limit ALL>
AllowAll
</Limit>
<Limit SITE_CHMOD>
AllowAll
</Limit>
<Limit SITE_COPY>
AllowAll
</Limit>
<Limit SITE_MKDIR>
AllowAll
</Limit>
<Limit SITE_RMDIR>
AllowAll
</Limit>
<Limit SITE_UTIME>
DenyAll
</Limit>
<Limit SITE_SYMLINK>
DenyAll
</Limit>
</Directory>
########################################################################
# Підвантаження налаштувань персональних тек користувачів
Include %{env:PATH_CONFIG}/users/*.conf
########################################################################
# Підвантаження налаштувань спеціальних тек користувачів
Include %{env:PATH_CONFIG}/directory/*.conf
########################################################################
# Читання: Всі
# Запис: Адміністратори сервера
<Directory %{env:PATH_FILES}/USERS>
HideNoAccess on
<Limit READ>
AllowAll
DenyAll
</Limit>
<Limit WRITE>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit DIRS>
AllowAll
DenyAll
</Limit>
<Limit SITE_CHMOD>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_COPY>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_MKDIR>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_RMDIR>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_UTIME>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_SYMLINK>
AllowGroup OR Admins
DenyAll
</Limit>
</Directory>
########################################################################
# Читання: Всі
# Запис: Адміністратори сервера
<Directory %{env:PATH_FILES}>
HideNoAccess on
<Limit READ>
AllowAll
DenyAll
</Limit>
<Limit WRITE>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit DIRS>
AllowAll
DenyAll
</Limit>
<Limit SITE_CHMOD>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_COPY>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_MKDIR>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_RMDIR>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_UTIME>
AllowGroup OR Admins
DenyAll
</Limit>
<Limit SITE_SYMLINK>
AllowGroup OR Admins
DenyAll
</Limit>
</Directory>
########################################################################
</Global>
Вони працювали як треба. Ну для впевненості у тому, що все добре вирішено було перезавантажити сервер. Ну завжди так роблю. Перезавантажив, працює, можеш спокійно спати на роботі. Та цього разу сталася біда.. жахлива та незбагнена. Все працює як завжди, окрім одно: на всі STOR сервер повертає одну вперту відповідь 550. SELinux допитав, він свою провину спростував. А в логу ProFTPd повідомлення одне:
[02/Apr/2015:09:01:18 +0300] [LAN] 192.168.1.101 => WhiteServer.local [4129], Bosses:TobiPipets, "PASV" => 227, -(3337)
[02/Apr/2015:09:01:18 +0300] [LAN] 192.168.1.101 => WhiteServer.local [4129], Bosses:TobiPipets, "STOR /PUBLIC/Наказ про звільнення адміна що третій день не може повернути сервер у роботу.docx.part" => 550, -(3389)
На всі теки вже 777 поставив замість 640. Теки належать root, ProFTPd працює від імені ftp, на всі теки вже поставив public_content_rw_t навіть на ті які лише читають.
Але є одна аномалія, якщо заходжу під своїм користувачем на FTP сервер то все працює, але пароль та ім'я користувача FTP сервера збігаються з тими що є в системі сервера. Тому підозрюю, що проблема лиш з віртуальними користувачами. Але знайти причину не можу. :'( Допоможіть! ::)