sudo bash가 필요한 이유는 무엇입니까?

sudo bash가 필요한 이유는 무엇입니까?

나는 다음 코드를 읽고 있었습니다.

$ sudo bash
# cd /home/
# ./gitpull.sh

첫 번째 줄이 필요한 이유는 무엇이며, 정확히 어떤 역할을 합니까? $ sudo대신에 내가 방금했다면 어떻게 될까요 $ sudo bash?

답변1

레벨 사용자 로 bash 쉘을 시작합니다 root. 일반적으로 일반 사용자는 접근할 수 없기 때문에 필요합니다./home/

당신이 하고 있는 일의 위험은 당신이 루트 쉘에 있다는 것입니다. 당신은 당신의 기계를 아주 쉽게 망칠 수 있습니다.

답변2

다음을 수행하는 것이 훨씬 나을 것입니다.

$ sudo sh -c 'cd /home; ./gitpull.sh'

루트로 호출된 명령이 기록되기 때문입니다. sudo를 통해 직접 셸을 호출하면 sudo의 모든 보안 이점이 방지되므로 피해야 합니다.

답변3

sudo <shell>, 작동한다면 sudo 설치가 제대로 이루어지지 않았으며 잠재적인 보안 약점이 있음을 드러냅니다.

sudo쉘과 같은 임의의 명령을 허용하도록 구성해서는 안됩니다. 의 목적은 sudo루트가 아닌 인증된 사용자가 루트 암호를 몰라도 루트로 특정 명령을 실행할 수 있도록 허용하는 것입니다.

어떤 사용자에게나 허용 되면 sudo bash해당 사용자는 자신의 비밀번호를 아는 것만으로도 루트가 됩니다.

공격자가 할 수 있는 계정 중 하나의 비밀번호를 획득하면 sudo bash공격자는 루트를 갖게 됩니다.

sudo bash루트 쉘을 얻는 것과 동등한 작업을 수행하는 올바른 방법은 su자신의 비밀번호가 아닌 루트 비밀번호를 제공하는 것입니다.

답변4

sudo사용자는 다른 사용자(일반적으로 수퍼유저 또는 루트)의 보안 권한으로 프로그램을 실행할 수 있습니다.
bash새로운 bash 쉘을 시작합니다.
따라서 sudo bash루트 사용자의 보안 권한으로 새로운 bash 쉘을 시작합니다.

관련 정보