Назад | Перейти на главную страницу

Создание нового пользователя, который может использовать sudo?

Документация AWS посоветовала мне не обращаться к серверу как root, а создать нового пользователя и сделать это без пароля, используя этот флаг:

--disabled-password

Теперь мне нужно запустить команду sudo для установки nginx.

  1. Как я могу запустить команду sudo, она постоянно запрашивает пароль, для которого он не установлен. Каждый раз, когда мне нужно использовать команду sudo, нужно ли мне входить в систему как пользователь root?

  2. Если я разрешаю новой учетной записи пользователя иметь доступ к sudo - разве это не устраняет весь смысл наличия отдельной учетной записи из корня по соображениям безопасности?

Файл /etc/sudoers перечисляет всех пользователей с root-доступом. У вас, вероятно, есть такая строка либо в самом файле, либо в любом файле в /etc/sudoers.d каталог:

username ALL=(ALL) ALL

Вместо того ALL, могут быть некоторые ограничения, например последний ALL заменен на /usr/bin/apt-get или аналогичный, так что вы можете выполнить эту команду только через sudo. Сам файл хорошо документирован.

Чтобы заставить пользователя выполнять команды sudo без пароля, просто добавьте NOPASSWD к строке:

username ALL=(ALL) NOPASSWD: ALL

И да, это безопаснее, чем просто получить доступ к root пользователь через ssh. Как правило, никогда не входите в систему как root и никогда не входите в систему с паролем через ssh, а используйте аутентификацию с открытым ключом. Для получения дополнительной информации ознакомьтесь с этим ответом: Почему вход root через SSH настолько плох, что все советуют его отключить?

Aws предоставляет sudo доступ к пользователю по умолчанию независимо от того, какой дистрибутив Linux вы используете. Например, для экземпляра Ubuntu пользователь по умолчанию будет иметь имя ubuntu, дистрибутив Amazon linux будет иметь пользователя по умолчанию в качестве пользователя ec2, Centos / Redhat будет иметь пользователя по умолчанию как root / ec2_user

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

  1. Ubuntu - >> sudo apt-get install nginx
  2. Amazon linux - >> sudo yum install -y nginx
  3. Centos / Redhat - >> sudo yum install -y nginx

Вы можете добавить нового пользователя, используя useradd команда. Это довольно просто, однако вам нужно будет сгенерировать пару ключей RSA для этого пользователя и добавить ее в .ssh/authorized_keys файл в домашнем каталоге пользователя на удаленном хосте.

Для привилегий sudo вам необходимо добавить своего пользователя /etc/sudoers Запись файла должна выглядеть, как показано ниже.

username ALL=(ALL) ALL

Но редактировать /etc/sudoers файл, вам нужно быть либо пользователем по умолчанию, либо пользователем root. Вот что вам следует делать. Войдите в систему как пользователь по умолчанию и отредактируйте файл, используя следующую команду sudo nano /etc/sudoers