ограничивать пользователя только одной командой: «su -»

У меня есть веб-сервер, на котором размещается Play! Рамочное приложение, сервер представляет собой Amazon Linux EC2.

Если вы не знакомы с Amazon Linux, по умолчанию есть пользователь root и ec2-пользователь с привилегиями sudo. Для доступа к серверу вы используете ssh в качестве пользователя ec2 с помощью ключа, пароли отключены.

Я хочу, чтобы это приложение было максимально безопасным, и эта установка казалась мне небезопасной; если кто-то может получить ключ ssh, у него будет root-доступ к машине.

Чтобы затвердеть сервер, я добавил нового пользователя «Play». Я сохраняю и запускаю приложение из домашней папки Play users. Затем я удалил команду sudo от пользователя ec2 и добавил пароль для root.

Итак, теперь я вхожу через ssh в качестве пользователя ec2, у которого нет привилегий sudo, затем переключитесь на пользователя root / Play, чтобы вносить какие-либо изменения или работать на сервере.

Это похоже на довольно безопасное решение, однако я хотел бы сделать еще один шаг: я хочу ограничить пользователя, которого я использую для входа в систему (ec2-user) только с одной командой: «su -». Это все, что я буду использовать для этого пользователя для: переключения на root.

Для справки это команды, которые я запускал для этой настройки:

sudo su - 

Добавлен пароль для root:

 passwd 

Добавлен пользователь игры:

 sudo adduser Play 

Удалить ec2-пользователя из sudoers

 cd /etc/sudoers.d nano cloud-init 

Удалите файл ec2-пользователя и файл обновления:

 Play ALL= NOPASSWD: ALL # User rules for ec2-user Play ALL=(ALL) NOPASSWD:ALL 

заранее за вашу помощь / совет!

One Solution collect form web for “ограничивать пользователя только одной командой: «su -»”

Удаление доступа к другим командам, кроме su , по своей сути не сделает вашу систему более безопасной.

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

Другим не столь безопасным, но работоспособным решением является определение оболочки пользователя по умолчанию как скрипта, и этот скрипт имеет в нем команды su - и exit и ничего другого, кроме захвата прерываний, таких как ctrl-c или ctrl-z . Это называется неактивным интерфейсом. Вы также должны поместить этот скрипт в полный путь в конце /etc/shells . Поскольку это скрипт, он имеет все последствия безопасности, которые поставляются с этим, настоящим или будущим.

  • Предоставление переменных среды для последующих процессов началось в скрипте init.d
  • Как начать процесс выскочки для приложения golang?
  • Конфигурация NAT для EIP (Эластичный IP) в Asterisk
  • Конкретный пользовательский SSH-RSA с корневым доступом (через AWS EC2)
  • Переместить переменную среды в Sudo AWS ec2 sudo node
  • Уровень громкости systemd с использованием символической ссылки устройства
  • Доступ к серверу на EC2
  • Как найти и удалить Nginx из экземпляра EC2?
  • «Tshark: нет интерфейсов, на которых можно сделать захват» в Amazon Linux AMI
  • Заблокирована машина Ubuntu
  • Как остановить многие процессы, такие как единорог и sidekiq, используя единую команду в определенной среде
  • Linux и Unix - лучшая ОС в мире.