У меня есть общий каталог Department, в нем есть 3 подкаталога: Account, Sales, Presales, и в каждом подкаталоге есть каталог сотрудников отдела, например acc1, acc2, acc3 / sale1, sales2 / ps1, ps2, ps3, ps4.
как у каждого сотрудника есть имя пользователя и пароль для доступа только к своему каталогу без просмотра каких-либо других каталогов.
то же самое я сделал на сервере Windows.
как мне это сделать?
решение1
Во-первых, пусть каждый сотрудник принадлежит к группе отделов, то есть acc1 принадлежит Account, а ps3 принадлежит Presales. Затем, на уровне отдела, пусть каждый подкаталог в Department имеет свой идентификатор группы, равный соответствующей группе отдела, с доступом на чтение и выполнение на уровне группы и отмените все права доступа у других, так что это выглядит так, когда вы это делаете ls -la Departments
:
drwxr-x--- 5 root Account 4096 Jul 25 08:43 Account
drwxr-x--- 6 root Presales 4096 Jul 25 08:44 Presales
drwxr-x--- 4 root Sales 4096 Jul 25 08:44 Sales
Затем укажите идентификатор пользователя и идентификатор группы каждого каталога сотрудников как пользователя, предоставьте пользователю полный доступ к каталогу и отмените весь доступ для группы и других пользователей, например, для учетной записи:
drwx------ 2 acc1 acc1 4096 Jul 25 08:43 acc1
drwx------ 2 acc2 acc2 4096 Jul 25 08:43 acc2
drwx------ 2 acc3 acc3 4096 Jul 25 08:43 acc3
chown
, chgrp
и chmod
ваши друзья, если вы делаете это в командной строке. Смотрите, напримерhttp://www.perlfect.com/articles/chmod.shtmlдля получения подробной информации об их использовании.
Этот метод работает, если разрешения/членство можно определить иерархически и единообразно, т. е. нет необходимости смешивать различные виды и/или уровни разрешений на определенном уровне (например, некоторые отдельные пользователи имеют доступ на чтение и запись, но пользователи, принадлежащие только к группе, имеют доступ только на чтение) — для этих случаев необходимы списки контроля доступа (ACL).
решение2
В качестве альтернативы вы можете настроить FACLS для этих каталогов. Это будет самый чистый, лучший и предпочтительный метод, если вам нужны более сложные списки контроля доступа.
используйте страницы руководства для:
человек getfacl
человек setfacl
использование будет примерно таким:
setfacl -md:g:"имя_группы":rwx /путь/к/желаемому/каталогу
setfacl -mg:"имя_группы":rwx /путь/к/желаемому/каталогу
Первая строка устанавливает правило, которое будет автоматически применяться к вновь созданным файлам/папкам в каталоге. Вторая применяется к тому же каталогу верхнего уровня, к которому они применяются, но это дает доступ к этому каталогу, поскольку он уже существует.
***ПРИМЕЧАНИЕ: кавычки вокруг имени группы указывают на то, что в команде следует указать имя группы. Не используйте сами кавычки при выполнении команды, имя группы должно быть указано без кавычек.