Just for fun стал ковырять разные редкоземельные desktop manager'ы, и в "процессе рытья ямы"(с) столкнулся с такой проблемкой:
система — CentOS 6.3;
startx из-под непривилегированного пользователя работает без проблем;
startx при загрузке — аналогично;
в скрипте на python, который запускается из-под root, делает setuid+setgid на непривилегированного пользователя, а потом запускает startx — получаем сообщение сабж (startx вызывается через os.execve, все переменные окружения задаются ручками, аналогично переменным окружения этого пользователя, т.е. HOME, LOGIN, PWD ит.п.). Попробовал подсунуть startx'у в качестве клиентов xterm, gedit, ит.д. — то же самое сообщение;
добавляем пользователя из п.4 в группу wheel — п.4 начинает работать без проблем. WTF???
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Здравствуйте, ДимДимыч, Вы писали:
ДД>Вероятно, программа должна пройти аутентификацию через PAM, чтобы создалась PAM-сессия.
"Что ты мне удочку суешь, ты мне рыбку, рыбку дай. Тушеную с морковкой..." (с)
Покурил man Xsecurity, man PAM, и пр. Вкуривается как-то плохо Пока план такой: открыть сессию для пользователя (вот только как ), до которого root собирается опуститься, сделать fork. В дочернем процессе setuid, запуск X'ов ит.п., в родительском ждем завершения дочернего процесса, после чего сессию закрываем.
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)