Pure-FTPd Symlink не будет работать
Итак, я использую Ubuntu 12.04 LTS и установил Pure-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=
Я пробовал разные конфигурации, но не могу выйти из папки входа в систему и на накопитель. Вероятно, мне просто не хватает чего-то простого.
4 ответа
Хорошо, я развернул гостя VirtualBox, чтобы попробовать это с:
- VDI 8 ГБ, 512 МБ ОЗУ
- Установить с ubuntu-12.04-desktop-i386.iso
- / dev / sda1, 7000 МБ, ext4, mount /
- /dev/sda5, 999MB, fat32, mount / media / Store (NTFS не была опцией в программе установки)
- / dev / sda6, 587 МБ, своп
- Все остальные настройки по умолчанию, кроме часового пояса.
Я забыла, как ужасен был Unity.:) Я добавил Виртуальный Гость Дополнения, побежал 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
как Джо
Первая попытка: я создал символическую ссылку на /media/Store, которую Джо мог видеть в его ls /
, но не смог cd
в (550 Не могу сменить каталог на Store: в доступе отказано):
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, которую Джо мог видеть в его ls /
, но не смог cd
в (550 Невозможно изменить каталог на Store: не каталог):
sudo ln -s /dev/sda5 /home/ftpusers/joe/Store
sudo chown ftpuser:ftpgroup -R /home/ftpusers/joe
# sudo rm /home/ftpusers/joe/Store
Это было не удивительно, поскольку / 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, подключил том (который открывает его в Nautilus), добавил файл 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>
Надеюсь это поможет!
Вы уже читали FAQ по Pure-FTPd? http://download.pureftpd.org/pub/pure-ftpd/doc/FAQ
К сожалению, символические ссылки (которые находятся за пределами папки chroot пользователя FTP) не поддерживаются, если вы не строите из исходного кода с помощью ключа --with-virtualchroot.
В качестве альтернативы вы можете изменить точку монтирования диска хранения с / media / Store на другое место в вашей иерархии папок FTP, но это приведет к ее исчезновению из списка дисков Nautilus.
Очень простой способ - установить 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
Я решил это
Я использовал gksu PureAdmin для редактирования идентификатора пользователя и группы. Идентификатор пользователя теперь совпадает с моим логином администратора. Идентификатор группы Ubuntu теперь adm
UID =1000 GID =4
теперь я могу перейти по символической ссылке