읽기 권한이없는 쓰기 권한 없습니까? 그게 어떻게 가능해? 다음

사용자가 파일에 대한 쓰기 액세스 권한을 가지고 있고 읽을 수 없습니까? 그게 어떻게 가능해?

다음 명령을 시도했습니다.

debianbox@debian:~/posix/io$ touch filetest
debianbox@debian:~/posix/io$ ls -l filetest
-rw-r--r-- 1 debianbox debianbox 0 14 oct.  03:10 filetest

debianbox@debian:~/posix/io$ echo "Hello World" > filetest
debianbox@debian:~/posix/io$ cat filetest
Hello World

debianbox@debian:~/posix/io$ chmod u-r filetest
debianbox@debian:~/posix/io$ cat filetest
cat: filetest: Permission forbidden

debianbox@debian:~/posix/io$

여기에서 볼 수 있듯이이 파일에 대한 쓰기 권한은 있지만 읽기 권한은 없습니다. 이것이 어떻게 가능합니까? 이것이 버그로 간주됩니까? 그렇지 않은 경우 어떤 상황에서 이것이 유용합니까?



답변

버그가 아니며 TM 기능입니다 (유일한 보편적 유닉스 접근 방식의 결과).

그렇다에서 보관-처럼 (BillThor에 의해 설명 된대로) 디렉토리의 경우 행동, 쓰기 전용 액세스 일부 특수 (사이비)에서 파일을 필요 /proc하고 /sys. 이러한 파일은 일부 드라이버 또는 커널 속성을 설정하거나 시스템 작업을 트리거하는 데 사용됩니다. 단방향 신호에만 사용되므로 읽을 수 없습니다. 일부 텍스트 / 데이터 만 에코 할 수 있습니다. 이러한 파일을 찾으려면

find /proc/[^0-9]* /sys -perm /222 ! -perm /444

이러한 파일은 고급 시스템 구성 (잠재적으로 위험 할 수 있음)에 사용되므로 해당 파일에 대한 root쓰기 권한 만 가지고 있습니다 (대부분의 경우).


답변

읽기 액세스없이 쓰기 액세스를 허용하는 주된 이유는 커널 내부와 사용자 프로그램 모두에서 권한 관리를 단순화하기 때문입니다. 읽기 권한과 쓰기 권한의 두 가지 권한이 있으며 독립적으로 관리됩니다. 문서화 된 동작이 실제 동작과 일치하고 다른 동작을 요구할 이유가 없기 때문에 이것은 버그가 아닙니다.

읽기 권한이없는 쓰기 권한이있는 것은 일반 파일에는 적합하지 않습니다. 다양한 특수 파일에 적합합니다.

  • 일부 시스템은 추가 전용 파일을 허용합니다. 예를 들어, 로그 파일에 유용합니다. 많은 사용자가 로그 항목을 만들 수는 있지만 기존 항목을 지우거나 덮어 쓰거나 (쓰기 권한은 있지만 추가 전용 특성), 다른 사용자는 읽을 수 없도록하는 것이 좋습니다 (따라서 : 아니요). 읽기 권한).
  • 명명 된 파이프에서 프로그램을 읽지 않고 쓸 수 있습니다.
  • 일부 장치는 쓰기 전용입니다. 예를 들어, 라우드 스피커에 연결되었지만 마이크가없는 사운드 출력 장치에는 쓰기 권한이 있지만 읽기 권한이 없어야합니다.
  • 파일을 읽거나 쓰는 것이 스토리지에 데이터를 검색하거나 추가하는 대신 즉시 영향을주는 다양한 특수 파일 시스템이 있습니다. 예를 들어, 리눅스에서, 거기에서 여러 파일은 /proc/sys그 사용자 공간 프로그램이 특정 파일에 작성하여 커널에 명령을 보낼 수 있습니다. 해당 명령이 피드백을 제공하지 않으면 특수 파일은 쓰기 전용이됩니다.

답변

아니 이것은 버그가 아닙니다. 그러나 파일에 일반적으로 적용되는 것을 보지 못했습니다.

가장 자주 dropbox 디렉토리에 대한 쓰기 권한 만 보았습니다. 사용자는 디렉토리에 파일을 추가 할 수 있지만 어떤 파일이 있는지 볼 수는 없습니다.

일반 텍스트 파일의 경우 쓰기 전용 액세스는 보관 용 액세스 유형에 적합합니다.

쓰기 전용 액세스 권한을 설정하는 것은별로 유용하지 않지만 권한 코드를 복잡하게 만들 수는 없습니다.

편집 : Dropbox 파일은 유용하지 않습니다. 그러나 루트 항목이 아닌 로그에는 로그 항목을 덮어 쓰기가 더 어려워 지므로 유용 할 수 있습니다. 파일을 읽을 수 있으면 대체 로그 항목을 작성할 위치를 훨씬 쉽게 식별 할 수 있습니다. 그러나 나는 로그를 이렇게 설정 한 사람을 모른다. 로그 항목의 로컬 수정을 방지하기 위해 원격 로깅을 사용하는 것이 일반적입니다.

권한 조합이 허용되는 규칙을 설정하면 예기치 않은 유용한 권한이 차단 될 수 있습니다. 많은 조합은 소유자 수준보다 그룹 또는 세계 수준에서 더 의미가 있습니다. 소유자의 액세스를 방지하려는 시도는 쉽게 무시할 수 있습니다. 그러나, 그들은 냉정한 초를 강제하는 데 유용 할 수 있습니다.


답변