macOS - переключиться на пользователя с правами администратора при запуске сценария оболочки от имени пользователя root - PullRequest
0 голосов
/ 29 января 2019

Итак, у меня есть скрипт name.sh с кучей команд оболочки.Мне нужно сменить обои перед завершением этого скрипта.

Я использую

osascript -e 'tell application "System Events.app" to set picture of every desktop to "/Library/Desktop Pictures/my.jpg"'

в конце строки.Дело в том, что Apple Script не будет работать под root.Поскольку системные события сначала сгенерируют 10810, а затем 600 (приложение не запущено).Если я запускаю этот osascript под правами администратора, он будет работать нормально.Обои будут установлены.

Дайте мне знать, как вы, ребята, можете помочь мне в этом!

1 Ответ

0 голосов
/ 29 января 2019

Если вы уже root, у вас есть все права на переключение на другую учетную запись пользователя в любое время.Команда для этого: su.

Если ваш пользователь admin,

su - admin <<\:
    osascript -e 'tell application "System Events.app" to set picture of every desktop to "/Library/Desktop Pictures/dneg.jpg"'
:

Существуют различные способы передачи команды в качестве стандартного ввода в su;возможно, смотрите также Передача команд в качестве входных данных для другой команды (su, ssh, sh и т. д.)

...