Для выполнения функций администрирования в G Suite есть отдельный web-интерфейс Google Admin. В данной консоли можно добавлять пользователей, управлять устройствами и приложениями, осуществлять настройки безопасности и многое другое.

Но не все задачи можно выполнить с помощью данной консоли. Например, вам нужно найти файл, к которому у вас нет доступа, и предоставить к нему доступ другим сотрудникам. Как это сделать?

Конечно, в панели администратора есть раздел “Отчеты” и с его помощью можно найти файл. Но нет возможности предоставить к файлу доступ. Это совсем не означает, что сервисы Google не предоставляют такой функционал. Такие возможности предоставляет Google API и доступ к файлу можно предоставить через него. Однако, чтобы использовать его, нужно привлекать программистов. Согласитесь, для такой простой задачи это уже перебор. И вот тут, на помощь приходят сторонние разработчики, со своими утилитами, которые как раз задействуют большинство функций API. Одной из таких утилит, одобренных к использованию компанией Google, является GAM.

GAM - это утилита командной строки, используется для администрирования G Suite. Управляет доменами, учетными записями сотрудников, их настройками и предоставлением доступа.

Возможности GAM подробно описаны в инструкции на GitHub, вот часть из них:

  • Управление пользователями, группами, алиасами, доменами, мобильными устройствами и устройствами Chrome и календарями ресурсов
  • Настройка группы и групп для бизнеса
  • Передача данных
  • Выгрузка пользователей, групп, псевдонимов, мобильных устройств и устройств Chrome OS, подразделений, лицензий и отчетов
  • Управление пользовательскими схемами
  • Настройка электронной почты пользователя
  • Настройки безопасности пользователя
  • Управление облачной печатью
  • Управление обучающими классами
  • Настройки календаря
  • Управление Google Дисками
  • Управление правами администраторов
  • Проверка домена
  • Управление лицензиями на G Suite
  • Управление организационными подразделениями
  • Управление OAuth аутентификацией
  • Управление Google Сейфом
  • Возможность выполнять массовые операции

Установка на машину

Утилита GAM поддерживает платформу Linux и Windows. Для установки в операционной системе Linux наберите команду:

bash <(curl -s -S -L https://git.io/install-gam)

Cкрипт сам скачает утилиту, подтянет все зависимости и установит ее.
Для установки в операционной системе Windows, необходимо скачать MSI-файл, последнего релиза и следовать указаниям мастера установки.

Что необходимо сделать, чтобы программа заработала

GAM работает с API G Suite и для этого ему необходимо создать “проект” в Google Cloud Platform. После установки, GAM должен запустить мастера по созданию нового проекта. Если, по какой-то причине, он этого не сделал, можно самостоятельно создать проект:

gam create project

Далее:

  1. GAM предложит ввести адрес электронной почты администратора G Suite.
  2. В зависимости от того, если у вас права админа или нет, произойдет следующее, автоматически открывается либо веб-сайт, либо вам будет предоставлен URL-адрес, чтобы админ мог разрешить GAM создавать проекты. Нажмите «Разрешить», скопируйте код, если он указан, и вернитесь в окно GAM.
  3. Теперь GAM создаст проект, включит необходимые API Google для проекта, такие как Диск, Gmail, SDK администратора и т. д. И, наконец, создаст учетную запись службы.
  4. Затем вам будет предложено перейти к URL-адресу и выполнить несколько действий для создания «идентификатора клиента OAuth». Выполните указанные шаги и скопируйте идентификатор клиента и секретный код обратно в GAM при появлении запроса.
  5. Теперь вас попросят вернуться в окно браузера и внести изменения в новую учетную запись службы. После того как вы включили делегирование домена G Suite, вернитесь в окно консоли GAM.

Примеры команд

И так, GAM установлен и настроен. Давайте попробуем несколько команд.Откройте командную строку, оболочку или терминал на вашем компьютере и выполните:

gam info user

Команда отобразит информацию по пользователю в сеансе которого запущена команда, но можно указать и email конкретного сотрудника. Пример ответа:

User: test@pik.digital
First Name: Фамилия 
Last Name: Имя 
Is a Super Admin: False
Is Delegated Admin: False
2-step enrolled: False
2-step enforced: False
Has Agreed to Terms: True
IP Whitelisted: False
Account Suspended: False
Must Change Password: False
Google Unique ID: 11345158186750d000000
Customer ID: C01m1o33333e
Mailbox is setup: True
Included in GAL: True
Creation Time: 2017-08-22T20:46:52.000Z
Last login time: 2018-11-20T10:12:20.000Z
Google Org Unit Path: /Ou/Test
Photo URL: https://plus.google.com/_/focus/photos/public/
Addresses:
 type: work
 primary: True
Organizations:
 department: Отдел тестирования
 customType: work
 primary: True
 name: ООО ТЕХНОЛОГИИ
 title: Руководитель
Phones:
 type: work
 value: +7 (495) 555-44-23, доб. 11-22
Other Emails:
 address: test@test.ru
 address: test@pik.ru.test-google-a.com
External IDs:
 type: login_id
 value: CCA6E3AC-6986-AAAA-97F5-GFFFFGFFFFF
Custom Schemas:
 Schema: Custom
  displayName: ФИО 
  title: Руководитель 
Non-Editable Aliases:
  test@test.ru
  test@pik.ru.test-google-a.com
Groups: (0)
Licenses:
  1010021020 (G Suite Enterprise)

Давайте создадим пользователя:

gam create user testuser firstname "Имя" lastname "Фамилия" password "Пароль"

А теперь добавим ему почтовый псевдоним:

gam create alias second_email user testuser

Можем создать группу:

gam create group test-group name "Тестовая группа" description "Подробное описание"

Или включить для пользователя IMAP протокол:

gam user testuser imap on

Смена владельца файла

Для смены владельца файла нужно воспользоваться командой:

gam user <user email> update drivefileacl <file id> <permission id>
[withlink] [role <reader|commenter|writer|owner|organizer>] 
[transferownership <true|false>]

Эта команда изменяет доступ к файлам и папкам для пользователей и групп. Параметр <permission id> может быть почтой сотрудника, или числовым идентификатором сотрудника. Если используется числовой ID, то в начале нужно добавить префикс "id:". Параметры роли должны быть reader, commenter, writer, owner или organizer. Владелец, изменится только когда текущий и будущий владелец находятся в одном домене G Suite. Роль [organizer] относится только к ресурсам общего диска. Если вы укажите параметр [withlink], то доступ к файлу будет доступен всем у кого есть на него ссылка. Параметр [transferownership] меняет роль текущего владельца до редактора.

Пример команды для смены владельца файла:

gam user emp1@domen.org update drivefileacl 0B8aCWH-xLi2NckxXOEp5REUtNEE 
emp2@domen.org role owner transferownership true	

Это лишь малая часть всех возможностей, которые предоставляет GAM.

Q&A

Для поддержания работы утилиты и ответов на вопросы, авторы программы создали форум. По возможностям программы создана подробная документация, которая оперативно дополняется, по мере обновления самой программы.

Есть вопросы к нашим инженерам – пишите нам в Telegram или на google@pik.digital

Больше информации о G Suite на  нашем сайте.