Запустить второй X-сервер из X в качестве службы systemd

Используйте команду «sed».

sed -i '<\line_no_start>,<\line_no_end>d' <\filename>

Пример: удалить строки с 4 по 6 из файла sample.txt.

sed -i '4,6d' sample.txt
5
21.02.2017, 15:20
1 ответ

Я рекомендую не использовать xinit, так как он уязвим . Вместо этого используйте startx. xinit, кажется, написано, чтобы принимать X-соединения от любого ID пользователя без предупреждения или документации. startx, по-видимому, исправляет это. Я не знаю, почему эту ситуацию терпят и как это вообще произошло.

Как root:

systemd-run --property PAMName=login \
            --property User=my-user \
            --property StandardInput=tty \
            --property TTYPath=/dev/tty8 \
            sh -c 'chvt 8 && startx /usr/bin/xterm -- :1'

Магия заключается в определении PAMName=открытия сеанса PAM и связывании этого сеанса с конкретным TTY. Это заставляет pam _systemd делать то, что вы хотите. Я подделал login-, хотя технически вы должны определить новое «имя службы» PAM на случай, если оно потребует особого обращения.

Таким образом, вы можете написать скрипт, который выполняет нужную команду. Затем предоставьте доступ для запуска этого сценария от имени пользователя root, используя sudo.

Если вы используете SELinux,вам придется бороться и с этим.

3
27.01.2020, 20:41

Теги

Похожие вопросы