당신이 다니고있는 학교가 대본을 출판했을 때, 당신의 우려를 표명하기 가장 좋은 곳은 강사에게 있습니다.
즉, 한 줄씩 코드를 해독하는 데 도움이 될 수 있습니다. 여기있는 모든 사람이 모든 코드 를 분석 하는 것은 비현실적 일 것입니다 .
실제로 총 5,360 줄의 40 개의 bash 스크립트가 있습니다. 나는 그것들을 함께 결합하고 남용 될 수있는 bash / shell 명령을 찾았습니다. 그들은 모두 정상적으로 사용되는 것처럼 보입니다 .
$ cat /tmp/sshellcheck.mrg | grep " rm "
rm -rf "$RETURNPATH"/tmp/*
rm -f "$RETURNPATH"/.mynorminette
rm -f $LOGFILENAME
rm -f $LOGFILENAME
rm -f .mymoulitest
rm -f "${RETURNPATH}/tmp/${FILEN}"
$ cat /tmp/sshellcheck.mrg | grep -i kill
function check_kill_by_name
kill $PROCESSID0
declare -a CHK_MINISHELL_AUTHORIZED_FUNCS='(malloc free access open close read write opendir readdir closedir getcwd chdir stat lstat fstat fork execve wait waitpid wait3 wait4 signal kill exit main)'
check_kill_by_name "${PROGNAME}"
kill -0 "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null && kill "${CURRENT_CHILD_PROCESS_PID}" 2>/dev/null
display_error "killed pid: ${CURRENT_CHILD_PROCESS_PID}"
check_kill_by_name "$PROGNAME $PROGARGS"
check_kill_by_name "$PROGNAME $PROGARGS"
kill ${PID} 2>/dev/null
$ cat /tmp/sshellcheck.mrg | grep -i root
"check_configure_select ROOT" "Root folder: /"\
'ROOT')
echo "'${ALLOWED_FILES}' must be placed at root folder but was found here:" >>"${LOGFILENAME}"
printf "%s" "'${ALLOWED_FILES}' must be placed at root folder"
$ cat /tmp/sshellcheck.mrg | grep -i sudo
$
rm -rf /
전체 하드 디스크 파티션을 지우라는 명령 이 없습니다 .
sudo
스크립트를 실행하는 데 사용할 필요는 없습니다 .
- 이 스크립트는 실제로
C
검사 된 파일에 인증 된 기능 만 사용되도록합니다.
- bash / shell 코드를 빠르게 탐색하면 전문적으로 작성되어 따르기 쉽다는 것을 알 수 있습니다.
- 병합 된 포함 파일에서 shellcheck 를 사용하면 세 가지 구문 오류 만 나타납니다.
- 저자 이름이 식별되고 주요 저자는 자신의
github
페이지 에 자신의 사진이 있습니다 .
- 수명 보증은 없지만
42FileChecker
사용하기에 안전합니다.
인간이 읽을 수있는 bash 스크립트는 아닙니다. 읽을 수없는 컴파일 된 이진 객체는 문제의 원인입니다. 예를 들어 "shiny-bouncy-sphere"라는 프로그램은 화면에 비슷한 것을 칠할 수 있지만 배경에서는 모든 파일을 지울 수 있습니다.
원래 답변
스크립트 작성자에게 요청하는 것이 가장 좋습니다. 실제로, 당신은 위에 나타난 것처럼 거의 그대로 질문을 게시 할 수 있습니다.
또한 저자에게 물어보십시오 :
- 어떤 파일이 업데이트됩니까?
- 정전 또는 프로그램 버그로 인해 충돌이 발생하면 어떻게됩니까?
- 미니 백업을 먼저 수행 할 수 있습니까?
그리고 당신이 생각할 수있는 다른 좋은 질문들.
편집 1-악의적 인 작성자에 대해 걱정합니다.
좋은 공개 리뷰가 많은 소프트웨어 만 사용해야합니다. 또한 Serge, Jacob, Colin King 등과 같은 Ask Ubuntu에서 신뢰하는 저자도 있습니다. Ask Ubuntu와 같은 다른 존경받는 사이트 및 그들의 존경받는 회원들도 "악의적이지 않은"것으로 간주되어야합니다.
Ask Ubuntu의 "존중있는 저자"의 장점은 "평판 포인트"에 대한 자기의 가치를 평가한다는 것입니다. 데이터를 "훔친"또는 "손상된"코드를 의도적으로 작성해야한다면 평판이 빨리 떨어질 것입니다. 실제로 저자들은 "변조의 분노"를 겪을 수 있고 정지되거나 10,000 점의 평판을 앗아 갈 수 있습니다.
편집 2-모든 지침을 따르지 마십시오
bash 스크립트 지침을 자세히 살펴 보았습니다.
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
"안전한"방법은 첫 번째 줄만 실행하는 것입니다.
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker
스크립트가 다운로드되지만 실행되지는 않습니다. 다음으로 nautilus
(파일 관리자)를 사용하여 설치된 디렉토리 및 파일을 검사하십시오. 프랑스의 학생들이 작성한 bash 스크립트 모음이 매우 빨리 발견됩니다.
스크립트의 목적은 부적절한 기능과 메모리 누수에 대해 C 프로그램을 컴파일하고 테스트하는 것입니다.
man
포함 된 명령 의 페이지를 읽을 수 있습니다.