Ponieważ szkoła, do której uczęszczasz, opublikowała skrypty, najlepszym miejscem do wyrażenia swoich obaw są instruktorzy.
To powiedziawszy, możemy pomóc ci rozszyfrować kod po linii. Prawdopodobnie jest to niepraktyczne dla każdego tutaj, aby analizować wszystkie kodu.
W rzeczywistości masz 40 skryptów bash z łączną liczbą 5 360 linii. Połączyłem je razem i szukałem poleceń bash / shell, które mogłyby zostać wykorzystane. Wszystkie wydają się być używane normalnie :
$ 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
$
- Nie ma
rm -rf /
polecenia, aby wyczyścić całą partycję dysku twardego.
- Nie ma wymagań, które
sudo
należy zastosować do uruchomienia skryptu.
- Skrypt faktycznie sprawdza, czy
C
w sprawdzanych plikach używane są tylko autoryzowane funkcje.
- Szybkie przeglądanie kodu bash / shell pokazuje, że jest on profesjonalnie napisany i łatwy do naśladowania.
- Użycie sprawdzania powłoki w scalonych plikach dołączanych ujawnia tylko trzy błędy składniowe.
- Nazwiska autorów są identyfikowane, a główny autor ma nawet swoje zdjęcie na swojej
github
stronie.
- Chociaż nie ma żadnych gwarancji w życiu,
42FileChecker
wydaje się bezpieczny w użyciu.
To nie są czytelne dla ludzi skrypty bash, o które musisz się tak bardzo martwić. Są to skompilowane obiekty binarne, których nie można odczytać, które stanowią powód do niepokoju. Na przykład program o nazwie „błyszcząca kula sprężysta” może namalować coś takiego na ekranie, ale w tle może wymazać wszystkie pliki.
Oryginalna odpowiedź
Najlepiej zapytać autora skryptu, co robi. Rzeczywiście, możesz prawie opublikować swoje pytanie dosłownie, jak pokazano powyżej.
Zapytaj także autora:
- Jakie pliki są aktualizowane?
- Co się stanie, jeśli nastąpi awaria z powodu awarii zasilania lub błędu programu?
- Czy najpierw można wykonać mini-kopię zapasową?
I wszelkie inne dobre pytania, o których możesz pomyśleć.
Edycja 1 - Martwi się o złośliwego autora.
Powinieneś używać oprogramowania z dużą ilością dobrych opinii publicznych. Alternatywnie autorzy, którym ufasz tutaj w Ask Ubuntu, jak Serge, Jacob, Colin King itp. Inne szanowane strony, takie jak Ask Ubuntu i ich szanowani członkowie, również powinny być uważane za „nie-złośliwe”.
Zaletą „szanowanych autorów” tutaj w Ask Ubuntu jest to, że stawiają swoją wartość na „punkty reputacji”. Jeśli mieliby celowo napisać kod, który „ukradł” lub „uszkodził” dane, szybko straciliby swoją reputację. Rzeczywiście autorzy mogą cierpieć z powodu „gniewu modów” i być zawieszeni i / lub zabrać 10 000 punktów reputacji.
Edycja 2 - Nie wykonuj wszystkich instrukcji
Przyjrzałem się dokładniej instrukcjom skryptu bash:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
„Bezpieczną” metodą jest uruchomienie tylko pierwszego wiersza:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker
Spowoduje to pobranie skryptów, ale ich nie uruchomi. Następnie użyj nautilus
(menedżera plików), aby sprawdzić zainstalowane katalogi i pliki. Bardzo szybko odkrywasz, że istnieje zbiór skryptów bash napisanych przez grupę studentów we Francji.
Celem skryptów jest kompilacja i testowanie programów C pod kątem nieprawidłowych funkcji i wycieków pamięci.
man
strony zawartych w nim poleceń.