Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Создание пользователя с доступом на ssh


Автор: ПапаМишка 11.1.2012, 11:27
Подскажите, кто может, я не силён в Linux пока что.

Надо создать пользователя, что бы у него был доступ по ssh на чтение файлов только с одной папки.
ОС CentOS 5.x

Такое возможно?

Автор: BlackRu 11.1.2012, 18:16
По умолчанию в системах Linux разные папки файлы  имеют разные права для доступа пользователелей. 
Права на каталоги и файлы определяются для 
хозяина, группы и пользователей, на чтение, запись и выполнение, в двоичной системе,
о -доступа нет, 1- есть доступ, для удобства пересчитываются в 8-чной системе
owner group    users
000   000      000 - нет прав
111   000      000  - права 700

Пример каталог /root
drwx------  root - права 700
т.е. нет возможности простому пользователю даже перейти в каталог.

файл /etc/passwd
-rw-r--r-- права 644 
Т.е. этот файл пользователь должен читать, иначе он просто не сможет войти в систему.

Т.е. так обстоят дела из другими каталогами и файлами, которые пользователь по крйне мере должен читать. 
Изменить права к системным файлам означает нарушить логику системы, что, вероятно, приведет к ее неработоспособности. 

При создании пользователя командой
useradd -m someuser - создается простой пользователь, который может изменять,читать и выполнять все в своей папке, но, если другие пользователи не определелили права в папках своих каталогов, пользователь может и погулять по папкам других и читать то, на что есть доступ. 

Если пользователю предоставлен shell, значит, однозначно какие-то системные и пользовательские каталоги он сможет смотреть. Выход - закрыть нужные данные для пользователя.

А для полного ограничения доступа и доступа только к одному каталогу - требуется поменять логику самой системы, что является фантастической задачей  .

Автор: bilbobagginz 11.1.2012, 21:22
Цитата(BlackRu @  11.1.2012,  17:16 Найти цитируемый пост)
А для полного ограничения доступа и доступа только к одному каталогу - требуется поменять логику самой системы, что является фантастической задачей  .

есть такая пословица: "твой дом - тюрьма".
этого можно достигнуть 2мя простыми способами:
1) jail + chroot (дорого с т.з. места в системе, но относительно железно)
2) rbash/bash2 (дешево, но не очень ограничивает)

вопрос целей и требований.



Автор: ПапаМишка 12.1.2012, 08:43
BlackRu, спасибо огромное за подробный ответ!

bilbobagginz, большое спасибо!

я не до конца верно сформулировал, если будет доступ к своей директории то ничего страшного, главное кроме этого доступ к ещё одной папке...

ну ладно, буду видимо продолжать яндексить и йяхить)

Автор: BlackRu 12.1.2012, 16:53
bilbobagginz
Спасибо, не знал, но из пунктов ответа следует неоднозначность
Код


1) jail + chroot (дорого с т.з. места в системе, но относительно железно)
2) rbash/bash2 (дешево, но не очень ограничивает)



пункт 2 отпадает сразу. 

Пункт 1, вероятно, т.е. чисто предположительно (в глобальном смысле), может привести к моему достаточно абстрактному, но все-таки  ответу, правда с учетом  уровня категоричности постановки задачи. 

Может потребоваться сильно переработать систему, чтобы сделать защиту близкой к идеальной. 

Автор: bilbobagginz 13.1.2012, 00:12
Цитата(BlackRu @  12.1.2012,  15:53 Найти цитируемый пост)
пункт 2 отпадает сразу

нет. я не знаю что человеку конкретно надо. 
Цитата(BlackRu @  12.1.2012,  15:53 Найти цитируемый пост)
Может потребоваться сильно переработать систему, чтобы сделать защиту близкой к идеальной. 

идеалов нет. надо посмотреть на наиболее вероятные и дешевые (по времени и средствам) вектора атак, и защищаться от них.
ну и бэкапиться, ессно.

есть уже несколько готовых инструментов (apparmor enforce, selinux, RSBAC)
вопрос что надо человеку, и чем он рискует при нарушении его юзерами этих ограничений.
по моему jail + chroot хватит по уши.



Автор: BlackRu 13.1.2012, 01:21
Тогда вопрос либо совсем абстрактный, либо совсем конкретный.

Если рассматриваем абстрактно, то система подразумевает какое-то взаимодействие, значит доступ к каким-то файлам все равно будет.

Если у автора темы есть конкретная задача, то может можно обойтсь и "самыми" стандартными средствами *nix:
chmod, chown, на худой конец chattr.


Виртуализация в данном случае не могла пригодиться?

Автор: bilbobagginz 13.1.2012, 09:19
Цитата(BlackRu @  13.1.2012,  00:21 Найти цитируемый пост)
Виртуализация в данном случае не могла пригодиться?

jail дешевле: если кол-во юзеров не макенькое, каждому по виртуалке жирноватее.

Автор: BlackRu 13.1.2012, 23:44
Цитата(ПапаМишка @ 12.1.2012,  08:43)
BlackRu, спасибо огромное за подробный ответ!

bilbobagginz, большое спасибо!

я не до конца верно сформулировал, если будет доступ к своей директории то ничего страшного, главное кроме этого доступ к ещё одной папке...

ну ладно, буду видимо продолжать яндексить и йяхить)

С учетом постановки задачи:
1. Нужно посмотреть какому пользователю принадлежит эта еще одного папка
Например: user1
2. Нужно внести пользователя (например user2, которому нужно дать доступ) в группу пользователя user1
Это делается стандартной командой в шел
useradd -G  user1 user2

или прямым редактированием файла, напрмер


 nano /etc/group

wheel:x:10:root,user1

Как видим, есть группа wheel и в этой грппе два пользователя через запятую - root и user1
Это означает, что папки, принадлежащие группе wheel и  в атрибутах группы которых
прописаны права на чтение, запись, выполнение, могут изменяться и читаться пользователями в группе wheel (но не другими пользователями)

Автор: mihanik 15.1.2012, 21:23
http://www.webnext.ru/blog/2007/07/07/jail-chroot.html

Автор: BlackRu 15.1.2012, 22:08
mihanik, спасибо, тоже почитаю, интересно, не скажу, что уж очень просто для новичка.


Автор все-таки сформулировал задачу:
Цитата

я не до конца верно сформулировал, если будет доступ к своей директории то ничего страшного, главное кроме этого доступ к ещё одной папке...

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