cp [중복]의 권한을 올바르게 이해합니다.

cp [중복]의 권한을 올바르게 이해합니다.

유닉스에서 cp 명령의 권한 사용법을 이해하려고 합니다.

  1. 파일을 디렉터리에 복사하는 데 필요한 권한
  2. 디렉터리에서 복사하려면 어떤 권한이 필요합니까?

첫 번째 질문에 대해 작업을 수행하려면 디렉터리에 실행 권한이 필요하고 파일의 바이너리를 읽으려면 파일에 읽기 권한이 필요하며 출력 파일에는 쓰기 권한이 필요하다고 가정합니다.

복사 작업을 수행하려면 두 번째 디렉터리 자체에 실행 권한이 필요하고, 파일에서 데이터를 추출하려면 파일에 읽기 권한이 필요합니다.

내 논리에 문제가 있는지 말해 줄 수 있는 사람이 있나요?

답변1

  1. 다음을 수행해야 합니다.

    • 소스 디렉터리: 실행 및 읽기 권한
    • 소스 파일: 읽기 권한.
    • 대상 디렉터리: 실행 및 쓰기 권한.
    • 대상 파일: 복사할 때까지 종료되지 않으므로 권한이 필요하지 않습니다. 또는 파일이 존재하는 경우 쓰기 권한을 부여합니다.
  2. 다음을 수행해야 합니다.

    • 소스 디렉터리: 실행 및 읽기 권한
    • 소스 파일: 읽기 권한.
    • 대상 디렉터리: 실행 및 쓰기 권한.
    • 대상 파일: 복사할 때까지 종료되지 않으므로 권한이 필요하지 않습니다. 또는 파일이 존재하는 경우 쓰기 권한을 부여합니다.

보시다시피, 이 두 질문은 실제로 동일합니다. 확실하게 확인하고 싶다면 몇 분 안에 직접 테스트해 볼 수 있습니다.

답변2

우선 이해를 하셔야 할 것 같아요실행 권한이 없는 디렉터리는 쓸모가 없습니다. 읽기 권한이 있으면 내용을 나열할 수 있습니다. 하지만 실행 권한이 없으면 오류가 발생하며, 얻을 수 있는 것은 그 안에 있는 파일 이름뿐이고 파일에 대한 다른 정보는 없습니다.

다음으로 자세히 알아보세요.디렉터리에 대한 실행 권한을 사용하면 읽기 권한에 관계없이 콘텐츠에 액세스할 수 있습니다.—그러나 디렉터리에 있는 파일의 정확한 이름을 이미 알고 있는 경우에만 해당됩니다. 읽기 권한이 없으면 디렉터리 내용을 나열할 수 없지만 파일 이름을 알고 파일 자체에 대한 올바른 권한이 있는 경우 실행을 통해 디렉터리에 있는 파일을 가져올 수 있습니다.

다음으로 자세히 알아보세요.디렉토리에 대한 쓰기 권한을 사용하면 파일을 추가하고 삭제할 수 있습니다., 파일에 대해 어떤 권한이 있는지에 관계없이. 이는 읽기 권한이 없는 파일을 삭제할 수도 있다는 의미입니다.

유용할 수 있는 한 가지 비유는 전화번호부입니다. 디렉토리는 디렉토리입니다. 폴더가 아닙니다. 이는 전화번호부와 비슷하며 파일 이름과 관련 "전화번호"(inode 번호라고 함)만 알려줍니다. 디렉토리에 대한 읽기 권한을 사용하면 전화번호부를 읽을 수 있습니다. 실행 권한을 사용하면 전화번호부에 있는 번호로 전화를 걸 수 있습니다. 쓰기 권한을 사용하면 전화번호부에 파일 이름과 번호를 기록할 수 있을 뿐만 아니라 기존 파일 이름과 번호를 삭제할 수도 있습니다. 실행 권한(전화 걸기 기능)은 있지만 읽기 권한(전화번호부 읽기 기능)은 없고 파일 이름을 알고 있는 경우에도 전화를 걸 수 있습니다. (이 경우에는 inode 번호가 필요 없고 파일 이름만 필요하므로 비유가 약간 이해됩니다.)

그리고 매우 중요한 것은 이것이 귀하의 전화 통화가 얼마나 성공적이었는지에 대해서는 아무 것도 알려주지 않는다는 점입니다.만들다전화. 이것은 파일 권한에 들어갈 때입니다. 호출할 수 있는 경우, 즉 디렉터리에 대한 실행 권한이 있고(이미 파일 이름을 알고 있거나 디렉터리에 대한 읽기 권한이 있는 경우) 파일 권한이 중요해지기 시작합니다.

파일에 대한 읽기 액세스 권한이 있는 경우 전화 통화한 사람이 귀하의 질문에 답변할 것입니다(파일 내용을 알려주는 정보를 제공합니다). 쓰기 권한이 있는 경우 답변을 변경할 수 있습니다(파일 내용 변경). 실행 권한이 있으면 파일을 프로그램으로 실행할 수 있습니다. 이에 대한 비유는 없습니다.

디렉터리(전화번호부)를 변경하는 것이 아니라 번호가 있는 파일만 변경하므로 디렉터리에 대한 쓰기 권한 없이 파일 내용을 변경할 수 있습니다. 그러나 디렉토리에 대한 쓰기 권한이 없으면 디렉토리에 새 파일을 생성할 수 없습니다. 이를 위해서는 전화번호부에 새 이름과 번호를 기록해야 하기 때문입니다. 마찬가지로, 귀하에게 디렉토리에 대한 쓰기 액세스 권한이 있고 전화상에서 귀하의 질문에 대답하지 않거나 귀하의 지시를 따르지 않는 멍청이가 있는 경우(파일에 대한 쓰기 액세스 권한 없음, 읽기 액세스 권한 없음) 전화에서 해당 사람의 이름을 제거할 수 있습니다. 책.

나는 이 비유를 직접 생각해 냈습니다. 그것은 대부분의 측면에서 매우 정확합니다. 이것이 바로 카탈로그를 "카탈로그"라고 부르는 이유입니다. 디렉터리 권한과 파일 권한 간의 관계를 이해하는 데 도움이 되기를 바랍니다. (디렉토리에는 "고정 비트"라는 중요한 기능을 다루지 않았지만 직접 찾아볼 수 있습니다.)

답변3

  1. 사용자는 어떤 방식으로든 대상 디렉터리에 대해 최소한 쓰기 및 실행 권한이 있어야 합니다(예: 사용자가 소유자인 경우 최소한 권한, 300사용자가 소유자는 아니지만 그룹에 속해 있는 경우 최소한 권한, 030그리고 사용자의 경우 소유자도 아니고 그룹에 속해 있지도 않으며 최소한 권한이 있습니다 003)

  2. 사용자는 어떤 방식으로든 소스 디렉터리에 대해 최소한 읽기 및 실행 권한이 있어야 합니다(예: 사용자가 소유자인 경우 최소한 권한, 500소유자가 아니지만 그룹에 속한 경우 최소한 권한, 050그리고 사용자의 경우 소유자도 아니고 그룹에 속해 있지도 않으며 최소한 권한이 있습니다 005)

쓰기 권한(첫 번째 경우)과 읽기 권한(두 번째 경우)이 필요한 이유는 두 경우 모두 실행 권한이 필요한 이유는 자명합니다. 파일을 읽으려면 해당 디렉터리에 액세스할 수 있어야 하며 이는 사용자에게 대상/소스 디렉터리에 대한 실행 권한이 있는 경우에만 허용됩니다.

관련 정보