Страница 1 из 1

Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 9:32:22
Dmitriy_K
Сейчас занимаюсь проблемой создания ограниченного для пользователей сервиса SFTP. Сделал это через croot SSH (http://www.lissyara.su/articles/freebsd ... tp+chroot/).
Всё хорошо, но требуется, чтобы после входа пользователя автоматически менялась его рабочая директория на ту, в которой он может создавать файлы (типа команды "cd User_files").
Если кто знает, подскажите, пожалуйста, можно ли это как-то сделать через дот-файлы настроек в пользовательской директории.
Я пока не нашёл способ, чтобы это сработало. :(

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 10:14:26
Dmitriy_K
Пока решил вопрос так: :"":

Код: Выделить всё

# pw usermod sftp01 -d /User_files
pw: WARNING: home `/User_files' does not exist
.....
sftp01:*:1002:1000:User &:/User_files:/bin/sh
.....
sshd_config
Match group sftpusers
        ChrootDirectory  /home/%u
Кто-нибудь может подсказать ещё что-либо полезное по этой теме?

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 12:23:20
rmn

Код: Выделить всё

cd /User_files
в ~/.login не работает?

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 12:37:21
Dmitriy_K
rmn писал(а):

Код: Выделить всё

cd /User_files
в ~/.login не работает?
Нет, (да и не должно, вроде).
Пробовал в разных вариантах, например так:

Код: Выделить всё

#!/bin/sh

/usr/bin/cd User_files

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 15:09:21
Termitnik
А /etc/ftpchroot разве не поможет в этой ситуации?

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 16:53:28
Dmitriy_K
Termitnik писал(а):А /etc/ftpchroot разве не поможет в этой ситуации?
Какие это имеет выгоды. В чём +- ?
Хотелось бы иметь высоконадёжное решение.
В принципе, у меня уже нормальное решение. На ругань pw можно не обращать внимание. Разве что досаждает чрутовая директория уровнем выше пользовательской.
Насчёт дот-файлов я интересовался, до того как нашёл способ автоматического перехода в пользовательскую директорию.

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-29 22:31:55
rmn
Dmitriy_K писал(а): Пробовал в разных вариантах, например так:

Код: Выделить всё

#!/bin/sh

/usr/bin/cd User_files
а так:

Код: Выделить всё

remcomp# cat .login
echo "Current directory is '`pwd`'"
cd /data
echo "Current directory is '`pwd`'"

Код: Выделить всё

remcomp% ssh root@localhost
Password:
Last login: Tue Nov 29 21:35:16 2011 from localhost
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.  All rights reserved.

FreeBSD 8.1-RELEASE (REMCOMP) #0: Mon Jan 31 12:43:32 EET 2011


Current directory is '/root'
Current directory is '/data'
remcomp# pwd
/data
remcomp# 
?

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-30 8:14:05
Termitnik
Dmitriy_K писал(а):
Termitnik писал(а):А /etc/ftpchroot разве не поможет в этой ситуации?
Какие это имеет выгоды. В чём +- ?
Хотелось бы иметь высоконадёжное решение.
В принципе, у меня уже нормальное решение. На ругань pw можно не обращать внимание. Разве что досаждает чрутовая директория уровнем выше пользовательской.
Насчёт дот-файлов я интересовался, до того как нашёл способ автоматического перехода в пользовательскую директорию.
Поверьте, это не менее надежно, чем велосипеды, которые вы тут пытаетесь изобрести :-D

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-11-30 21:01:50
Dmitriy_K
rmn писал(а):а так:

Код: Выделить всё

remcomp# cat .login
echo "Current directory is '`pwd`'"
cd /data
echo "Current directory is '`pwd`'"
Спасибо за хороший пример, но это не мой случай жизни. (А жаль... :( )
Мне нужно чтобы это работало в SFTP после входа с chroot SSH (http://www.lissyara.su/articles/freebsd ... tp+chroot/).
Termitnik писал(а):Поверьте, это не менее надежно
Тут есть непонимание. Мне нужно сделать надёжный и безопасный SFTP-доступ (с шифрованием и без SSH), с минимальными сложностями создания и удаления учёток (чтобы этим мог заниматься менеджер по клиентам без всяких знаний). Учёток планируют 500-1000.
Вариант, который сделал я, всем хорош, но ко мне придираются насчёт директории на уровень выше пользовательской. Дескать, хотим идеального. :fool:
Привиредливые ламеры-заказчики - бесконечная беда. :no:
Не хотел бы переходить на вариант PureFTP. С ним сложнее для долговременной эксплуатации и менеджер должен быть умнее, чем есть в наличии.

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-12-01 9:11:28
Dmitriy_K
Я нашёл способ запретить просмотр содержимого директории выше пользовательской за счёт изменения прав на неё:

Код: Выделить всё

chown root:wheel sftp01
chmod 751 sftp01

К сожалению, это может лишь дезориентировать людей, поскольку попав в служебную директорию они не могут увидеть свою. Вот как бы запретить в SFTP переходить пользователю на уровень выше его директории?
К сожалению, пришлось столкнуться с проблемой насчёт использования авторизации по ключам SSH. По непонятным причинам не идёт (ключ не принимается).
Может кто подскажет, можно ли это как-то решить?

Re: Изменение текущей директории пользователя после логина

Добавлено: 2011-12-02 10:33:23
Dmitriy_K
Изучив до конца тему насчёт SFTP-chroot понял, что дот-файлы в данном случае не обрабатываются. Возможность автоматического перехода в пользовательскую поддиректорию с правами записи тоже не предусмотрена в openssh. Можно только использовать найденный мной вариант указания пользователю хоума относительно директории чрутинга. Но в таком варианте невозможно использовать авторизацию по ключам SSH, поскольку они ищутся не относительно директории чрутинга, а относительно корня сервера, т.е. в домашней директории которая прописана в учётной записи.
Кое-что полезное, что нашлось по теме:
http://www.minstrel.org.uk/papers/sftp/faq.html
http://www.minstrel.org.uk/papers/sftp/builtin/
http://wiki.lapipaplena.org/index.php/H ... P_accesses
http://wiki.russianfedora.ru/index.php/ ... D0%B7_sftp
Насчёт причин запрета пользовательской записи в директорию чрутинга:
http://www.linux.org.ru/news/security/4138918