Оскільки школа, яку ви відвідуєте, опублікувала сценарії, найкраще висловити свої занепокоєння у ваших інструкторів.
Це означає, що ми можемо допомогти вам розшифрувати код по черзі. Кожен тут, мабуть, недоцільно аналізувати весь код.
Насправді у вас є 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 показує, що це професійно написано та легко дотримуватися.
- Використання оболонок на об'єднаних файлах включають лише три синтаксичні помилки.
- Імена автора ідентифікуються, і головний автор навіть має свою картинку на своїй
github
сторінці.
- Хоча гарантій у житті немає,
42FileChecker
видається безпечним у використанні.
Це не читабельні людські сценарії, про які потрібно так сильно переживати. Це компільовані бінарні об'єкти, які ви не можете прочитати, що викликають занепокоєння. Наприклад, програма під назвою "shiny-bouncy-сфера" може намалювати щось подібне на вашому екрані, але на задньому плані це може стерти всі ваші файли.
Оригінальна відповідь
Найкраще запитати автора сценарію, що він робить. Дійсно, ви можете майже розмістити своє запитання дослівно, як показано вище.
Також запитайте автора:
- Які файли оновлюються?
- Що станеться у випадку аварії через відключення живлення або помилку програми?
- Чи можна виконати міні-резервне копіювання спочатку?
І будь-які інші хороші питання, які ви можете придумати.
Редагувати 1 - Турбує зловмисного автора.
Вам слід використовувати лише програмне забезпечення з великою кількістю хороших відгуків громадськості. Автори, яким ви довіряєте тут, запитуйте 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
(файловий менеджер) для огляду встановлених каталогів та файлів. Дуже швидко ви виявите, що є колекція баш сценаріїв, написана групою студентів у Франції.
Призначення сценаріїв - складання та тестування програм C на предмет неправильних функцій та витоку пам'яті.
man
сторінки з команд, що містяться в ньому.