Чистая-FTPd Символьная ссылка не будет работать

Хорошо, Таким образом, я использую Ubuntu 12.04 LTS и я Установленный Чистый-FTPd, я сделал пользователя и группу для него, Когда я вхожу в систему с клиентом FTP, это помещает меня в/home/group/user

Я хочу иметь доступ к своему Накопителю оттуда, таким образом, я поместил символьную ссылку в папку, которая указывает на/media/Store, и это обнаруживается на FTP, но, Это не позволит мне следовать за ним.

Диск/media/Store форматирован в NTFS, таким образом, я не могу изменить полномочия на нем.

etc/pure-ftpd/conf имеет:

AltLog clf:/

ChrootEveryone yes

Daemonize yes

FSCharset UTF-8

MaxClientsNumber 50

MaxClientsPerIP 2

MinUID 1000

NoAnonymous yes

PAMAuthentication no

PureDB /etc/pure-ftpd/pureftpd.pdb

TrustedGID 1001

UnixAuthentication no

мой pureftpd.passwd файл смотрит почти как

user:x:1001:1001:://usr/group/user/::::::::::::

мой etc/default/pure-ftpd-common похож

# Configuration for pure-ftpd
# (this file is sourced by /bin/sh, edit accordingly)
# STANDALONE_OR_INETD
# valid values are "standalone" and "inetd".
# Any change here overrides the setting in debconf.
STANDALONE_OR_INETD=standalone
# VIRTUALCHROOT: 
# whether to use binary with virtualchroot support
# valid values are "true" or "false"
# Any change here overrides the setting in debconf.
VIRTUALCHROOT=true
# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
# pure-uploadscript will also be run to spawn the program given below
# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
# pure-uploadscript(8)
# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
UPLOADSCRIPT=
# if set, pure-uploadscript will spawn $UPLOADSCRIPT running as the
# given uid and gid
UPLOADUID=
UPLOADGID=

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

1
задан 15 September 2013 в 08:00

4 ответа

Хорошо, я вращал гостя VirtualBox для испытания этого с:

  • VDI НА 8 ГБ, ПОРШЕНЬ 512 МБ
  • Установка от ubuntu-12.04-desktop-i386.iso
  • /dev/sda1, 7000 МБ, ext4, монтируются /
  • /dev/sda5, 999 МБ, fat32, монтируют/media/Store (NTFS не был опцией в установщике),
  • /dev/sda6, 587 МБ, подкачка
  • Все другое значение по умолчанию настроек за исключением часового пояса.

Ack, я забыл, как ужасная Единица была.:) Я добавил Виртуальные Гостевые Дополнения, работал update-manager, ожидавший для... 618 обновлений, перезагрузка. Затем я следовал Общественной документации в: https://help.ubuntu.com/community/PureFTP

sudo apt-get install pure-ftpd
    # already installed?
gksudo gedit /etc/inetd.conf
    # no changes required?
gksudo gedit  /etc/default/pure-ftpd-common
    # already: STANDALONE_OR_INETD=standalone
    # changed: VIRTUALCHROOT=true
sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Примечание: id ftpuser возвраты uid=1001(ftpuser) gid=1001(ftpgroup) groups=1001(ftpgroup) в этой точке.

sudo mkdir /home/ftpusers
sudo mkdir /home/ftpusers/joe
sudo pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe
sudo pure-pw mkdb
sudo ln -s /etc/pure-ftpd/pureftpd.passwd /etc/pureftpd.passwd
sudo ln -s /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB
sudo sh -c 'echo "no" > /etc/pure-ftpd/conf/UnixAuthentication'
sudo chown ftpuser:ftpgroup -R /home/ftpusers
gksudo pureadmin

Подтвержденный это /etc/pure-ftpd/pureftpd.passwd содержавший:

joe:...:1001:1001::/home/ftpusers/joe/./::::::::::::

sudo /etc/init.d/pure-ftpd restart
    # Restarting ftp server: Running: /usr/sbin/pure-ftpd-virtualchroot -l pam -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -B

Теперь я смог ftp localhost как joe.

Первая попытка: Я создал символьную ссылку на/media/Store, который joe видел в его ls /, но не мог cd в к (550 не Может изменить каталог для Хранения: отклоненное Разрешение):

