У меня очень странная проблема с Samba и картой имени пользователя. Файл сопоставления такой:
username map = /etc/samba/users.map
Содержимое /etc/samba/users.map:
master = johndoe user2 user3
regular = johndoe user5 user6
restricted = johndoe user8 user9
Проблема в том, что Samba всегда сопоставляется johndoe
с последним локальным пользователем, указанным в /etc/samba/users.map
файле. В примере выше johndoe
всегда будет сопоставлено с restricted
, поэтому если у меня есть общий ресурс, который разрешает только , master
и другой общий ресурс, который разрешает только restricted
, я не смогу получить доступ к обоим, хотя johndoe
указан в обеих записях.
Это нормальное поведение или нет?
решение1
Правильно. Это задумано. Отдокументация:
Файл карты анализируется построчно. Каждая строка должна содержать одно имя пользователя UNIX слева, затем '=', за которым следует список имен пользователей справа. Список имен пользователей справа может содержать имена в форме @group, в этом случае они будут соответствовать любому имени пользователя UNIX в этой группе. Специальное имя клиента '*' является подстановочным знаком и соответствует любому имени. Каждая строка файла карты может содержать до 1023 символов.
Файл обрабатывается на каждой строке, беря предоставленное имя пользователя и сравнивая его с каждым именем пользователя справа от знаков '='. Если предоставленное имя совпадает с любым из имен справа, то оно заменяется на имя слева. Затем обработка продолжается со следующей строки.
В результате, если одна и та же учетная запись пользователя будет отображаться в нескольких строках, она будет включена не в каждую карту, а только в последнюю определенную карту.
Если цель — получить «суперпользователя», то вам, возможно, стоит обратить внимание насписки, специфичные для акцийили сопоставление учетной записигруппыа не пользователи.