Есть ли способ запустить приложение от имени другого пользователя, чтобы запущенное приложение использовало настройки/историю/ресурсы другого пользователя и т. д.?
Например: я вошел в систему как Алиса и хочу запустить Firefox как Боб, поэтому Firefox будет показывать историю просмотров Боба, а не Алисы.
Я попытался
$ su Bob
$ open -a Firefox
Но без видимого эффекта; на самом деле монитор активности показывает, что процесс Firefox запускается Алисой, а не Бобом.
Я понимаю, что мне потребуются учетные данные Боба, но это не проблема.
В командной строке вам нужно найти исполняемый файл Unix и запустить его с помощью sudo следующим образом:
$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox
… или то же самое с su: (однако для этого также необходимо установить пароль для root, что я не рекомендую)
$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox
(…или вышеперечисленное в одну строку:)
$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox
В прошлом самым простым способом для PPC Mac было использование Pseudo , но его уже давно не поддерживают . Это нужно для того, чтобы поместить значок приложения на значок или окно Псевдо.
См. https://apple.stackexchange.com/a/102105/1860 , чтобы узнать, почему su
не работает для всех приложений.
В последних версиях launchd
есть возможность запуска приложений в рамках сеанса другого пользователя; хотя инженеры Apple не рекомендовали его повсеместное использование.
Используйте bsexec
параметр в launchctl , чтобы выбрать соответствующий сеанс пользователя:
bslist [PID | ..] [-j]
This prints out Mach bootstrap services and their respective states. While the namespace
appears flat, it is in fact hierarchical, thus allowing for certain services to be only avail-
able to a subset of processes. The three states a service can be in are active ("A"), inactive
("I") and on-demand ("D").
If [PID] is specified, print the Mach bootstrap services available to that PID. If [..] is
specified, print the Mach bootstrap services available in the parent of the current bootstrap.
Note that in Mac OS X v10.6, the per-user Mach bootstrap namespace is flat, so you will only
see a different set of services in a per-user bootstrap if you are in an explicitly-created
bootstrap subset.
If [-j] is specified, each service name will be followed by the name of the job which regis-
tered it.
bsexec PID command [args]
This executes the given command in the same Mach bootstrap namespace hierachy as the given
PID.
bstree [-j]
This prints a hierarchical view of the entire Mach bootstrap tree. If [-j] is specified, each
service name will be followed by the name of the job which registered it. Requires root priv-
ileges.
Рекомендуемый подход состоит в том, чтобы написать билет задания launchd и перезапустить Mac или попросить пользователя выйти из системы и снова войти в нее.
Еще один метод:
# chown someuser command
# chmod u+s command
$ ./command
Благодаря wysota по адресу: http://www.qtcentre.org/threads/4730-Linux-Bash-Run-a-command-as-another-user
(Потратил много времени на поиски чего-то, что сработает в моей конкретной ситуации, и решил, что смогу поделиться богатством)
Вам нужно ssh. Т.е. ssh username@123.456.00
_ Как вы сказали, вам понадобится пароль для пользователя. Тогда вы можете делать то, что вы просите. Вам нужно включить удаленный вход в System Prefs> Sharing:
Затем вы можете просто сделать это, open -a Firefox
и Firefox откроется как другой пользователь, а не как ваш.
LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.
при попытке open -a Firefox
:-|sudo open -na Firefox
ls -l
говорит для Firefox?sudo
Опция, упомянутая в другом ответе (с путем к исполняемому файлу), работает, по крайней мере, под Lion.open -a <application>
и он откроет графический интерфейс приложения.
Яри Кейнянен
su
, если вы хотите этого не делатьsudo
. Спасибо!Войцех Беднарски
Trace/BPT trap: 5
ЛапландияКохан
sudo
подхода у меня возникают проблемы со входом в систему, даже если я использую правильный пароль для другого пользователя.su
работает с другой стороны (нет пароля для корневого набора)мммммм
Эван Бови
мммммм