사용자가 파일에 대한 쓰기 액세스 권한을 갖고 있지만 읽을 수는 없는 것이 가능합니까? 어떻게 이럴 수있어?
다음 명령을 시도했습니다.
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$
여기에서 볼 수 있듯이 파일에 대한 쓰기 권한은 있지만 읽기 권한은 없습니다. 어떻게 이럴 수있어? 이것은 버그로 간주됩니까? 그렇지 않다면 어떤 상황에서 이것이 유용할까요?
답변1
쓰기 액세스는 허용하지만 읽기 액세스는 허용하지 않는 주된 이유는 커널과 사용자 프로그램 모두에서 권한 관리를 단순화하기 때문입니다. 권한에는 두 가지 유형이 있습니다. 하나는 읽기이고 다른 하나는 쓰기이며 독립적으로 관리됩니다. 문서화된 동작이 실제 동작과 일치하고 다른 동작을 요구할 타당한 이유가 없기 때문에 이것은 버그가 아닙니다.
일반 파일의 경우 쓰기 권한은 있지만 읽기 권한은 없는 것은 의미가 없습니다. 모든 종류의 특수 파일에 적합합니다.
- 일부 시스템에서는 파일 첨부만 허용합니다. 예를 들어 이는 로그 파일에 유용합니다. 많은 사용자가 로그 항목을 생성하도록 허용하지만 기존 항목을 삭제하거나 덮어쓰는 것을 허용하지 않거나(즉, 쓰기 권한은 있지만 속성 추가만 허용), 다른 사람의 항목을 읽을 수는 없도록(따라서 허용되지 않음) 읽기 권한을 허용하는 것이 합리적입니다. ).
- 프로그램은 명명된 파이프에 쓸 수 있지만 읽을 수는 없습니다.
- 일부 장치는 쓰기 전용입니다. 예를 들어 스피커에 연결되어 있지만 마이크가 없는 사운드 출력 장치는 쓰기 액세스 권한은 있어야 하지만 읽기 액세스 권한은 없어야 합니다.
- 스토리지에 데이터를 검색하거나 추가하는 대신 파일 읽기 또는 쓰기가 즉시 발생하는 다양한 특수 파일 시스템이 있습니다. 예를 들어, Linux에는 사용자 공간 프로그램이 특정 파일에 기록하여 커널에 명령을 보낼 수 있도록 하는
/proc
다양한 파일이 있습니다 ./sys
명령이 피드백을 제공하지 않으면 특수 파일은 쓰기 전용이 됩니다.
답변2
이것은 버그가 아니며 기능입니다.TM (또한 이는 일반적인 UNIX 권한 접근 방식의 결과일 뿐입니다).
BillThor의 설명에 따라 디렉터리의 보관용 상자와 유사한 동작 외에도 및 아래의 일부 특수(의사) 파일에 대한 쓰기 전용 액세스가 /proc
필요합니다 /sys
. 이러한 파일은 특정 드라이버 또는 커널 속성을 설정하거나 시스템 작업을 트리거하는 데 사용됩니다. 단방향 신호에만 사용되기 때문에 읽을 수 없습니다. 일부 텍스트/데이터만 다시 에코할 수 있습니다. 그러한 파일을 찾으려면 다음을 사용할 수 있습니다.
find /proc/[^0-9]* /sys -perm /222 ! -perm /444
이러한 파일은 고급 시스템 구성(잠재적으로 위험함)에 사용되므로 root
해당 파일에 대한 쓰기 액세스만 가능합니다(대부분의 경우).
답변3
아니요, 이것은 버그가 아닙니다. 그러나 일반적으로 파일에는 적용되지 않는다고 생각합니다.
제가 가장 자주 보는 것은 dropbox 디렉토리에 대한 쓰기 전용 액세스입니다. 사용자는 디렉터리에 파일을 추가할 수 있지만 어떤 파일이 존재하는지 확인할 수 없습니다.
일반 텍스트 파일의 경우 쓰기 전용 액세스가 드롭박스 형식 액세스에 적합합니다.
자신에게 쓰기 전용 액세스 권한을 설정하는 것은 그다지 유용하지 않지만 이를 허용하지 않으면 권한 코드가 복잡해집니다.
편집: Dropbox 파일은 유용하지 않을 것 같습니다. 그러나 로그 항목을 덮어쓰기가 더 어려워지므로 루트가 아닌 로그에는 유용할 수 있습니다. 파일을 읽을 수 있으면 대체 로그 항목을 쓸 위치를 결정하는 것이 더 쉬울 것입니다. 그러나 나는 이와 같은 로그를 설정하는 사람을 모릅니다. 원격 로깅은 로그 항목의 로컬 수정을 방지하기 위해 자주 사용됩니다.
권한 조합을 허용하는 규칙을 설정하면 예상치 못한 유용한 권한이 차단될 수 있습니다. 많은 조합은 소유자 수준보다 그룹이나 세계 수준에서 더 의미가 있습니다. 소유자 액세스를 차단하려는 시도는 쉽게 무시할 수 있습니다. 그러나 두 번째 사람을 강제로 깨우는데 유용합니다.