Расположение каскадом полномочий должно работать, как Вы ожидаете; нет никакой потребности в полномочиях на каждом dir. Только необходимо указать более определенные пути для переопределения полномочий от родителя, как Вы делаете.
Я не знаком с ~groupname
синтаксис. Вы ясно предназначаете это для значения отрицания (пользователи не в группе), но я не уверен, что это поддерживается. Попробуйте что-то вроде этого (Ваши первые два раздела для группы defs и корневого доступа то же):
[/Dev/SourceCode]
@devUsers = rw
@qaUsers =
[/Dev/testCases]
@qaUsers = rw
@devUsers =
Это должно работать, хотя отклонение Вашего доступа разработчиков к тестовым сценариям делает меня грустным.
Править: Так как Вы попробовали это, и это работает..., возможно, не пытается инвертировать порядок? Соответствие, как предполагается, происходит на большинстве - характерный для наименьшего - конкретный, таким образом, порядок не должен иметь значения, но я, по крайней мере, попытаюсь поместить их ранее в файл, чем [/] полномочия. Если бы это имеет значение, то я подозревал бы ошибку в Вашей серверной версии.
Я бы посоветовал предоставить более подробную информацию для лучшего ответа, однако ...
Новые пользователи иметь доступ по ssh по умолчанию, если вы используете adduser (vs useradd) и заполняете ответы. Оттуда вы можете изменить домашний каталог пользователя в / etc / passwd. Предполагается, что вы не настраивали файл sshd_config.
Что касается chowning, я считаю, что вам понадобится предоставить доступ к сценарию или тому подобному через sudoers. Я не верю, что пользователи могут установить ВЛАДЕЛЬЦОМ файла не на себя. Только root.
Ограничение команд? Проверьте это https: // stackoverflow. com / questions / 402615 / how-to-restrict-ssh-users-to-a-prefined-set-of-commands-after-login . Другие варианты включают rbash, chroot и т. Д.