PDA

Просмотр полной версии : Установка и настройка vsftpd для debian


grixann
16.11.2009, 21:31
Основной вопрос как настроить vsftpd
для vds основная задача загрузка файлов и выставления прав доступа .
Сделал только apt-get install vsftpd
Как добавить пользователя и пароль чтобы он стартовал с var/www/*

Fallen7
16.11.2009, 21:41
В конфиге используй опцию

Код:



user_config_dir=/etc/vsftpd


В папке /etc/vsftpd для каждого пользователя собсвенный файл настроек, типа

Код:



local_root=/var/www
write_enable=yes
file_open_mode=0775
local_umask=002


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

grixann
16.11.2009, 21:47
нету у меня папки , расскажи подробно как сделать давай по системным пользователям

Fallen7
16.11.2009, 21:53
Создай -)
mkdir /etc/vsftpd
useradd username
>/etc/vsftpd/username

grixann
16.11.2009, 22:07
Я то создал и что дальше пиши подробно что делать ?

Fallen7
17.11.2009, 00:27
Ох ёёё.
Ладно, например так:
конфиг /etc/vsftpd.conf приводим к виду:

Код:



listen=YES
connect_from_port_20=YES
listen_port=21
anonymous_enable=no
local_enable=yes
user_config_dir=/etc/vsftpd
chroot_local_user=yes
chmod_enable=yes
write_enable=no
ascii_download_enable=NO
ascii_upload_enable=NO
pasv_max_port=21400
pasv_min_port=21300
file_open_mode=0764
#local_umask=022
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
rsa_cert_file=/etc/ssl/private/vsftpd.pem
pam_service_name=vsftpd
ftpd_banner=Welcome to somewhere!


Создаём папку /etc/vsftpd

Код:



mkdir /etc/vsftpd


Создаём файл настроек пользователя fallen7

Код:



>/etc/vsftpd/fallen7


Редактируем /etc/vsftpd/fallen7 и приводим к виду

Код:



local_root=/var/www
write_enable=yes
file_open_mode=0775
local_umask=002


Добавляем пользователя fallen7

Код:



useradd fallen7


Создаём ему пароль

Код:



passwd fallen7


Если /var вынесен в отдельный раздел диска, то меняем /etc/fsttab, и добавляем в опцию монтирования acl

Код:



/dev/sda3 /var xfs defaults,acl 0 2


перемонтируем /dev/sda3 с новой опцией:

Код:



mount -o remount /dev/sda3


устанавливаем acl на /var/www

Код:



setfacl -R -m u:www-data:rwx /var/www
setfacl -m d:u:www-data:rwx
setfacl -R -m u:fallen7:rwx /var/www
setfacl -m d:u:fallen7:rwx


Решение с acl не совсем красивое, по ряду причин, но сейчас я заморачиваться с этим не буду - понадобится сами почитаете и поймёте.

grixann
17.11.2009, 01:22
и нечего не получилось
при попытке соединения пишет

PHP:



[
R
]
220
Welcome to somewhere
!
[
R
]
USER
fallen7
[
R
]
331
Please specify the password
.
[
R
]
PASS
(
hidden
)
[
R
]
500
OOPS
:
cannot change directory
:
/
home
/
fallen7
[
R
]
Connection failed
[
R
]
Delaying
for
120
seconds before reconnect attempt
#1


Чтобы избавить от проблемы мне создал папку /home/fallen7
И опять проблема при попытке закачать файл получаю ошибку

PHP:



[
R
]
227
Entering Passive Mode
(
188
,
40
,
161
,
19
,
83
,
119
)
[
R
]
Opening data connection
IP
:
188.40
.161
.19
PORT
:
21367
[
R
]
LIST
-
al
[
R
]
150
Here comes the directory listing
.
[
R
]
226
Directory send
OK
.
[
R
]
List
Complete
:
115
bytes in
0
,
22
seconds
(
0
,
5
KB
/
s
)
Transfer queue completed
1
File failed to transfer


также не проставляет права на доступ
Как это решить ?

Изменил настройки вфайле конфика на

PHP:



write_enable
=
yes
ascii_download_enable
=
Yes
ascii_upload_enable
=
Yes


Все равно не могу загрузить файлы и установить права на папки и файлы

Fallen7
17.11.2009, 10:36
acl установили?
покажите

Код:



getfacl /var/www

grixann
17.11.2009, 11:42
Fallen7 написал(а):

acl установили?
покажите

Код:



getfacl /var/www


нет наверное не установился

PHP:



-
bash
:
getfacl
:
command not found
root@buhalych
:
~
# setfacl -R -m u:www-data:rwx /var/www
-
bash
:
setfacl
:
command not found
root@buhalych
:
~
# setfacl -m d:u:www-data:rwx
-
bash
:
setfacl
:
command not found
root@buhalych
:
~
# setfacl -R -m u:fallen7:rwx /var/www
-
bash
:
setfacl
:
command not found
root@buhalych
:
~
# setfacl -m d:u:fallen7:rwx
-
bash
:
setfacl
:
command not found

Fallen7
17.11.2009, 11:47
Тогда установите, в чём проблема? Зачем пишите, что не работает, если не всё сделали?
Если вам на заводе машине колёса прикрутить забудут, вы ведь далеко не уедете.

Код:



aptitude install acl


и вперёд.

grixann
17.11.2009, 12:05
Fallen7 написал(а):

Тогда установите, в чём проблема? Зачем пишите, что не работает, если не всё сделали?
Если вам на заводе машине колёса прикрутить забудут, вы ведь далеко не уедете.

Код:



aptitude install acl


и вперёд.


Установил и перезагрузил сервер , но все осталось по прежнему

Fallen7
17.11.2009, 12:53
ACL установили?
снова показывает



Код:



getfacl /var/www


а заодно



Код:



cat /etc/fstab

grixann
17.11.2009, 13:12
Fallen7 написал(а):

ACL установили?
снова показывает



Код:



getfacl /var/www


а заодно



Код:



cat /etc/fstab


Наверное не установил как установить ?
ответ на getfacl /var/www

PHP:



getfacl
:
Removing leading
'/'
from absolute path names
# file: var/www
# owner: root
# group: root
user
:
:
rwx
group
:
:
r
-
x
other
:
:
r
-
x


ответ на cat /etc/fstab

PHP:



# UNCONFIGURED FSTAB FOR BASE SYSTEM

Fallen7
17.11.2009, 13:44
устанавливаем acl на /var/www

Код:



setfacl -R -m u:www-data:rwx /var/www
setfacl -m d:u:www-data:rwx
setfacl -R -m u:fallen7:rwx /var/www
setfacl -m d:u:fallen7:rwx


Это для кого я писал?
Заодно покажите, что у вас выводит mount.
Я бы советовал, для начала восстановить fstab (интересно, что же ты делал, что стёр fstab?)
выполняем команду fdisk -l и получаем что-то типа этого:

Код:



Device Boot Start End Blocks Id System
/dev/sda1 * 1 24 192748+ 83 Linux
/dev/sda2 38670 38913 1959930 5 Extended
/dev/sda3 25 38669 310415962+ 8e Linux LVM
/dev/sda5 38671 38913 1951897+ 82 Linux swap / Solaris


А потом восстанавливать /etc/fstab
Выглядит примерно так

Код:



#
proc /proc proc defaults 0 0
/dev/sda1 /boot ext2 defaults 0 2
/dev/sda2 / ext3 defaults 0 0
/dev/sda5 none swap sw 0 0

grixann
17.11.2009, 14:04
Fallen7 написал(а):

устанавливаем acl на /var/www

Код:



setfacl -R -m u:www-data:rwx /var/www
setfacl -m d:u:www-data:rwx
setfacl -R -m u:fallen7:rwx /var/www
setfacl -m d:u:fallen7:rwx


выполнил запрос



PHP:



root@buhalych
:
~
# fdisk -l
cannot open
/
proc
/
partitions


получил ответ может лучше я вам дам root доступ и вы посмотрите в чем дело ?

TwistedAndy
20.11.2009, 02:30
Когда-то настраивал FTP-сервер для загрузки файлов. Теперь для этих целей использую OpenSSH на сервере + WinSCP на Windows-машине. Отличная связка и настраивать по сути ничего не надо.

Fallen7
20.11.2009, 10:55
TwistedAndy написал(а):

Когда-то настраивал FTP-сервер для загрузки файлов. Теперь для этих целей использую OpenSSH на сервере + WinSCP на Windows-машине. Отличная связка и настраивать по сути ничего не надо.


Только не очень безопасная. Насколько я помню winscp не использует ключи. Хотя я не знаю как конкретно вы настраивали, как по мне ftp удобнее - но на вкус и цвет ...
Да и тут уже настроили впринципе.