Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Права на чтение только 1 папки


Автор: mishaSL 18.1.2007, 15:44
Ситуация следующая. Не так давно администрирую сервер на FreeBSD. Вроде все настроил. Сейчас разбираюсь с ftp доступом.
При создании нового пользователя у него есть достут по ftp и ssh, но помимо того что он имеет доступ к этой папке и также может прочесь все остальные. Необходимо сделать так чтобы он мог читать, писать и т.д. только в своей папке.

Прошу прощения если тема обсуждалась или вопрос очень глупый. Не так давно общаюсь с *nix системами, по-этому для меня это пока что проблематично.

Автор: Сумасшедший 21.1.2007, 14:51
Сделать chmod 600 для каталога, который нельзя просматривать другим пользователям.
Т.о. только владелец каталога сможет его просматривать.

Автор: ZeeLax 21.1.2007, 15:29
mishaSL, нужно покопаться в настройках FTP-сервера. Там имеется (обычно) достаточно адекватно названная опция, позволяющее осуществить задуманное.

Автор: Сумасшедший 21.1.2007, 17:55
ZeeLax, у mishaSL, есть таке доступ по ssh. Если подключиться как просто к FTP, то ограничить верхний каталог легко, а если подключиться по ssh, то тут уже проблема, решаемая большим приложений усилий и настроки прав доступа.
А если стоит ещё и web-сервер с, например, cgi-скриптами, то можно получить листинг каталога скриптами, безо всякого FTP

Автор: DENNN 21.1.2007, 18:10
Чего-то я не понял. Название ftp-севера принято скрывать? Как можно что-то посоветовать, если не знаешь что именно запущено?
По поводу ssh - Либо очень грамотная и продуманная раздачи прав на ВСЕ файлы и каталоги в системы, либо дополнительное использование MAC, либо пользователям в качестве шелла ставить свой скрипт, который сделает при входе chroot в нужную папку (тоже может быть не просто, в зависимости от того, что пользователям необходимо запускать/изменять/...).

Автор: mishaSL 22.1.2007, 18:23
Цитата(DENNN @  21.1.2007,  18:10 Найти цитируемый пост)
По поводу ssh - Либо очень грамотная и продуманная раздачи прав на ВСЕ файлы и каталоги в системы).


Как ее лучше осуществить? К примеру:

|--всякие папки к которым имеет доступ только root
|--home
    |--user1 (папка пользователя user1, он имеет к ней полный доступ и соответственно на все вложенные)
    |   |--logs(здесь логи сервера Apache)
    |   |--public_html(корневая папка сайта пользователя user1)
    |   |--cgi-bin (папка для cgi скриптов)
    |
    |--user2(папка пользователя user2, он имеет к ней полный доступ и соответственно на все вложенные)
    |-- ...... (и т.д.)

Как лучше расставить права на папку home? Каждай пользователь должен иметь доступ только ко своей папке.


Цитата(DENNN @  21.1.2007,  18:10 Найти цитируемый пост)
либо дополнительное использование MAC,


Что это? Дайте ссылочку на доки.

Цитата(DENNN @  21.1.2007,  18:10 Найти цитируемый пост)
Как можно что-то посоветовать, если не знаешь что именно запущено?


Какую информацию необходимо дать?


Автор: DENNN 22.1.2007, 18:56
Цитата(mishaSL @  22.1.2007,  18:23 Найти цитируемый пост)
Цитата(DENNN @  21.1.2007,  18:10 Найти цитируемый пост)
либо дополнительное использование MAC,


Что это? Дайте ссылочку на доки.

Mandatory Access Control
man 4 mac


Цитата(mishaSL @  22.1.2007,  18:23 Найти цитируемый пост)
Цитата(DENNN @  21.1.2007,  18:10 Найти цитируемый пост)
Как можно что-то посоветовать, если не знаешь что именно запущено?


Какую информацию необходимо дать?

Название ftp-сервера, его версию, как минимум.


Цитата(mishaSL @  22.1.2007,  18:23 Найти цитируемый пост)
Как ее лучше осуществить? К примеру:

.........   

Как лучше расставить права на папку home? Каждай пользователь должен иметь доступ только ко своей папке.

Лучше раставить права по принципу: все что не разрешено, то запрещено. Т.е. придется поскрипеть мозгами и сделать так, чтоб у обычного юзера не было прав на просмотр всех остальных каталогов, кроме своего собственного.
т.е., к примеру каталог /root должен иметь маску 640, и user не должен входить в группу wheel (что вообще-то и так само-собой подразумевается).
МОжно посмотреть, как розданы права у больших хостеров. К примеру у net.ru еще год назад стояла какая-то модифицированная freebsd 4-ой версии и доступ по ssh примерно как у тебя. Рабочая папка Apache обычно совмещается с домашним каталогом пользователя +SuExec и т.п. 



Автор: mishaSL 22.1.2007, 22:27
Цитата(DENNN @  22.1.2007,  18:56 Найти цитируемый пост)
Название ftp-сервера, его версию, как минимум.


FTP Сервер: ProFTPD

Автор: DENNN 22.1.2007, 23:13
Вот. А почему с этого нельзя было начать?

в конфиге раскоментируй или добавь

DefaultRoot ~

Версию я уж не буду клещами вытягивать, раз ты такой упрямый будешь сам читать мануалы на ProFTPD  smile 

Автор: coyl 23.1.2007, 03:41
Кстати, мануалы у профтпд преотвратнейшие (сам намучался) =)

Автор: mishaSL 23.1.2007, 11:30
Цитата(DENNN @  22.1.2007,  23:13 Найти цитируемый пост)
Версию я уж не буду клещами вытягивать, раз ты такой упрямый будешь сам читать мануалы на ProFTPD


