44

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

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

2 ответа2

44

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

adduser --home /restricted/directory restricted_user

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

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

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-сервера (он не прерывает интерактивные сеансы при перезапуске, поэтому он безопасен, даже если вы что-то неправильно настроили; также не закрывает запущенный сеанс, пока вы не проверили, что все еще можете войти), все должно работать как предполагалось.

3

Самый простой способ создать пользователя с ограниченными правами, который не может отклониться от заданного каталога (например, в верхний каталог и т.д.) И иметь ограниченный / выбранный набор команд для использования, - это использовать Restricted Shell. Ref:

http://man.he.net/man1/rbash

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

ln -s /bin/bash /bin/rbash

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

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

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

С помощью Restricted Shell следующие действия запрещены или не выполняются:

  • смена каталогов с помощью CD

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

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

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

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

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

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

  • перенаправление вывода с использованием операторов перенаправления>,> |, <>,> &, &> и >>

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

  • добавление или удаление встроенных команд с опциями -f и -d для встроенной команды enable

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

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

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

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

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

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

и т.п.

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .