Я нахожусь в той же ситуации, и я выполняю MediaWiki. Аутентификация NTLM обрабатывается в Apache посредством модуля PyAuthenNTLM2 на ультрасовременном Python; MediaWiki входит в систему пользователь (и автоматически создает Wiki, составляют их в первый раз) посредством расширения AutomaticaREMOTE_USER.
Мой опыт довольно хорош: SSO хорошо работает, пользователи не замечают во всем, что Wiki не принадлежит домену Windows, и люди IT рады, что пароли сохранены безопасными.
Отказ от ответственности: Я - автор PyAuthenNTLM2, который я записал, потому что предыдущий плагин Apache я использовал (Apache2:: AuthenNTLM2), не сохраняется и не работает со значением по умолчанию Windows 7 (и разумный) политика безопасности (NTLMv2).
Получил его! Благодаря Stephane Chazelas для справки. Прием должен был искать дочерние процессы... D'oh!
Мой сценарий теперь:
#!/usr/bin/env bash
ppid=$(xdotool getactivewindow getwindowpid) # PID of process in the window
pid=$(pgrep -P $ppid | tail -n1) # PID of the last child
cwd="$(readlink /proc/${pid:-$ppid}/cwd)" # current CWD of pid, or ppid if no pid
cd "$cwd"
"$@"
Можно использовать его путем простого добавления префикса любой команды название сценария, например. incwd urxvt
.
Единственный протест состоит в том что некоторые программы, как evince
, сбросьте их cwd
. Я сомневаюсь, что существует что-либо, что я могу сделать в этих случаях.
Возможно:
readlink "/proc/$(
pgrep -P "$(xdotool getactivewindow getwindowpid)" | head -n1
)/cwd"
Это, добираются, pid связался с использованием окна xdotool
, использовать pgrep
получить список детей того процесса, head -n1
только выбрать первый и использование readlink
получить рабочий каталог.
Не будет работать на каждое окно. Например, не для окон от удаленных клиентов или которые не предоставляют менеджеру окон их PID, не для процессов другими пользователями.
OpenBox
в моем случае). – 1ace 04.06.2013, 14:38