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