사용자 입력을 받아들이고 여러 작업을 수행하는 스크립트가 있습니다. 내가 걱정하는 것 중 하나는 파일 이름을 가져와 파일을 삭제한다는 것입니다. 예를 들어 rm -rf $arg1입니다.
기술적으로 사용자는 이 매개변수에 /를 입력하고 콘텐츠를 삭제할 수 있습니다. 실제로 rm 명령을 실행하기 전에 모든 기호가 이스케이프되도록 하려면 어떻게 해야 할까요? (모든 것이 하나의 디렉터리에서 발생하므로 내 요구 사항은 문자와 숫자뿐입니다.)
나는 하나를 생각해 냈다echo "$name" | grep -v symbols > $newname
이것이 좋은 접근 방식인지 잘 모르겠습니다. 이에 대해 어떤 제안이 있습니까?
답변1
grep을 사용하여 확인합니다(
/
sum*
).if echo "$user_cmd" | grep '*\|\/'; then ... fi
하지만... 권한 문제로 생각해야 합니다. 잠금 권한이 있는 그룹에 스크립트를 사용하는 사용자를 할당합니다. 파일 확장자( )
.
에 마침표( )를 사용할 수 있으므로 단순히 문자를 제거하는 것보다 낫습니다..JPG
../../