Jak uruchomić aplikację podczas uruchamiania jako określony użytkownik?


17

Czy istnieje sposób na uruchomienie aplikacji podczas uruchamiania na określonym koncie użytkownika?

Na przykład chciałbym a_small_appuruchomić pod kontem użytkownika bob(który jest w grupie bobsgroup). Czy coś dodaję /etc/init.d?

Uwaga: Nie chcę, aby aplikacja uruchomiła się po zalogowaniu użytkownika, ale raczej po uruchomieniu komputera.


Czy chcesz uruchomić aplikację przed zalogowaniem się w oknie logowania?
Martin Owens -doctormo-

@Martin: Cóż, to naprawdę nie ma znaczenia ... Używam Apache jako przykładu tutaj. Kiedy to się zaczyna?
Nathan Osman

Odpowiedzi:


13

Metoda agnostyczna systemu startowego. Można użyć w /etc/rc.local, a /etc/init.d/...skrypt, plik konfiguracyjny Upstart i prawdopodobnie zbyt Systemd konfigurację.

sudo -u oli /full/path/to/application

To polecenie zostanie uruchomione jako użytkownik root i sudoprzejdzie do użytkownika „oli”. Oczywiście zmień użytkownika i polecenie do swoich celów.

Powinienem dodać, że istnieje co najmniej tuzin sposobów na zrobienie tego ... Ale z mojego doświadczenia wynika, że ​​wszystkie są w dużej mierze identyczne. Oto przykładowy przykład z jego setuidzwrotką:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application

Sugeruję ten przykład
waltinator

Dostajęsudo: unknown group: 1004
ThorSummoner

Również poke : Czas zaktualizować linię o upstart.
muru

@muru będę. Ale grupa nie jest wymagana. sudo użyje domyślnej grupy określonego użytkownika.
Oli

Lepiej to wyedytuj. To polecenie było błędne przez trzy lata, odkąd ktoś je poprawił ! : D
muru

1

Wygląda na to, że pierwsza odpowiedź nie działa już w Ubuntu 14.10.

Tak to robię (umieść to w /etc/rc.local)

su <username> - -c "<command>"

Jeśli potrzebujesz powłoki logowania, odpowiednikiem jest sudo -i -u ....
muru
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.