From: Headlong John <johnheadlong@nightmail.ru>
To: ALT Linux Community <community@lists.altlinux.org>
Subject: Re: [Comm] Question on FTP
Date: Thu, 14 Sep 2006 18:18:40 +0400
Message-ID: <1158243520.26576.denwebmail-5@johnheadlong@nightmail.ru> (raw)
In-Reply-To: <1157101317.3285.denwebmail-1@johnheadlong@nightmail.ru>
В общем, решил проблему так. Мой /etc/vsftd.conf:
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
local_root=/var/ftp
chroot_local_user=YES
write_enable=YES
Мой /etc/xinetd.d/vsftpd:
service ftp
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
nice = 10
rlimit_as = 16M
server = /usr/sbin/vsftpd
only_from = 192.168.0.0/24
}
Мой /etc/fstab:
...
# Это чтобы автоматически передеплоивать целиком приложение (ear) или модуль (war, ejb-jar)
/opt/SUNWappserver/domains/domain1/autodeploy /var/ftp/domain1/autodeploy none rw,bind 0 0
Права на домен назначил так:
[root@server-java john]# cd /var/ftp
[root@server-java ftp]# ls -la
total 3
drwxr-xr-x 3 root vsftpd 1024 Sep 14 16:50 .
drwxr-xr-x 21 root root 1024 Sep 14 16:48 ..
drwxr-xr-x 5 root vsftpd 1024 Sep 14 19:33 domain1
Для работы над проектом создаю группу, соответствующую имени проекта, например library, включаю туда пользователей-разработчиков проекта. Далее в каталоге домена создаю пустой файл, соответствующий имени файла приложения или модуля с проектом, и назначаю ему права, например для проекта library:
[root@server-java ftp]# cd domain1
[root@server-java domain1]# ls -la
total 3
drwxr-xr-x 3 root vsftpd 1024 Sep 14 21:51 .
drwxr-xr-x 5 root vsftpd 1024 Sep 14 19:33 ..
drwxr-xr-x 2 root root 1024 Sep 14 20:05 .autodeploystatus
-rw-rw---- 1 root library 0 Sep 14 20:05 library.ear
После этого через FTP разработчики могут обновлять свои и только свои проекты. И они могут перемещаться только по той части файловой системы, которая расположена в /var/ftp с учетом примонтированных частей (после подключения они попадают в /var/ftp). Удалять и создавать проекты они не могут. В результате получил примерно то, что хотел :-)
Единственное, что не получилось сделать как я хотел, так это предоставить возможность работать с проектом в распакованном виде. Дело в том, что сервер приложений распаковывает продеплоенное приложение в подкаталог каталога /opt/SUNWappserver/domains/домен/applications/j2ee-apps, а продеплоенный модуль - в подкаталог каталога /opt/SUNWappserver/domains/домен/applications/j2ee-modules, имя которого соответствует имени приложения или модуля. Например, приложение library.ear будет распаковано в /opt/SUNWappserver/domains/домен/applications/j2ee-apps/library. Проблема же в том, что при передеплойменте этот каталог удаляется и создается заново и для него устанавливается владелец и права доступа в соответствии с глобальными настройками (у меня это root:root и 755 соответственно), учесть права доступа на уровне участников разных проектов тут не получается :-( Что же касается каталога /opt/SUNWappserver/domains/домен/autodeploy, то сюда можно записывать только приложения или модули в виде архивов ear или war, ejb-jar соответственно.
> У меня сервер под Линуксом для джава-разработок, дистрибутив ALT Master
> 2.4. Так вот, я хочу обеспечить разработчикам возможность самим деплоить
> приложения на него не обладая при этом ни правами root'а ОС, ни правами
> администратора сервера приложений (дает возможность, кроме деплоймента,
> конфигурировать сервер приложений через веб или утилитами командной
> строки). Для этого решил использовать возможность автоматического
> деплоймента, когда собранные модули и приложения просто выкладываются в
> определенный каталог. Решил использовать для этого FTP, чтобы не
> привязываться к файловым службам, специфическим для ОС (nfs или smb).
>
> При этом желательно сделать так, чтобы можно было ограничить возможность
> перемещения пользователей FTP по файловой системе определенными участками,
> а также сделать так, чтобы можно было права на проекты раздавать. Решил
> использовать vsftpd из ALT Master 2.4. В результате не могу добиться того,
> что мне нужно.
>
> Сервер приложений установлен в /opt/SUNWappserver (это Sun Java System
> Application Server 8.2). Сервер приложений поддерживает понятие доменов,
> каждый домен, грубо говоря, - это совокупность настроек и продеплоенных
> приложений. Каждый домен расположен в своем подкаталоге каталога
> /opt/SUNWappserver/domains. Например, домен по умолчанию - в
> /opt/SUNWappserver/domains/domain1. Для автоматического деплоймента
> достаточно записать модуль или приложение в подкаталог autodeploy, можно в
> распакованном виде (то есть в подкаталог проекта в каталоге autodeploy
> нужного домена), что удобно с точки зрения обновления приложения и
> управления доступом разных людей к разным проектам.
>
> То есть в итоге должно получиться примерно следующее:
>
> Домен domain1:
>
> /opt/SUNWappserver/domains/domain1/autodeploy
>
> Проекты в домене domain1:
>
> каталог project1a - доступ у user1, user2
> каталог project1b - доступ у user2, user3
>
> Домен domain2:
>
> /opt/SUNWappserver/domains/domain2/autodeploy
>
> каталог project2a - доступ у user1, user3
> каталог project2b - доступ у user4
>
> Скажем, пользователь подключается по FTP, попадает в некий виртуальный
> корневой каталог. Там, скажем, каталоги, соответствующие доменам сервера
> приложений, а в них - каталоги проектов этого домена. Он может ходить
> только по тем из этих каталогов и делать с ними только то, что разрешено
> (на уровне файловой системы). При этом никаких других частей файловой
> системы не должно быть доступно.
prev parent reply other threads:[~2006-09-14 14:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-01 9:01 Headlong John
2006-09-11 9:55 ` Fr. Br. George
2006-09-12 7:50 ` Headlong John
2006-09-12 13:49 ` Fr. Br. George
2006-09-13 7:41 ` Headlong John
2006-09-14 14:10 ` Fr. Br. George
2006-09-15 14:56 ` Headlong John
2006-09-15 15:05 ` Serge Polkovnikov
2006-09-15 17:55 ` Maxim Tyurin
2006-09-16 8:54 ` Michael Shigorin
2006-09-18 10:21 ` Fr. Br. George
2006-09-17 18:11 ` Alexandr A. Alexandrov
2006-09-18 10:09 ` Fr. Br. George
2006-09-18 11:38 ` Michael Shigorin
2006-09-18 12:17 ` Fr. Br. George
2006-09-18 13:46 ` Maxim Tyurin
2006-09-18 16:44 ` Michael Shigorin
2006-09-20 11:31 ` Fr. Br. George
2006-09-20 17:53 ` Michael Shigorin
2006-09-22 12:50 ` Fr. Br. George
2006-09-22 19:36 ` Michael Shigorin
2006-09-18 10:14 ` Fr. Br. George
2006-09-14 14:18 ` Headlong John [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1158243520.26576.denwebmail-5@johnheadlong@nightmail.ru \
--to=johnheadlong@nightmail.ru \
--cc=community@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git