ALT Linux Community general discussions
 help / color / mirror / Atom feed
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, попадает в некий виртуальный
> корневой каталог. Там, скажем, каталоги, соответствующие доменам сервера
> приложений, а в них - каталоги проектов этого домена. Он может ходить
> только по тем из этих каталогов и делать с ними только то, что разрешено
> (на уровне файловой системы). При этом никаких других частей файловой
> системы не должно быть доступно.


      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