当您上学的学校已经发布了剧本时,表达您的疑虑的最佳位置是与您的老师交流。
也就是说,我们可以帮助您逐行解密代码。对于这里的任何人来说,分析所有代码可能都不切实际。
实际上,您有40个bash脚本,总共5360行。我将它们组合在一起,并寻找可能被滥用的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-担心恶意作者。
您只应使用具有良好公众评价的软件。或者,您在此处信任Ask Ask Ubuntu的作者,例如Serge,Jacob,Colin King等。其他受尊敬的网站,如Ask Ubuntu及其受尊敬的成员,也应视为“非恶意”。
Ask Ubuntu中“受人尊敬的作者”的优势在于,他们将自己的价值押在“声誉点”上。如果他们有意编写“窃取”或“损坏”数据的代码,他们将很快失去声誉。确实,作者可能会遭受“ mods的愤怒”并被暂停和/或夺走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
包含的命令上的页面。