поиск имени пользователя во время запуска скрипта GCP - PullRequest
0 голосов
/ 10 ноября 2019

Я запускаю экземпляр GCP, используя их python API, где я устанавливаю docker и другие пакеты через скрипт запуска. Проблема в том, что сценарий запуска запускается от имени пользователя root, и впоследствии я могу запускать только docker от имени пользователя root. В идеале я хотел бы добавить пользователя в группу Docker, чтобы он мог запускать Docker без вызова sudo.

дело в том, что я не помню, чтобы при создании экземпляра указывалось какое-либо имя пользователя, и в зависимости от того, как я ssh ввел в него экземпляр (позволяю ли GCP управлять ключами ssh или использовать загруженный ключ), я получаю другоеимена пользователей.

Итак, мне интересно, есть ли способ узнать, какие пользователи могут подключиться к этому экземпляру и добавить их в группу пользователей докера в сценарии запуска?

1 Ответ

2 голосов
/ 10 ноября 2019

В зависимости от того, как вы используете SSH в Compute Engine, ключи SSH создаются для вас. Это также создало учетную запись Linux. Конфигурация этой учетной записи (например, в каких группах должна быть новая учетная запись) определяется в файле с именем /etc/default/instance_configs.cfg. Если вы отредактируете этот файл, вы найдете запись, которая гласит:

[Accounts]
...
groups = adm,dip,docker,lxd,plugdev,video
...

Это список групп, которые пользователь добавляет при создании учетной записи. Вы специально спрашивали о добавлении пользователя в группу docker, и вы можете быть удивлены, увидев, что docker уже присутствует в списке по умолчанию. Тогда вы можете спросить: «Почему мой пользователь не является членом группы Docker?».

Я предполагаю, что вы создали Compute Engine, а затем вошли в систему и затем установили пакет Docker. Пауза здесь. Первый раз, когда вы вошли в систему, это было, когда была создана учетная запись, и ТО, когда пользователь был бы добавлен в группы. Однако при этом первоначальном входе в систему docker не был установлен, и, следовательно, группа docker еще не была создана, и, следовательно, пользователь не может быть добавлен в несуществующую группу.

В качестве теста попробуйте следующее.

В Cloud Shell запустите:

gcloud compute ssh bob@[YOUR_INSTANCE] --zone=[ZONE]

Это создаст новую личность (bob) и войдет в систему как bob. Запустите команду id и теперь давайте посмотрим, к каким группам вы принадлежите.

...