Как получить пароль для sudo

Я пытаюсь использовать команду sudo -i -u postgres для PostgreSQL, а VM Engine Compute Engine запрашивает у меня пароль для моей учетной записи (не root).

Поскольку я никогда не выдавал пароль, и я всегда заходил на свой сервер с помощью SSH-ключа, я не уверен, что такое пароль, как я могу reset его или где он может быть найден.

Скажите, пожалуйста, где я могу получить свой пароль?

Ответ 1

Чтобы стать другим пользователем без полномочий root на GCE VM, сначала станьте root с помощью пароля sudo (так как sudo настроен на изображениях GCE VM):

sudo su -

а затем переключитесь на пользователя, которого хотите стать, или выполните команду в качестве другого использования, например, в вашем случае:

sudo -i -u postgres

Ответ 2

Per https://cloud.google.com/compute/docs/instances,

Создатель экземпляра и любые пользователи, которые были добавлены с использованием метаданных Значение sshKeys автоматически является администратором учетной записи. возможность запуска sudo без необходимости ввода пароля.

Таким образом, вам не нужен этот несуществующий пароль - вам нужно добавить "с использованием значения метаданных sshKeys"! Канонический способ сделать это, и я цитирую с той же страницы:

$ echo user1:$(cat ~/.ssh/key1.pub) > /tmp/a
$ echo user2:$(cat ~/.ssh/key2.pub) >> /tmp/a
$ gcloud compute project-info add-metadata --metadata-from-file sshKeys=/tmp/a

или вы можете использовать консоль Google Developers для аналогичных целей, см. https://cloud.google.com/compute/docs/console#sshkeys, если вы этого предпочтете.