Что я пытаюсь сделать, но не могу приступить к работе
Я пытаюсь настроить пользователей сети в клиентах Yosemite с их домашними каталогами на керберизованном AFP. Я использую automountd для монтирования домашних каталогов в / home / username, как только к ним обращаются (то есть, как только кто-то входит в систему). По большей части это работает: я могу войти в систему как сетевой пользователь, я получаю билет Kerberos, и этот билет используется для монтирования домашнего каталога. Монтаж работает нормально. Однако домашний каталог будет принадлежать пользователю root (группа: wheel), что означает, что пользователь не может получить к нему доступ. OS X затем запросит у пользователя пароль администратора для «восстановления библиотеки пользователя».
Обратите внимание, что мы не запускаем OS X Server, потому что сеть предназначена не только для Mac. Скорее, мы используем OpenLDAP и MIT Kerberos на машинах Linux. Также обратите внимание, что я в основном администрирую серверы Linux и клиенты Windows, и я изо всех сил пытаюсь сделать все правильно, как Mac.
Что я могу сделать, чтобы обойти проблему (но наши пользователи не могут)
Когда я сначала вхожу в систему как локальный администратор, а затем делаю (на терминале) "su someNetworkUser", он работает отлично: домашний каталог монтируется с билетом Kerberos и принадлежит someNetworkUser. Я могу даже сделать это, а затем вернуться в окно входа в систему (не выходя из системы локального администратора, поэтому домашний каталог не получает unmounted), а затем войдите в систему как someNetworkUser: это будет работать отлично, потому что домашний каталог уже смонтирован с правильными учетными данными и принадлежит someNetworkUser. OS X не будет жаловаться на сломанную библиотеку.
Что я думаю происходит
Итак, по-видимому, первый процесс для доступа к / home / someNetworkUser во время входа в систему через окно входа принадлежит пользователю root. automountd заметит и смонтирует домашний каталог, и он также будет принадлежать пользователю root. Я знаю, что окно входа в систему сначала получает билет Kerberos для someNetworkUser, иначе монтирование не удастся. Видимо, при использовании su дела обстоят иначе. Первый процесс для доступа к / home / someNetworkUser при использовании su, похоже, принадлежит someNetworkUser, а не root.
Я не совсем знаю, какие процессы задействованы в процессе входа в систему и почему он отличается от окна входа в систему и su. Я уже пробовал сделать /etc/pam.d/login (который, как я понимаю, используется loginwindow) почти таким же, как /etc/pam.d/su - безрезультатно.
Я также заметил, что когда соединение с сервером AFP на мгновение теряется (что я могу сделать намеренно, перезапустив демон AFP), домашний каталог перемонтируется, когда соединение восстанавливается. Однако на этот раз владельцем каталога является правильный пользователь, а не root. Это кажется вполне логичным, потому что в то время к домашнему каталогу будут обращаться процессы пользователя, а не процессы root.
Мысли серьезно обойти проблему
Но теперь я застрял. Я не знаю, как сделать так, чтобы домашние каталоги принадлежали соответствующему пользователю. У меня есть две идеи, которыми я поделюсь, но я не доволен:
У тебя есть идеи?