Я просто нихрена не понимаю и запутался уже полностью с кучей настроек smile . Где можно посмотреть версию ProFTPD??? В конфиге не написано, а где еще можно посмотреть??? Читал мануал на proftpd.org там вообще что-то плохо понял что там и к чему! Если кто настраивал раскажите подробно, а то я уже в шоке...

Автор: DENNN 23.1.2007, 11:43
Цитата(coyl @  23.1.2007,  03:41 Найти цитируемый пост)
Кстати, мануалы у профтпд преотвратнейшие

Впервые слышу. Отличный демон и модулей к нему тоже немало.

Цитата(mishaSL @  23.1.2007,  11:30 Найти цитируемый пост)
Где можно посмотреть версию ProFTPD??? 

там же где и у 99.9% утилит и модулей
Код

man proftpd

proftpd(8)                                                          proftpd(8)



NAME
       proftpd  -  Professional  configurable,  secure  file transfer protocol
       server

SYNOPSIS
       proftpd [ -hlntv ] [ -c config-file ] [ -d debuglevel ] [ -p 0|1 ]

DESCRIPTION
       proftpd is the Professional File Transfer Protocol (FTP) server daemon.
       The  server may be invoked by the Internet "super-server" inetd(8) each
       time a connection to the FTP service is made, or alternatively  it  can
       be run as a standalone daemon.

       Each successful and failed ftp(1) session is logged using syslog with a
       facility of LOG_FTP.  Note: LOG_FTP messages are not displayed by  sys-
       logd(8) by default, and may have to be enabled in syslogd(8)'s configu-
       ration file.

       When proftpd is run in standalone mode and it receives a SIGHUP then it
       will  reread its configuration file.  When run in standalone mode with-
       out the -n option, the main proftpd daemon writes  its  process  ID  to
       /var/run/run/proftpd.pid  to  make  it  easy  to  know which process to
       SIGHUP.

OPTIONS
       -h,--help   Display a short usage description, including all  available
                   options.

       -n,--nodaemon
                   Runs  the  proftpd process in standalone mode (must be con-
                   figured as such in the configuration file),  but  does  not
                   background the process or disassociate it from the control-
                   ling tty.  Additionally, all output (log or debug messages)
                   are sent to stderr, rather than the syslog mechanism.  Most
                   often used with the -d option for debugging.

       -q,--quiet  Quiet mode; don't  send  logging  information  to  standard
                   error when running with the -n option.

       -v,--version
                   Displays the version number of ProFTPD to stdout.

       -D,--define parameter
                   Sets  a  configuration  parameter  which can be used <IfDe-
                   fine>...</IfDefine> sections in the configuration files  to
                   conditionally skip or process commands.
......................................


# proftpd -v
 - ProFTPD Version 1.3.0

# proftpd -V
Compile-time Settings:
  Version: 1.3.0
  Platform: FREEBSD6 (FREEBSD6_1)
  Built With:
    configure --localstatedir=/var/run --sysconfdir=/usr/local/etc --disable-sendfile --disable-ipv6 --with-modules=mod_ratio:mod_readme:mod_rewrite:mod_wrap:mod_tls:mod_quotatab:mod_quotatab_file:mod_ifsession --prefix=/usr/local i386-portbld-freebsd6.1

  Files:
    Configuration File:
      /usr/local/etc/proftpd.conf
    Pid File:
      /var/run/proftpd.pid
    Scoreboard File:
      /var/run/proftpd/proftpd.scoreboard

  Features:
    - Autoshadow support
    - Controls support
    + curses support
    - Developer support
    - DSO support
    - IPv6 support
    + Largefile support
    + ncurses support
    - POSIX ACL support
    - Shadow file suppport
    - Sendfile support

  Tunable Options:
    PR_TUNABLE_BUFFER_SIZE = 1024
    PR_TUNABLE_GLOBBING_MAX = 8
    PR_TUNABLE_HASH_TABLE_SIZE = 40
    PR_TUNABLE_NEW_POOL_SIZE = 512
    PR_TUNABLE_RCVBUFSZ = 65536
    PR_TUNABLE_SCOREBOARD_BUFFER_SIZE = 80
    PR_TUNABLE_SCOREBOARD_SCRUB_TIMER = 30
    PR_TUNABLE_SELECT_TIMEOUT = 30
    PR_TUNABLE_SNDBUFSZ = 32768
    PR_TUNABLE_TIMEOUTIDENT = 10
    PR_TUNABLE_TIMEOUTIDLE = 600
    PR_TUNABLE_TIMEOUTLINGER = 180
    PR_TUNABLE_TIMEOUTLOGIN = 300
    PR_TUNABLE_TIMEOUTNOXFER = 300
    PR_TUNABLE_TIMEOUTSTALLED = 3600
    PR_TUNABLE_XFER_BUFFER_SIZE = 32768
    PR_TUNABLE_XFER_SCOREBOARD_UPDATES = 10

# proftpd -l
Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_auth_pam.c
  mod_ratio.c
  mod_readme.c
  mod_rewrite.c
  mod_wrap.c
  mod_tls.c
  mod_quotatab.c
  mod_quotatab_file.c
  mod_ifsession.c


Надеюсь тебе хватит примеров smile

Цитата(mishaSL @  23.1.2007,  11:30 Найти цитируемый пост)
Если кто настраивал раскажите подробно, а то я уже в шоке... 

Теперь, с развитием интернета, мы знаем, что это не так ( (с) не мой )

Автор: mishaSL 23.1.2007, 11:52
DENNN, спасибо за примеры.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)