시작할 때 특정 사용자로 응용 프로그램을 실행하는 방법은 무엇입니까?


17

시작하는 동안 특정 사용자 계정으로 응용 프로그램을 시작하는 방법이 있습니까?

예를 들어, a_small_app사용자 계정 bob(그룹에 있음 bobsgroup)으로 실행하고 싶습니다 . 내가 무언가를 추가 /etc/init.d합니까?

참고 : 사용자가 로그인 한 후 컴퓨터를 시작할 때 응용 프로그램을 시작하지 않으려 합니다.


로그인 창에서 로그인하기 전에 앱을 시작 하시겠습니까?
Martin Owens -doctormo-

@Martin : 글쎄, 그것은 중요하지 않습니다 ... 나는 여기서 Apache를 예로 사용하고 있습니다. 언제 시작 하죠?
Nathan Osman

답변:


13

시동 시스템 불가지론 적 방법. 이에 사용 /etc/rc.local하는 /etc/init.d/...너무 스크립트, 신출내기 구성 파일 및 아마 systemd 구성.

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

이 명령은 루트 사용자로 실행되며 sudo"oli"사용자로 드롭 다운됩니다. 분명히 사용자와 명령을 목적에 맞게 변경하십시오.

이 작업을 수행하는 데는 적어도 12 가지 방법이 있다고 덧붙여 야합니다.하지만 제 경험상 그것들은 사실상 거의 동일합니다. setuid스탠자 를 사용한 시작 예제는 다음과 같습니다 .

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

setuid oli
respawn

exec /full/path/to/application

나는 그 예를 제안합니다
waltinator

나는 얻는다sudo: unknown group: 1004
ThorSummoner

또한, poke : upstart에 대한 라인을 업데이트 할 시간입니다.
muru

@muru 내가 할 것이다. 그러나 그룹은 필요하지 않습니다. sudo는 지정된 사용자의 기본 그룹 을 사용합니다 .
Oli

그렇다면 더 잘 편집하십시오. 누군가 그것을 개선 한 이후로 3 년 동안 그 명령은 잘못되었습니다 ! : D
muru

1

우분투 14.10에서는 첫 번째 답변이 더 이상 작동하지 않는 것 같습니다.

이것이 내가하는 방법입니다 (/etc/rc.local에 넣으십시오)

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

로그인 쉘이 필요한 경우에는 해당하는 것입니다 sudo -i -u ....
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.