sudo를 사용하지 않고 사용자 초기 로그인 시뮬레이션

sudo를 사용하지 않고 사용자 초기 로그인 시뮬레이션

2개의 타사 프로그램을 연결하는 스크립트를 작성 중입니다. (데이터독과 AWS)

sudo -u데이터 마이닝 스크립트는 내 스크립트를 실행 하는 데 사용됩니다 .

초기 로그인이 시뮬레이션되지 않으면 데이터를 검색하는 데 필요한 스크립트가 segfault를 발생시킵니다.

데이터 마이닝 스크립트에 권한이 없습니다 sudo.

다음과 같이 오류를 재현할 수 있습니다.

[me] ~$ sudo -u dd-agent aws
[me] ~$ echo $?
139

물론 sudo -iu명령을 실행하고 실행하면 제대로 작동합니다.

통과하지 않고 초기 로그인을 시뮬레이션할 수 있습니까 sudo?

답변1

로그인 가장의 경우("sudo -i" 전달 없이) "su" 명령을 사용해야 합니다.

매개변수 "-"에 대한 매뉴얼 페이지를 확인하십시오.

-, -l, --login
          Starts the shell as login shell with an environment similar to a real login:

             o      clears all environment variables except for TERM

             o      initializes the environment variables HOME, SHELL, USER, LOGNAME, PATH

             o      changes to the target user's home directory

             o      sets argv[0] of the shell to '-' in order to make the shell a login shell

또한, 당신은 사용해야합니다여기 - 문서.

예를 들어 "id" 명령을 사용하여 로그인한 사용자의 ID가 인쇄되는지 확인할 수 있습니다.

#\bin\bash

id

su - user <<EOF
userPassword
id
#here you can execute your script

EOF

id

또한 프로그램에 분할 오류가 발생하면 프로그램에 속하지 않는 다른 메모리 세그먼트에 액세스하려고 시도합니다.

관련 정보