파일 소유자 권한을 갖거나 제한하는 이유는 무엇입니까?

파일 소유자 권한을 갖거나 제한하는 이유는 무엇입니까?

에서 논의한 바와 같이UNIX 권한 및 파일 유형 이해, 각 파일에는 다음과 같은 권한 설정("파일 모드")이 있습니다.

  • 소유자/사용자(" u"),
  • 소유자 그룹(" g") 및
  • 그 외 모든 사람(" o").

내가 이해한 바에 따르면 파일 소유자는 항상 사용 가능 chmod하며 소유자 아래에서 실행되는 모든 응용 프로그램도 마찬가지입니다.

소유자가 언제든지 권한을 변경할 수 있다면 소유자 자신의 권한을 제한하는 이유는 무엇입니까?

내가 볼 수 있는 유일한 용도는 보호를 위한 것입니다.우연한의도적인 경우 제거 또는 실행을 쉽게 극복할 수 있습니다.


여기에 관련 질문이 있습니다."소유자" 권한이 존재하는 이유는 무엇입니까? 그룹 권한이 충분하지 않습니까?소유자의 권한을 개별 사용자(소유자)의 가상 그룹으로 대체할 수 없는 이유를 설명합니다. 대조적으로 여기서는 소유자가 권한을 갖는 목적에 대해 묻고 있습니다.원칙적으로u, 별도의 " " 옥텟 또는 별도의 그룹 + ACL을 통해 구현되는지 여부 .

답변1

소유자의 권한을 줄이는 데는 여러 가지 이유가 있습니다(그룹의 권한보다 낮은 경우는 드물지만).

  • 가장 일반적인 것은 실행되지 않을 파일에 대한 실행 권한이 없는 것입니다. 많은 경우 셸 스크립트는 다른 스크립트(예: 귀하의 스크립트 .profile)에서 시작되도록 의도된 조각이므로 최상위 프로세스로는 적합하지 않습니다. 명령 완성은 실행 파일만 제공하므로 올바른 권한은 대화형 셸에 도움이 됩니다.

  • 실수로 파일을 덮어쓰는 것은 큰 위험입니다. 명령을 잘못 입력하면 이런 일이 발생할 수 있으며 GUI 프로그램에서는 이런 일이 발생할 가능성이 훨씬 더 높습니다. 카메라에서 파일을 복사할 때 가장 먼저 하는 일은 해당 파일(및 파일에 포함된 디렉터리)을 쓰기 불가능하게 만드는 것입니다. 이렇게 하면 내가 편집한 내용은 복사본이 되어야 하고 원본 파일을 덮어쓰지 않아야 합니다.

  • 때로는 파일을 읽을 수 없는 것이 중요할 때도 있습니다. Emacs를 업그레이드하고 ~/lisp디렉토리의 로컬 패키지에 문제가 있는 경우 chmod -r성공적으로 시작할 수 있을 때까지 선택적으로 비활성화합니다( 를 사용하여). 그러면 호환성 문제를 해결하는 동안 한 번만 읽을 수 있게 만들 수 있습니다.

사용자에 대한 올바른 권한 집합 표현의도성. 사용자는 권한을 변경할 수 있지만 선의로 작동하는 프로그램은 그렇게 하지 않습니다(적어도 먼저 묻지 않고는). 권한을 제한으로 보는 대신사용자, 사용자 제한으로 처리프로세스주어진 시점에 할 수 있는 일.

답변2

여기서 다소 중요한 점을 놓치고 있는 것 같습니다. 올바르게 작동하는 프로세스는 액세스 권한이 있는 파일에 대한 권한을 수정하지 않습니다. ls사용자가 가리키는 디렉토리를 무작위로 읽을 수 있게 만들지 않고 디렉토리 내용만 나열합니다. 잘못된 경우 ssh해당 권한이나 포함된 파일을 "수정"하지 않고 실행을 거부할 뿐입니다. ~/.ssh일반적으로 사용하는 모든 프로그램이 이런 식으로 동작할 것이라고 가정하는 것이 안전합니다.

이는 특정 파일에 대해 소유자가 설정한 권한이 다음과 같음을 의미합니다.대개다행스럽게도(Linux에서와 같이 루트이거나 DAC 검사를 단락시킬 수 있는 경우를 제외하고는 CAP_DAC_OVERRIDE정상적인 프로그램은 권한 확인을 위해 커널만 신뢰하기 때문에) 우발적인 수정이나 실행으로부터 특정 파일을 보호하는 것이 유용한 경우가 많습니다. 이 문제는 비교적 쉽게 극복할 수 있지만 사용자는그것을 극복하기 위해서는 반드시 뭔가가 이루어져야 한다. IOW, 이는 "예, 저는 이것을 하고 싶습니다"라고 말하는 또 다른 확인 단계 역할을 합니다.

그러나 보다 일반적으로 소유자 권한은 일반적으로 존중되므로 소유자 권한을 사용하여 많은 유용한 작업을 수행할 수 있습니다.

  • 파일이나 디렉터리를 읽기 전용으로 만듭니다(Windows의 "읽기 전용" 속성 설정과 동일).
  • 파일을 실행할 수 없는 것으로 표시하거나 .desktopXDG 파일을 신뢰할 수 없는 것으로 표시합니다.
  • (디렉터리를 읽을 수 없는 것으로 표시하여) 디렉터리나 파일의 내용을 기능적으로 "숨깁니다". 이것은 실제로매우특정 애플리케이션의 플러그인 문제를 디버깅할 때 유용합니다. 플러그인별 디렉터리나 파일을 사용하는 대부분의 애플리케이션은 해당 파일을 읽을 수 없으면 플러그인이 존재하지 않는 것처럼 동작하기 때문입니다.

답변3

대부분의 경우 귀하가 제안한 대로 실수로 인한 삭제/수정을 방지하기 위해 이 작업을 수행합니다. 그러나 때로는 특정 트리의 모든 파일/디렉터리에 대해 대량 수정을 수행할 수 있도록 이 작업을 수행합니다.와는 별개로내가 "보호한" 사람들.

답변4

제한된 소유자 권한은 사용자가 권한을 변경하는 도구에 액세스할 수 없는 제한된 환경에서 유용합니다.

일반적인 예는 익명 FTP 서버입니다. 소유자가 쓰기 권한은 있지만 읽기 권한은 없는 "dropbox" 디렉터리를 만들 수 있습니다. 이렇게 하면 익명 사용자가 파일을 업로드할 수 있지만 다른 사용자가 업로드한 파일은 나열되지 않습니다. 동시에 디렉터리는 디렉터리가 속한 그룹에서 읽을 수 있으므로 디렉터리에서 검색이 허용된 사용자를 해당 그룹에 넣습니다. FTP 서버가 chmod명령을 제공하지 않으면 익명 사용자는 명령을 무시하고 자신에게 디렉터리 나열 권한을 부여할 수 없습니다.

관련 정보