2017-09-06 1 views
1

안녕하세요 여러분, 저는 배쉬를 아주 좋아합니다. 간단한 로거를 만들고 싶습니다. 수퍼 유저로 로그인해서 (sudo su) 코드를 실행하고 (파일에 쓰기) 수퍼 유저로 로그 아웃 한 다음 나머지 코드를 실행 한 다음Bash 스크립트. 사용자로 로그인하고, 명령을 실행하고, 로그 아웃하십시오.

난 정말 당신이 시간을 찾을 경우 해결책이처럼 간단한 예제 아무것도하지만, 거기에 (내가 그것을 찾을 수 있는지입니다)입니다

이 감사를 찾기 위해 고군분투

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
    then 
    sudo su 
    if [ "$EUID" -ne 0 ] 
    then 
     echo $log >> ~/Logs/logs.txt    
    fi 
    exit 
fi 
echo "DONE" 

:

여기 내 예입니다 돕다.

+0

은 다음 sudo를로 실행하고자하는 코드에 대한 스크립트를 작성하고,을 sudoers 파일에 예외를 두십시오. – 123

답변

1

당신이 sudo su을 할 경우 대화 형 세션을 얻을 것이다 - 아마도 당신은 그냥 로그 대신 쓸 수있는 명령을 실행한다 :

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
then 
sudo bash -c "if [ \"$EUID\" -ne 0 ]; then echo $log >> ~/Logs/logs.txt; fi" 
fi 
echo "DONE" 
+0

sudoers를 업데이트하지 않은 경우 여전히 암호를 요구합니다. – 123

+0

그럴 것이다. OP가 문제가되는 암호 프롬프트에 대해 아무 말도하지 않았습니다. – arco444

+0

내가 말한 것은 @ arco444에 대해 100 % 요청한 것입니다. – Devaux