<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Serov.eu &#187; Lunix</title>
	<atom:link href="https://serov.eu/?feed=rss2&#038;tag=lunix" rel="self" type="application/rss+xml" />
	<link>https://serov.eu</link>
	<description>Блог программиста</description>
	<lastBuildDate>Thu, 30 Apr 2026 12:31:53 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.15</generator>
	<item>
		<title>Как настроить vsFTPd с виртуальными пользователями на CentOS 6.6</title>
		<link>https://serov.eu/?p=179</link>
		<comments>https://serov.eu/?p=179#comments</comments>
		<pubDate>Thu, 06 Apr 2017 08:47:07 +0000</pubDate>
		<dc:creator><![CDATA[Evgen]]></dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[Lunix]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">https://serov.eu/?p=179</guid>
		<description><![CDATA[делать надо так: # cd /etc/vsftpd # vim vusers.txt site1.com site1_password site2.com site2_password На основе этого файла сгенерируем базу данных Berkley, которая будет использоваться PAM для аутентификации наших виртуальных пользователей и поместим полученный файл в директорию /etc/vsftpd (чтобы по феншую) # db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db Шаг 3. Зададим файл конфигурации PAM для &#8230; <a href="https://serov.eu/?p=179" class="more-link">Читать далее <span class="screen-reader-text">Как настроить vsFTPd с виртуальными пользователями на CentOS 6.6</span></a>]]></description>
				<content:encoded><![CDATA[<p><code></p>
<p>делать надо так:</p>
<p># cd /etc/vsftpd<br />
# vim vusers.txt</p>
<p>site1.com<br />
site1_password<br />
site2.com<br />
site2_password</p>
<p>На основе этого файла сгенерируем базу данных Berkley, которая будет использоваться PAM для аутентификации наших виртуальных пользователей и поместим полученный файл в директорию /etc/vsftpd (чтобы по феншую)</p>
<p># db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db</p>
<p>Шаг 3. Зададим файл конфигурации PAM для vsftpd использующий сгенерированную базу данных. Создадим файл /etc/pam.d/vsftpd-virtual</p>
<p>#%PAM-1.0<br />
auth required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user<br />
account required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user<br />
session required pam_loginuid.so</p>
<p>Внимание! Путь к файлу базы данных в конфигурации PAM задаётся без расширения .db, хотя такое расширение у файла имеется! В противном случае, PAM будет говорить о том, что не нашёл указанный файл. Это очень странная особенность с которой приходится считаться</p>
<p>Шаг 4. Теперь необходимо сконфигурировать сам vsftpd. Зададим содержимое файла /etc/vsftpd/vsftpd.conf:</p>
<p># Отключает анонимный доступ</p>
<p>anonymous_enable=NO</p>
<p># Включает не-анонимный (sic!) доступ</p>
<p>local_enable=YES</p>
<p># Активирует поддержку виртуальных пользователей</p>
<p>guest_enable=YES guest_username=ftp</p>
<p># Виртуальные пользователи используют локальный привилегии (а не анонимные)</p>
<p>virtual_use_local_privs=YES</p>
<p># Включает поддержку записи</p>
<p>write_enable=YES</p>
<p># Файл конфигурации PAM для vsftpd. Совпадает с именем файла конфигурации в /etc/pam.d</p>
<p>pam_service_name=vsftpd-virtual</p>
<p># Следующие две строчки определяют локальные директории для пользователей</p>
<p># В данном случае это будут /var/www/<имя пользователя></p>
<p>user_sub_token=$USER<br />
local_root=/var/www/$USER</p>
<p># Виртуальные пользователи ограничены своим каталогом</p>
<p>chroot_local_user=YES</p>
<p># Убирает передачу реальных идентификаторов групп и пользователей файлов</p>
<p>hide_ids=YES</p>
<p># Запустить</p>
<p># vsftpd listen=YES</p>
<p># Слушать данные на порту 20</p>
<p># connect_from_port_20=YES</p>
<p># Маска для создания новых файлов</p>
<p>local_umask=022</p>
<p>Полный конфиг</p>
<p>listen=YES<br />
listen_port=21<br />
ftp_data_port=20<br />
connect_from_port_20=YES<br />
nopriv_user=ftp<br />
ftp_username=ftp<br />
idle_session_timeout=300<br />
port_enable=YES<br />
anonymous_enable=YES<br />
anon_root=/home/ftp/anonymous<br />
no_anon_password=YES<br />
anon_mkdir_write_enable=NO<br />
anon_other_write_enable=NO<br />
anon_upload_enable=NO<br />
chown_uploads=YES<br />
chown_username=ftp<br />
anon_umask=022<br />
local_enable=YES<br />
local_root=/home/ftp/$USER<br />
chroot_local_user=YES<br />
local_umask=022<br />
chmod_enable=YES<br />
banner_file=/etc/vsftpd/banner<br />
dirmessage_enable=YES<br />
message_file=.message<br />
dirlist_enable=YES<br />
ls_recurse_enable=NO<br />
mdtm_write=YES<br />
deny_file={.message}<br />
use_localtime=YES<br />
guest_enable=YES<br />
guest_username=ftp<br />
user_config_dir=/etc/vsftpd/user_config/$USER<br />
user_sub_token=$USER<br />
download_enable=YES<br />
write_enable=YES<br />
ascii_download_enable=YES<br />
ascii_upload_enable=YES<br />
lock_upload_files=YES<br />
virtual_use_local_privs=YES<br />
pam_service_name=vsftpd<br />
secure_chroot_dir=/var/run/vsftpd</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>https://serov.eu/?feed=rss2&#038;p=179</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
