[unix] 파일 이름의 줄 바꿈

나는 방어적인 1 쉘 스크립팅이 신중하고 장기적으로 더 지속 가능 하다는 전제를 이해하고 동의합니다 .

여기에서 텍스트 처리 질문에 대한 많은 답변은 정통 파일 이름에 대한 답변 우발성을 바탕으로이 원칙을 따릅니다. 공백, 대시 및 줄 바꿈이 포함될 수 있습니다.

파일 이름에 줄 바꿈이 얼마나 널리 퍼져 있습니까? 구체적으로 :

  • 어떤 응용 프로그램도 기본적으로 줄 바꿈이 포함 된 파일 이름을 작성합니까?
  • 그러한 파일 이름을 만드는 것이 바람직한 상황이 있습니까?
  • 아니면 주로 사용자 오류의 인스턴스입니까?

[1] 가장 광범위한 시나리오 및 비상 사태에 대한 계획 및 관리 의미 …

이 질문에 대한 (단순한) 의견에서 영감을 얻은 질문 .



답변

필자는 파일 이름을 조작하는 응용 프로그램을 테스트하기 위해 의도적으로 생성 된 것 이외의 개행 문자가있는 파일 이름을 본 적이 없습니다. 다음과 같은 이유로 줄 바꿈이 포함 된 파일 이름이 나타날 수 있습니다.

  • 일부 버그 또는 사용자 오류 (예 : 잘못된 복사 붙여 넣기)로 인해 의도하지 않은 파일 이름이 발생했습니다.
  • 일부 파일 시스템 손상은 파일 이름에 영향을 미쳤습니다.
  • 누군가가 보안 허점을 악용하기 위해 의도적으로 “이상한”파일 이름을 만들었습니다. 여기서 응용 프로그램은 전달 된 파일 이름보다 파일 이름을 더 신뢰합니다.

POSIX는 파일 이름 을“파일 이름을 지정하는 데 사용되는 1에서 {NAME_MAX} 바이트로 구성된 이름으로 정의 합니다. 이름을 구성하는 문자는 슬래시 문자와 널 바이트를 제외한 모든 문자 값 세트에서 선택할 수 있습니다. 파일 이름은 점과 점 점 특별한 의미를 가지고있다. 유일한 (이상한 “파일 이름을”모든 파일 시스템이 받아 들일 것이라는 보장이 없다 ” 보장 된 문자는 ASCII 문자, 숫자, 마침표, 하이픈 및 밑줄 , 즉 A-Z, a-z, 0-9._-하이픈은, 첫 번째 위치에서 금지됨), 현대 유니스의 대부분의 기본 파일 시스템은 그렇지 않습니다.


답변

논문을 쓸 때 종종 여러 출처에서 PDF 파일의 서지를 수집합니다. 이들 모두가 올바른 메타 데이터를 포함하고있는 것은 아니며, 때때로 PDF 뷰어에서 파일 이름으로 논문 제목을 복사하여 붙여 넣기합니다. 이로 인해 파일 이름에 줄 바꿈이 종종 발생하지만 사용한 도구에는 문제가 없었습니다.

IMHO 표준으로 코딩하는 것에 대해 ‘방어 적’은 없습니다. 파일 이름에 줄 바꿈이 허용된다는 표준입니다. 스크립트가 표준에서 허용 된 모든 파일 이름을 처리하지 않으면 스크립트가 손상된 것입니다.


답변

NORMAL 사용자가 파일 이름에 줄 바꿈을 사용하는 것을 본 적이 없습니다. 주요 목적은 (1) 공격자가 시스템을 쉽게 파괴 할 수있게하고 (2) 안전한 프로그램을 작성하기 어렵게 만드는 것입니다. 따라서 공격에 저항하는 프로그램을 원할 경우 준비해야합니다.

“쉘의 파일 이름 및 경로 이름 : 올바르게 수행하는 방법 은이를 올바르게 처리하는 방법을 보여줍니다.


답변