3

У меня есть сервер Samba (который является контроллером домена) и клиент Ubuntu 14.04 с зарегистрированным пользователем, который аутентифицирован Kerberos (клиент также подключен к домену). Пользователь хочет получить доступ к сетевому ресурсу с помощью этой команды:

mount.cifs // ДОМЕН / ПУТЬ / ДОМ / ПОЛЬЗОВАТЕЛЬ / ПУТЬ -o sec = krb5

Но с (или без) параметром 'sec' команда mount запрашивает пароль. Если я ввожу свой пароль, я могу смонтировать общий ресурс, но я хочу смонтировать без пароля.

Как я могу сделать это с моим действительным билетом Kerberous?

2 ответа2

3

Если вы входите в систему с пользователем домена Windows, билет Kerberos уже запрошен. Вы можете проверить это, выполнив klist .

Чтобы повторно использовать этот билет, вы должны добавить опцию user и cruid в ваш порядок монтирования. Таким образом, вам не нужно вводить какие-либо учетные данные снова.

sudo mount -t cifs -o user=$USER,cruid=$USER,sec=krb5 //domain/path /home/path

Чтобы смонтировать общий ресурс с вашим пользователем как владельцем (и, следовательно, с разрешением на запись), добавьте параметры gid и uid .

sudo mount -t cifs -o user=$USER,cruid=$USER,sec=krb5,gid=$GID,uid=$UID //domain/path /home/path

Вы получаете свой $GID , выполнив id -g $USER а свой $UID - id -u $USER .

Может случиться так, что вам нужно apt-get install keyutils чтобы это работало.

2

Сначала попробуйте -o vers=1 . Клиент ядра SMB2 только недавно получил поддержку Kerberos - в Ubuntu 14.04 он будет доступен только в ядре 4.4.x.

Во-вторых, проверьте, установлены ли двоичные файлы request-key и cifs.upcall и указаны ли они в /etc/request-key.conf (или /etc/request-key.d/):

create cifs.spnego * * /usr/bin/cifs.upcall %k

Наконец, проверьте системный журнал (/var/log/debug или journalctl -b) на наличие сообщений от cifs.upcall и убедитесь, что он ищет ваши билеты в правильном месте. На самом деле он не знает, какой процесс обращается к общему ресурсу и какой у него $ KRB5CCNAME, поэтому ему нужно угадать несколько общих мест.

На самом деле, если вы запустите mount через sudo, процесс монтирования (запущенный как uid 0) не будет иметь никаких билетов по умолчанию; может потребоваться отдельный sudo kinit .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .