Katıldığınız okul senaryoları yayınladığında, endişelerinizi dile getirmenin en iyi yeri eğitmenlerinizle olur.
Bu, kodu satır satır bazında deşifre etmenize yardımcı olabileceğimizi söyledi. Buradaki herkes için tüm kodu analiz etmesi muhtemelen pratik değildir .
Toplamda 5,360 satırlık 40 bash betiğiniz var. Onları bir araya getirdim ve kötüye kullanılabilecek bash / shell komutlarını aradım. Hepsinin normal şekilde kullanıldığı görülüyor :
$ 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 /
Tüm sabit disk bölümünü silmek için herhangi bir komut yoktur .
sudo
Komut dosyasını çalıştırmak için hiçbir gereksinim yoktur .
- Komut dosyası
C
, denetlenen dosyalarda yalnızca yetkili işlevlerin kullanıldığından emin olur .
- Bash / shell koduna hızlıca göz atmanın profesyonelce yazılmış ve takip etmesi kolay olduğunu gösteriyor.
- Birleştirilmiş kabukcheck kullanarak dosyalar sadece üç sözdizimi hatası ortaya koymaktadır.
- Yazar isimleri tanımlanmış ve ana yazarın resmi bile
github
sayfasında.
- Hayatta hiçbir garanti olmamasına rağmen,
42FileChecker
kullanımı güvenli görünüyor.
Endişelenmen gereken insanca okunabilen bash scriptleri değil. Endişe kaynağı olan, okuyamayacağınız ikili nesneler derlenmiştir. Örneğin, "parlak zıplama küresi" olarak adlandırılan bir program ekranınızda böyle bir şeyi boyayabilir ancak arka planda tüm dosyalarınızı siliyor olabilir.
Orijinal cevap
Senaryo yazarına ne yaptığını sormak en iyisidir. Aslında, sorunuzu neredeyse yukarıda göründüğü gibi verbatim olarak gönderebilirsiniz.
Ayrıca yazara da sorun:
- Hangi dosyalar güncellendi?
- Elektrik kesintisi veya program hatası nedeniyle çökme meydana gelirse ne olur?
- Önce bir mini yedekleme yapılabilir mi?
Ve aklınıza gelebilecek diğer tüm güzel sorular.
Düzenleme 1 - Kötü niyetli bir yazar hakkında endişeler.
Yazılımı yalnızca çok sayıda iyi genel değerlendirme ile kullanmalısınız. Alternatif olarak burada güvendiğiniz yazarlar, Serge, Jacob, Colin King, vb. Gibi Ask Ubuntu'da. Ask Ubuntu ve saygın üyeleri gibi saygın diğer siteler de “zararlı olmayan” olarak kabul edilmelidir.
Buradaki “saygın yazarların” Ask Ubuntu’daki avantajı, “itibar puanları” ndaki kendi değerlerine güveniyor olmalarıdır. Eğer kasıtlı olarak "çalınan" veya "zarar görmüş" verilerin kodunu yazarlarsa, saygınlıklarını çabucak kaybederlerdi. Gerçekten de, yazarlar "modların gazabı" ndan acı çekebilir ve askıya alınabilir ve / veya 10.000 itibar puanına sahip olabilirler.
Düzen 2 - Tüm talimatları takip etme
Bash betiğinizin talimatlarını daha derinden inceledim:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
"Safe" yöntemi yalnızca ilk satırı çalıştırmaktır:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker
Bu komut dosyalarını indirir ancak çalıştırmaz. Bir sonraki kullanımda nautilus
(dosya yöneticisi) kurulu dizinleri ve dosyaları incelemek için. Çok çabuk keşfedersiniz, Fransa'da bir grup öğrenci tarafından yazılmış bir bash betiği koleksiyonu vardır.
Komut dosyalarının amacı, yanlış işlevler ve bellek sızıntıları için C programlarını derlemek ve test etmektir.
man
içerdiği komutlardaki sayfaları okuyabilirsiniz .