시스템을 시작하거나 다시 시작할 때 다른 사용자로 스크립트를 자동으로 실행하고 싶습니다.

시스템을 시작하거나 다시 시작할 때 다른 사용자로 스크립트를 자동으로 실행하고 싶습니다.

newUser를 사용하여 새 사용자를 생성하고 sudo adduser newUser sudo그에 대한 비밀번호도 설정했습니다. sudo passwd newUser이제 내가 원하는 것은 이 newUser에서 스크립트를 실행하고 새 폴더를 생성하는 스크립트를 생성했으며 mkdir또한 다음은 시스템 시작이나 재부팅이 자동으로 실행될 경우 를 사용했기 때문에 @rebootcrontab스크립트를 newUser에서 실행하고 싶고, 비밀번호도 루트 사용자를 사용하여 설정했는데 sudo passwd root, 기본적으로 이 스크립트는 루트에서 실행되므로 원합니다. newUser로 실행됩니다.

감사해요.

답변1

cron 작업은 crontab을 소유한 사용자로 실행됩니다.

이는 @rebootcrontab에 작업을 추가 해야 함을 의미합니다 newUser.

이 작업은 두 가지 방법으로 수행할 수 있습니다.

  1. 루트로 실행하고 crontab -u newUser -e작업 일정을 crontab에 추가 newUser하거나
  2. 로그인 newUser후 실행하여 crontab -e일정을 추가하세요.

일반 일일 사용자로서 첫 번째 작업을 수행할 수 있습니다.

sudo crontab -u newUser -e

또는 두 번째 패스

sudo -u newUser crontab -e

(일반 사용자가 허용된다고 가정 sudo -u newUser).

답변2

내가 생각할 수 있는 처음 두 가지 방법은 다음과 같습니다.

1] 그냥 사용하면 sudo다른 사용자로 프로그램이 실행됩니다. 예를 들어, 다음 줄을 루트로 실행합니다. 여기서 "root"는 사용자 "newUser"로 프로그램을 실행합니다.

root@foo $> sudo -u newUser whoami 
=> newUser 

그런 다음 을 읽어 보십시오 man sudo.

2] 배포판에는 차이가 있을 수 있지만 제가 사용하는 시스템에서는 각 사용자마다 자신만의 crontab이 있습니다. 따라서 사용자가 newUser시작 시 무언가를 실행하기를 원하는 경우.

newUser@foo $> crontab -e

그런 다음 @reboot거기에 와이어를 삽입합니다.

관련 정보