Я пытаюсь получить значение дома пользователя из марионеточного сценария. Этот конкретный пользователь является пользователем Samba, а не локальным, с именем пользователя в форме DOMAIN\user
.
Я пробовал следующее, но безуспешно:
echo "~DOMAIN\\user"
(выводит точный ввод)getent passwd DOMAIN\\user
(ничего не выводит, пользователь даже не указан с помощью getent passwd)Я удивлен, что getent не работал, поскольку он настроен на это:
$ cat /etc/nsswitch.conf | grep passwd
passwd: compat winbind
Простая программа на C, использующая getpwnam
работает, но будет проблематично включить и использовать из марионетки.
Как я могу получить дом пользователя с помощью марионетки или простой команды оболочки?
Не знаю, как здесь фигурирует Samba, но в остальном ...
finger -mlp $USER | grep Directory | cut -f2 -d ' '
(хотя это потребует некоторых настроек для обработки пробелов в пути)
Чтобы сделать getent
вызовите работу, просто заключите аргумент в одинарные кавычки '
:
getent passwd 'DOMAIN\user'