Разрешить пользователям подключаться к SSH без доступа sudo?

Вот что я пытаюсь сделать: настроить сервер резервного копирования на Google Compute Engine, где сотрудники моей компании могут выполнять резервное копирование своих компьютеров каждую ночь с помощью rdiffbackup. Будет запущено задание cron, которое запускает rdiffbackup, который использует SSH для отправки файлов точно так же, как SCP.

С «обычным» сервером я могу создать для каждого сотрудника нового пользователя и установить разрешения, чтобы они не могли читать файлы других сотрудников.

Похоже, что использование инструмента «gcloud compute ssh» или настройка обычного ssh с помощью «gcloud compute config-ssh» позволяет разрешить подключение только тем пользователям, которые добавлены в проект и подключили свой компьютер к своей учетной записи Google. Моя проблема в том, что я не вижу возможности для пользователя иметь возможности чтения и записи на сервере, не будучи при этом sudoer (любой, кто добавлен в проект с помощью «Can Edit», может получить sudo, насколько мне известно) . Очевидно, что если у них есть sudo, они могут читать чужие файлы.

Могу ли я дать кому-нибудь возможность удаленного использования SSH без использования sudo? Спасибо.


person dtemp-jg    schedule 23.06.2015    source источник


Ответы (2)


Для этого я рекомендую избегать использования gcloud. Инструменты SSH gcloud предназначены для простого администрирования постоянно меняющегося набора машин в вашем проекте. Он не предназначен для охвата всех вариантов использования, в которых также используется SSH.

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

  • назначить статический адрес
  • (необязательно) назначьте имя DNS
  • настроить пользователей на коробке с помощью adduser
person Stephen Weinberg    schedule 23.06.2015
comment
Ах, я думал, что читал, что невозможно настроить сервер таким образом на GCE, что вам нужно использовать их инструменты SSH для подключения, и вы не можете создать произвольного пользователя, который мог бы входить в систему через SSH. Просто создал пользователя, настроил authorized_keys, и все работает. Спасибо. - person dtemp-jg; 24.06.2015
comment
Вам нужно использовать либо gcloud, либо облачную консоль для настройки вашего первоначального входа в систему. После этого это обычный сервер. На сервере работает демон для получения новых ключей / пользователей из Google. Вы можете отключить это. - person Stephen Weinberg; 24.06.2015

У вас есть несколько вариантов

1) Вы можете управлять пользователями без полномочий root в своих экземплярах, как на любой обычной машине Linux, вручную добавляя их с помощью стандартных команд, таких как 'adduser', а не gsutil / UI / пути обновления метаданных.

2) В качестве альтернативы, если вам нужно управлять большим кластером машин, вы можете полностью отключить управление ACL, предоставляемое Google, и запустить для этого свой собственный сервер LDAP. Файл, который отвечает за обновления учетной записи и должен быть отключен для запуска, - это https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google-daemon/etc/.init/google-accounts-manager-service.conf

3) Наконец, вы можете заблокировать доступ на запись для пользователей root, т.е. отключить запись, распространяющуюся с сервера метаданных, установив неизменяемый флаг в файле sudoers 'chattr + i / etc / sudoers'. Это не изящное решение, но эффективное. Таким образом, вы блокируете Root для уже добавленных пользователей, и любые новые пользователи будут добавлены как не привилегированные, хотя любой новый пользователь корневого уровня должен быть добавлен вручную, машина за машиной.

person Feczo    schedule 24.07.2015