Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Linux normal path


  • Subject: Re: lug-bg: Linux normal path
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Wed, 24 Nov 2004 14:45:14 +0200

On Wed, Nov 24, 2004 at 01:25:34PM +0200, Aleksandar Valchev wrote:
> Признавам, направо ми взе акъла. Обстойно и изчерпателно. Много ти благодаря. 
> Мисля, че тази информацияще бъде полезна на много хора, не само на мен :).
> 
> Чак толкова сложни неща няма да ми трябват. Правя един сървар, на който му е 
> зададена директория. От тук на там, всички обръщения към пътища на файлове ще 
> започват с тази директория. т.е. има такава структура:
> 
> /home/blabla/ 
> /home/blabla/users/
> /home/blabla/users/ivancho
> /home/blabla/users/petkancho
> /home/blabla/conf/
> 
> Всеки потребител ще си има собствена директория с неопределено съдържание 
> (като файлова структура), но основното е /home/blabla/users. 

В такъв случай това, което ще ти свърши най-добра работа според мен, е
да видиш дали не можеш да изнесеш самия сървър в отделен процес, който в
момента, в който приеме връзка от потребител, да направи един chroot към
/home/blabla/users.  След chroot("/home/blabla/users") вече всички
пътища, които програмата използва, ще бъдат само в рамките на
/home/blabla/users - т.е. съвсем естествено ще се получи това, което
искаш: /mariika да бъде всъщност /home/blabla/users/mariika.

Тук може да имаш два проблема.  Първият е, че chroot можеш да изпълниш
само докато си с user ID 0, т.е. root, така че самият сървърски процес
ще трябва да бъде стартиран като root, след което да направи chroot и да
си продължи работата.  Другият проблем е, че веднъж направил chroot,
"излизане няма" - сървърният процес няма да може нито да
отваря/променя/трие файлове, нито да изпълнява програми, които са извън
/home/blabla/users.  Може би ще е добра идея да си направиш
архитектурата с два процеса - единият да приема връзки от потребителите,
да рови каквото има във външни файлове (може би за да провери права за
достъп и т.н.), след което да подава самите команди (почти без да се е
опитвал да ги parse-ва) на другия, който е chroot-нат и ги изпълнява
горе-долу безопасно.  Това е един вариант, има и други, но за момента
повече не мога да кажа, без да знам купчина подробности - какво всъщност
ще прави този сървър, как ще стигат до него заявките и т.н. :)

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
This sentence every third, but it still comprehensible.

Attachment: pgpJshd3cEbWc.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.