Vì trường bạn đang theo học đã xuất bản các kịch bản, nơi tốt nhất để nói lên mối quan tâm của bạn là với các giảng viên của bạn.
Điều đó nói rằng chúng tôi có thể giúp bạn giải mã mã theo từng dòng. Có lẽ không thực tế cho bất cứ ai ở đây để phân tích tất cả các mã.
Bạn thực sự có 40 tập lệnh bash với tổng số 5.360 dòng. Tôi đã kết hợp chúng lại với nhau và tìm kiếm các lệnh bash / shell có thể bị lạm dụng. Tất cả chúng dường như được sử dụng bình thường :
$ 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
$
- Không có
rm -rf /
lệnh để xóa toàn bộ phân vùng đĩa cứng.
- Không có yêu cầu
sudo
được sử dụng để chạy tập lệnh.
- Kịch bản thực sự đảm bảo chỉ các
C
chức năng được ủy quyền được sử dụng trong các tệp được kiểm tra.
- Một trình duyệt nhanh của mã bash / shell cho thấy nó được viết một cách chuyên nghiệp và dễ làm theo.
- Sử dụng shellcheck trên sáp nhập bao gồm các tệp chỉ tiết lộ ba lỗi cú pháp.
- Tên tác giả được xác định và tác giả chính thậm chí có hình ảnh của mình trên
github
trang của mình .
- Mặc dù không có đảm bảo trong cuộc sống,
42FileChecker
xuất hiện an toàn để sử dụng.
Đó không phải là kịch bản bash có thể đọc được của con người mà bạn cần phải lo lắng rất nhiều. Nó được biên dịch các đối tượng nhị phân mà bạn không thể đọc là nguyên nhân gây lo ngại. Ví dụ, một chương trình có tên là "Shiny-bouncy-sphere" có thể vẽ một cái gì đó giống như vậy trên màn hình của bạn nhưng trong nền nó có thể xóa tất cả các tệp của bạn.
Câu trả lời gốc
Tốt nhất là hỏi tác giả của kịch bản những gì nó làm. Thật vậy, bạn gần như có thể gửi nguyên văn câu hỏi của bạn như nó xuất hiện ở trên.
Cũng hỏi tác giả:
- Tập tin nào được cập nhật?
- Điều gì xảy ra nếu sự cố do mất điện hoặc lỗi chương trình?
- Một bản sao lưu nhỏ có thể được thực hiện đầu tiên?
Và bất kỳ câu hỏi hay khác mà bạn có thể nghĩ ra.
Chỉnh sửa 1 - Lo lắng về một tác giả độc hại.
Bạn chỉ nên sử dụng phần mềm có nhiều đánh giá công khai tốt. Các tác giả thay thế mà bạn tin tưởng ở đây trong Ask Ubuntu như Serge, Jacob, Colin King, v.v. Các trang web được tôn trọng khác như Ask Ubuntu và các thành viên đáng kính của họ cũng nên được coi là "không độc hại".
Ưu điểm của "các tác giả đáng kính" ở đây trong Ask Ubuntu là họ đặt giá trị bản thân vào "điểm danh tiếng". Nếu họ cố tình viết mã "đánh cắp" hoặc "làm hỏng" dữ liệu, họ sẽ nhanh chóng đánh mất danh tiếng của mình. Thật vậy, các tác giả có thể phải chịu "cơn thịnh nộ của mod" và bị đình chỉ và / hoặc bị mất 10.000 điểm danh tiếng.
Chỉnh sửa 2 - Không làm theo tất cả các hướng dẫn
Tôi đã xem xét sâu hơn về hướng dẫn tập lệnh bash của bạn:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker &&
cd ~/42FileChecker &&
bash ./42FileChecker.sh
Phương pháp "an toàn" là chỉ chạy dòng đầu tiên:
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker
Điều này tải xuống các kịch bản nhưng không chạy chúng. Tiếp theo sử dụng nautilus
(trình quản lý tệp) để kiểm tra các thư mục và tệp được cài đặt. Rất nhanh bạn phát hiện ra có một tập hợp các kịch bản bash được viết bởi một nhóm sinh viên ở Pháp.
Mục đích của các tập lệnh là biên dịch và kiểm tra các chương trình C cho các chức năng và rò rỉ bộ nhớ không đúng.
man
trang trên các lệnh có trong nó.