Документация AWS посоветовала мне не обращаться к серверу как root, а создать нового пользователя и сделать это без пароля, используя этот флаг:
--disabled-password
Теперь мне нужно запустить команду sudo для установки nginx.
Как я могу запустить команду sudo, она постоянно запрашивает пароль, для которого он не установлен. Каждый раз, когда мне нужно использовать команду sudo, нужно ли мне входить в систему как пользователь root?
Если я разрешаю новой учетной записи пользователя иметь доступ к 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
Все, что вам нужно, это правильная команда для установки. Ниже приведены команды для установки в качестве пользователя по умолчанию.
sudo apt-get install nginx
sudo yum install -y nginx
sudo yum install -y nginx
Вы можете добавить нового пользователя, используя useradd
команда. Это довольно просто, однако вам нужно будет сгенерировать пару ключей RSA для этого пользователя и добавить ее в .ssh/authorized_keys
файл в домашнем каталоге пользователя на удаленном хосте.
Для привилегий sudo вам необходимо добавить своего пользователя /etc/sudoers
Запись файла должна выглядеть, как показано ниже.
username ALL=(ALL) ALL
Но редактировать /etc/sudoers
файл, вам нужно быть либо пользователем по умолчанию, либо пользователем root. Вот что вам следует делать. Войдите в систему как пользователь по умолчанию и отредактируйте файл, используя следующую команду sudo nano /etc/sudoers