Linux를 처음 사용하는 경우 - Debian 9를 사용하고 있습니다.
pwndbg
튜토리얼을 따르고 스크립트를 실행하여 설치하고 싶습니다 .여기. 나는 이 작업을 수행하기 위해 내 루트 계정을 사용하고 있으며 이를 내 루트 계정의 홈 디렉터리에 설치하려고 합니다. 출력은 다음과 같습니다.
root@My-Debian-PC:~/pwndbg# ./setup.sh
+ PYTHON=
+ INSTALLFLAGS=
+ osx
+ uname
+ grep -i Darwin
+ '[' '' == --user ']'
+ PYTHON='sudo '
+ linux
+ uname
+ grep -i Linux
+ sudo apt-get update
./setup.sh: line 24: sudo: command not found
+ true
+ sudo apt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg
./setup.sh: line 25: sudo: command not found
root@My-Debian-PC:~/pwndbg#
아무래도 스크립트는 sudo 권한을 가진 계정으로 실행되는 것으로 간주되어 sudo
루트 계정에서는 명령어를 사용할 수 없기 때문에 오류가 발생하는 것입니다.
그렇다면 오류를 제거할 수 있는 방법은 없을까요? 단순히 스크립트를 편집하고 sudo
24행과 25행에서 단어를 제거해야 합니까, 아니면 이것이 나쁜 습관입니까? 아니면 나중에 다른 스크립트에서 오류가 발생할 경우를 대비하여 내 루트 계정을 sudo 그룹에 추가할 수 있습니까? 아니면 스크립트를 있는 그대로 실행한 다음 apt-get update
실행 해야 합니까 apt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg
?
감사해요!
답변1
스크립트를 편집하고 sudo
명령을 제거할 수 있는 경우 루트로 스크립트를 실행하면 예상대로 작동합니다.
명령을 설치하는 것도 sudo
명령을 성공적으로 실행하는 방법입니다.
apt install sudo
답변2
루트가 아닌 사용자로 실행해 보겠습니다. 이러한 안전 구조가 존재하는 데는 이유가 있습니다.
이미 루트인 경우 sudo
중복됩니다. 스크립트는 종종 "sudo"를 사용하여 일반 사용자에게 "정말로 이 작업을 수행하시겠습니까?"라고 묻거나 특정 사용자에 대한 변경 사항과 시스템 전체에 대한 변경 사항을 구별하기 위해 사용합니다. 따라서 테스트 상자를 어지럽히는 경우에는 테스트 상자를 사용하되 "sudo" 행의 기능을 구체적으로 이해했는지 확인하십시오.
또한 관리 이외의 광범위한 목적으로 루트 계정을 사용하지 않도록 주의합니다. 소프트웨어 개발을 위해 설치하는 라이브러리를 실제로 사용하려면 관리자가 아닌 사용자를 일일 로그인으로 사용하는 것이 좋습니다. 바라보다여기루트로 응용 프로그램을 실행하기 위해 정기적으로 로그인하는 것이 왜 나쁜 생각입니까? 보안에 관심이 있는 경우 이를 이해하는 것이 특히 중요합니다.