Kullanıcı değiştirmeden bir uygulamayı başka bir kullanıcı olarak başlatabilir miyim?


17

Başlatılan uygulamanın diğer kullanıcının tercihlerini / geçmişini / kaynaklarını ve diğerlerini kullanması için uygulamayı başka bir kullanıcı olarak başlatmanın bir yolu var mı?

Örneğin: Alice olarak giriş yaptım ve Firefox'u Bob olarak başlatmak istiyorum, bu nedenle Firefox Alice'in yerine Bob'un tarama geçmişini gösterecekti.

denedim

$ su Bob
$ open -a Firefox

Ancak belirgin bir etkisi yoktur; Aslına bakılırsa Etkinlik monitörü Firefox sürecinin Bob tarafından değil Alice tarafından yürütüldüğünü gösterir.

Bob'un oturum açma kimlik bilgilerine ihtiyacım olacağını anlıyorum, ama bu bir sorun değil.

Yanıtlar:


16

Komut satırından Unix yürütülebilir dosyasını bulmanız ve sudo kullanarak şu şekilde çalıştırmanız gerekir :

$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox 

… Veya aynı su ile:

$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox

(… Ya da yukarıdakileri tek bir satırda :)

$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox

Geçmişte, PPC Mac'ler için en kolay yol Pseudo kullanmaktı , ancak uzun süredir durduruldu . Bu, uygulama simgesini Pseudo'nun simgesine veya penceresine bırakmaktır.


Ah, anahtar Unix yürütülebilir dosyasını bulmaktı. suEğer istemezse de çalışır sudo. Teşekkürler!
Jari Keinänen

Hmm, Google Chrome'u çalıştırmaya çalışırken şunu alıyorum:Trace/BPT trap: 5
Wojciech Bednarski

Kullanırken sudoyaklaşım ben başka bir kullanıcı için doğru şifreyi kullanmak rağmen hatalı giriş olsun. suÖte yandan çalışır (kök kümesi için şifre yok)
LapplandsCohan

@lapplandscohan sudo geçerli kullanıcının şifresini alır
user151019

1
@ evan.bovie YTes güvenlik düşündüklerini gösterir
user151019

4

Tüm uygulamalarda neden çalışmıyor? Https://apple.stackexchange.com/a/102105/1860 adresine bakın su.

launchd's bsexec

Son sürümleri launchdbaşka bir kullanıcının oturumunda uygulamaları başlatma yeteneğine sahiptir; Apple mühendisleri genel kullanımını tavsiye etmese de.

Uygun kullanıcı oturumunu hedeflemek için launchctl'dekibsexec seçeneği kullanın :

 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.

Önerilen yaklaşım, bir başlangıç ​​iş bileti yazmak ve Mac'i yeniden başlatmaktır veya kullanıcıdan çıkış yapıp tekrar oturum açmasını istemektir.



0

Ssh gerekir. Yani ssh username@123.456.00. Söylediğiniz gibi, kullanıcı için şifreye ihtiyacınız olacak. Sonra istediğini yapabilirsin. Sistem Tercihleri> Paylaşım altında uzaktan oturum açmayı etkinleştirmeniz gerekir:
Uzaktan Giriş Tercihi
Daha sonra, yapabilirsiniz open -a Firefoxve Firefox sizin değil, diğer kullanıcı olarak açılır.


Ne yazık ki alıyorum: LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.çalışırken open -a Firefox: - |
Jari Keinänen

@koiyu Denesudo open -na Firefox
daviesgeek

yukarıdaki gibi başarısız olur: - / (ayrıca unix yürütülebilir yolunu kullanarak, farklı da olsa başarısız olur.)
Jari Keinänen

1
Bir SSH oturumundan başlatılan işlemlerin GUI'ye erişimi yoktur. Bu, sisteminizde çalışıyorsa, bir noktada düşük seviye yapılandırmayı değiştirdiğinizden şüpheleniyorum.
Tobias

1
@daviesgeek ancak OP'nin istediği gibi şu anda GUI'ye sahip olandan başka bir kullanıcıya SSH yaptınız mı?
Tobias
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.