쉘 스크립트에 관한 질문입니다.

mayaabba의 이미지

sh 파일 안에 다음과 같이 입력하였습니다.

#/bin/bash

sudo -s

echo "Hello"

그럼 당연히 패스워드를 입력하라고 할테고 root 권한으로 변경 될 텐데

문제는 root 에서 Hello 가 나오지 않습니다.

그리고 root 를 로그아웃 하면 그제서야 Hello 가 출력 됩니다.

아마 계정 별 프로세스가 달라서 생기는 문제 같은데요

이걸 어떻게 하면 연속적으로 처리 할 수 있을까요?

즉, 계정이 변경되어도 프로세스는 변경된 계정으로 수행을 계속 이어서 할 수 있는 방법을 찾고 있습니다.

도움 부탁 드립니다.

freemckang의 이미지

다음과 같은 쉘 스크립트를 만들어보았습니다.

#!/bin/sh

sudo -s whoami
whoami

실행시켜보니,

root
freemckang

이라는 결과를 얻을 수가 있네요. 말씀하신 것처럼 프로세스가 바뀌는 것이 문제의 원인이긴 합니다만, sudo의 명령어 특성상 작성하신 스크립트로는 원하는 동작을 얻지 못할 것 같다는 생각이 드네요.

sudo man page를 보니 -s를 사용하면 command를 인자로 받게 되어있네요. 원래 의도대로 쉘 스크립트를 작성하신 다른 이유라도 있는것인가요??

句日新, 日新 日新 又日新.