I've been advised by AWS documentation not to access the server as root but create a new user, and do so without a password using this flag:
--disabled-password
I now need to run a sudo command to install nginx.
How can I run a sudo command, it keeps asking for a password, for which none is set. Every time I need to use a sudo command, do I need to log in as the root user?
If I allow the new user account to have sudo access - does this not remove the entire point of having a separate account from the root for security reasons?
В файле / 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-user, Centos / Redhat будет иметь пользователя detault как 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