sudo su 전에 확인

sudo su 전에 확인

우리 팀의 대부분의 사람들은 sudo 액세스 권한을 가지고 있습니다. 그러나 나는 여전히 sudo su를 실행하기 전에 확인하기를 원합니다. 사용자가 Y를 누르면 그를 루트로 허용하고, 그렇지 않으면 자신의 홈 디렉터리로 되돌립니다. 아래 코드를 시도했지만 사용자가 다른 키를 누르면 여전히 루트로 로그인할 수 있습니다. 도와주세요

!/bin/bash

echo -e "You are entering into high security env."

echo -e "If You are still not sure about the purpose, please logout of root user immediately."

echo -e "Contact admin immediately in case of any doubt."

sleep 1
echo -e "Press Y if you still want to enter as a root user"

read ch

case $ch in

    'Y'|'y' )

                echo -e "Risk is all yours. PT team welcome you here."
                ;;

        *)
                bash /root/.bash_logout
                exit
                ;;
esac

답변1

분명히 너무 많은 사용자가 sudo 액세스 권한을 갖고 있다는 점은 우려됩니다.

바퀴를 재발명하는 것보다 더 표준적인 접근 방식을 권장하고 루트는 .profile실행 시에만 실행되기 때문에 sudo su -sudo의 별칭은 덜 편리할 뿐만 아니라 미리 인쇄되어 있기 때문입니다.

/etc/sudoers구성에는 각 사용자가 처음 사용할 때 받는 기본 경고를 영구적으로 유지하는 옵션이 있습니다.

귀하는 귀하의 로컬 시스템 관리자로부터 일반적인 강의를 들으셨을 것으로 생각됩니다. 일반적으로 다음 세 가지로 귀결됩니다.

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

루트 비밀번호:

항상 열어두려면 /etc/sudoers.d/privacy다음 내용이 포함된 파일을 생성하면 됩니다.

Defaults        lecture = always

현재 사용자로 시도하려면 먼저 로그아웃해야 합니다.

기본 메시지는 sudo 소스 코드에 있으며, 이를 변경하려면 sudo를 다시 컴파일해야 합니다. 이 작업을 수행하지 않는 것이 좋습니다. 고집할 경우 apt-src에서 패키지를 컴파일한 다음 고정/고정해야 합니다. 왜냐하면 무작위로 업데이트되지 않고 수동으로만 업데이트되기 때문입니다.

귀하의 요청에 대한 보완책으로 사람들의 행동을 기록하기 시작할 것을 강력히 권장합니다. 특히 사람들이 무제한으로 sudo접근할 수 있는 경우에는 더욱 그렇습니다.

다음에 추가하는 경우 /etc/bash.bashrc:

readonly PROMPT_COMMAND='history -a >(logger -t "commandlog $USER[$PWD] $SSH_CONNECTION")'

그러면 모든 사용자 명령이 시스템 로그에 기록됩니다.

잠긴 중앙 syslog 서버로 로그가 전달되도록 구성하겠습니다 syslog. 그러면 해커 공격이나 악의적인 sysadmin이 발생하더라도 증거를 조작할 수 없습니다.

답변2

스크립트는 어디에서 호출됩니까? 루트의 경우 .bash_profile 또는 .bashrc?

나는 이 줄이 사용자를 로그아웃시킬 것이라고 믿지 않습니다:

bash /root/.bash_logout

.bash_logout 파일의 명령을 실행하는 새로운 bash 프로세스를 생성합니다.

다음 줄을 시도해 볼 수 있습니다.

logout

업데이트: 또는 시도해 보세요:

exit

쉘 시작 파일이 경고 스크립트를 실행 중이라고 가정하면 "exit"는 쉘이 아닌 경고 스크립트만 종료합니다.

"exit"를 실행하는 bash 코드가 별도의 경고 스크립트가 아닌 .bashrc 파일에 있는 경우 셸을 종료해야 합니다.

관련 정보