В настоящее время запущен экземпляр вычислительного движка Google и используется SFTP на сервере.

Следующие детали, чтобы заблокировать пользователя к пути SFTP, используя шаги, перечисленные здесь: https://bensmann.no/restrict-sftp-users-to-home-folder/

Чтобы заблокировать пользователя в каталоге, домашний каталог этого пользователя должен принадлежать пользователю root. Первоначально установка работала правильно, но было обнаружено, что вычислительный механизм Google периодически «автоматически сбрасывает» разрешения обратно пользователю .

Я использую SSH-ключ, установленный в Google Cloud Console, и этот ключ связан с именем пользователя. Я предполагаю, что Google Compute Engine использует эти «метаданные» и перенастраивает права доступа к папке в соответствии с правами пользователя, связанного с ключом SSH.

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

answer

Есть несколько решений - одно на уровне ОС (как предложил @Marco Martinelli ) cron:

I know it's absolutely barbaric but until there is a better solution I'm using this cronjob to keep the right ownership: * * * * * chown root:root /path/to/fix/

Далее следует создание учетных записей пользователей в виртуальной машине вручную - таким образом, их разрешения не перезаписываются демоном учетных записей .

There is an accounts daemon running on the GCE instance which is responsible for provisioning user accounts from metadata data to the VM instance. If you create user account manually on the VM they will not be modified by accounts daemon.

Последним, и я считаю, что лучше всего для вас будет функция входа в ОС, о которой упоминал @Faizan :

One other solution would be to use OS Login feature, which provides users SSH access to the VM, without giving them project editor or owner permissions.

Теперь он доступен для всех, поэтому вы можете включить его для всего проекта или индивидуально для одного (или нескольких) экземпляров. После этого вы назначаете правильные роли (с необходимыми разрешениями) пользователям, которым нужен доступ. Просмотрите связанную документацию, поскольку она подробно объясняет весь процесс.