2010-06-06 12:40:52 +0000 2010-06-06 12:40:52 +0000
50
50

Создать пользователя SSH, имеющего права доступа только к определенным папкам.

Я установил SSH, но я обнаружил, что если я использую свой оригинальный аккаунт для входа в Ubuntu, он имеет слишком много разрешений. 0x2 и 0x2 и я хочу ограничить пользователя, чтобы иметь права только на определенные папки в Ubuntu. Как настроить такого пользователя?

Ответы (2)

53
53
53
2010-06-06 12:49:32 +0000

Это просто. Просто создайте нового пользователя с домашним каталогом в том, к которому он должен иметь доступ (эта команда должна быть запущена под sudo или в корневой оболочке):

adduser --home /restricted/directory restricted_user

Это создаст пользователя restricted_user, каталог /restricted/directory, а затем будут установлены права доступа к каталогу, чтобы пользователь мог в него записывать. По умолчанию у него не будет возможности записывать в любую другую директорию.

Если у вас уже есть директория, вы можете запустить команду adduser с опцией --no-create-home и установить разрешения вручную (также с привилегиями корня), например:

chown restricted_user:restricted_user /restricted/directory
chmod 755 /restricted/directory

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

1) Если вы хотите предоставить пользователю интерактивный сеанс оболочки, то подумайте о следующем это руководство о создании тюрьмы для chroot (в вашем /restricted/directory).

После этого добавьте следующее к вашему sshd_config:

Match user restricted_user
  ChrootDirectory /restricted/directory

2) Если вам нужно, чтобы он копировал файлы только между своей конечной точкой подключения и вашим хостом, все гораздо проще. Добавьте эти строки в конец вашего sshd_config:

Match user restricted_user
  ForceCommand internal-sftp
  ChrootDirectory /restricted/directory

Subsystem sftp internal-sftp

Затем прокомментируйте Subsystem sftp /usr/lib/openssh/sftp-server, поставив в начале значок хэша (#).

После перезагрузки вашего SSH сервера (он не убивает интерактивные сессии при перезагрузке, так что это безопасно, даже если вы что-то неправильно настроили; также, не закрывает вашу текущую сессию до того, как вы проверили, что вы все еще можете войти), все должно работать, как задумывалось.

5
5
5
2017-11-04 02:03:42 +0000

Самый простой способ создать пользователя с ограниченным доступом, который не может блуждать по данному каталогу (например, по верхнему каталогу и т.д.), и иметь ограниченный/выбранный набор команд для использования - это использовать ограниченную оболочку (Restricted Shell). Ссылка: http://man.he.net/man1/rbash

Сначала создайте сим-ссылку под названием rbash (запустите от имени корневого пользователя).

ln -s /bin/bash /bin/rbash

Затем просто создайте обычного пользователя с этим Ограниченным оболочкой, и установите домашний каталог в нужную папку:

useradd -s /bin/rbash -d /home/restricted_folder username

Даже без Ограниченной оболочки, если вы явно не добавите этого пользователя в sudoer’s list, или любые специальные группы, то она будет ограничена по умолчанию.

С Ограниченной оболочкой следующие действия запрещены или не выполняются:

  • изменение каталогов с cd

  • установка или снятие значений SHELL, PATH, ENV или BASH_ENV

  • указание имен команд, содержащих /

  • указание имени файла, содержащего / в качестве аргумента к . builtin команда

  • указание имени файла, содержащего косую черту в качестве аргумента к опции -p для команды сборки хэша

  • импорт определений функций из окружения оболочки при запуске

  • разбор значения SHELLOPTS из окружения оболочки при запуске

  • перенаправление вывода с помощью >, >|, <>, >&, &>, и >> redirect- ion operators

  • использование команды выполнения для замены оболочки на другую команду

  • добавление или удаление команд сборки с помощью опций -f и -d для включения команды сборки

  • использование команды включения для включения отключенных сборок оболочки

  • указание опции -p для команды сборки

  • выключение ограниченного режима с установкой +r или установкой +o ограниченного.

Эти ограничения применяются после любых загрузочных файлов

Более того/Опционально, чтобы ограничить пользователя ограниченным/выбранным набором команд для использования, вы можете создать .bash_профиль только для чтения этому пользователю, с

PATH=$HOME/bin

и создать сим-ссылку, какую бы команду вы не разрешили, в папку ~/bin для этого пользователя:

ln -s /bin/ls /home/restricted_folder/bin/ls
ln -s /bin/mkdir /home/restricted_folder/bin/mkdir
ln -s /bin/rm /home/restricted_folder/bin/rm

и т.д.

HTH

Похожие вопросы

19
12
8
5
1