sudo ln -s /media/Store /home/ftpusers/joe/Store
sudo chown ftpuser:ftpgroup -R /home/ftpusers/joe
    # sudo rm /home/ftpusers/joe/Store

Вторая попытка: Я создал символьную ссылку на/dev/sda5, который joe видел в его ls /, но не мог cd в к (550 не Может изменить каталог для Хранения: Не каталог):

sudo ln -s /dev/sda5 /home/ftpusers/joe/Store
sudo chown ftpuser:ftpgroup -R /home/ftpusers/joe
    # sudo rm /home/ftpusers/joe/Store

Это не было surpising, так как/dev/sda5 является хранилищем блока не файловая система, но я попробовал его за хихиканье.

Третья попытка: Быть альтернативой, которую я дал в своем первом ответе, работало:

sudo mkdir /home/ftpusers/joe/Store
sudo chown ftpuser:ftpgroup -R /home/ftpusers/joe
sudo mount -t vfat -o noexec,ro,uid=1001,gid=1001 /dev/sda5 /home/ftpusers/joe/Store

Примечание: Я имел к sudo umount /media/Store прежде чем я мог смонтировать его в/home/ftpusers/joe/Store.

Быть вдвойне уверенным, что это также работает с NTFS, мной sudo umount /home/ftpusers/joe/Store, Я выполнил Дисковую утилиту, переформатировал раздел как NTFS, смонтировал объем (который открывает его в Наутилусе), добавил файл HelloNtfsWorld.txt, размонтировал его в Дисковой утилите, затем вышеупомянутый тест с немного измененный mount команда:

sudo mount -t ntfs -o noexec,ro,uid=1001,gid=1001 /dev/sda5 /home/ftpusers/joe/Store

Прекрасно!

ftp> ls -la
200 PORT command successful
150 Connecting to port 53727
drwxr-xr-x    3 1001       ftpgroup         4096 Sep 15 22:12 .
drwxr-xr-x    3 1001       ftpgroup         4096 Sep 15 22:12 ..
drwxrwxrwx    1 1001       ftpgroup         4096 Sep 15 22:36 Store
226-Options: -a -l 
226 3 matches total
ftp> cd Store
250 OK. Current directory is /Store
ftp> ls -la
200 PORT command successful
150 Connecting to port 57505
drwxrwxrwx    1 1001       ftpgroup         4096 Sep 15 22:36 .
drwxr-xr-x    3 1001       ftpgroup         4096 Sep 15 22:12 ..
-rwxrwxrwx    1 1001       ftpgroup            0 Sep 15 22:36 HelloNtfsWorld.txt
226-Options: -a -l 
226 3 matches total
ftp> 

Надеюсь, это поможет!

1
ответ дан 15 September 2013 в 08:00

Я решил

Я использовал gksu PureAdmin для редактирования идентификатора пользователя и группы. Идентификатор пользователя теперь совпадает с моим именем входа администратора. Идентификатор группы в Ubuntu: adm

uid = 1000 gid = 4

. Теперь я могу перейти по символической ссылке

.
0
ответ дан 15 September 2013 в 08:00

Вы уже читали FAQ по Pure-FTPd? http://download.pureftpd.org/pub/pure-ftpd/doc/FAQ

К сожалению, символические ссылки (которые указывают вне папки chroot пользователя FTP) не поддерживаются, если вы не создаете из источник с помощью ключа --with-virtualchroot.

В качестве альтернативы вы можете изменить точку монтирования диска хранения с / media / Store на другое место в вашей иерархии папок FTP, но это приведет к его исчезновению из списка дисков Nautilus.

0
ответ дан 15 September 2013 в 08:00

Очень простой способ - установить PureAdmin (который является графическим интерфейсом для Pure-FTPd) из центра программного обеспечения, но тогда важно, чтобы вы прочитали это: http://helloinfinity.com/pure-ftpd-authentication -failed-in-ubuntu /

Таким образом, команды, которые будут выполняться впоследствии:

sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

sudo vi /etc/pure-ftpd/conf/MinUID (измените значение на цифру ниже 1000, например, 100 для пример)

sudo service pure-ftpd restart
0
ответ дан 15 September 2013 в 08:00

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

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