블록 장치 권한이 실제로 무엇을 의미하는지에 대한 정보를 찾을 수 없습니다. 블록 장치에 대한 읽기 권한은 무엇을 의미합니까? 이는 hexdump와 같은 작업을 수행할 수 없다는 뜻인가요? 쓰기 권한은 어떻습니까? 아니면 처형?
또한 장치에 대한 r, w 또는 x 권한 대신 해당 특정 장치만 마운트할 수 있는 sudo 권한을 사용자에게 부여하여 장치에 대한 마운트 권한이 있는 경우 어떻게 될까요? 무슨 일이야?
답변1
간단한 경우(파일처럼 장치에 액세스하는 경우) @Jasen은 다음과 같이 썼습니다.
- 읽기 권한을 사용하면 장치에서 읽을 수 있습니다(덤핑,
fsck
읽기 전용 모드에서 실행 등). - 쓰기 권한을 사용하면 장치에 쓸 수 있습니다(이미지 덮어쓰기 등).
- 실행, 읽기 등 읽기에 필요한
fsck
모든 권한이tune2fs
필요합니다.그리고파일 시스템을 수정합니다. - 실행 권한은 무시됩니다. 장치 파일을 실행하려고 하면 블록 장치에 유효한 실행 코드가 포함되어 있어도 "권한 거부" 메시지가 표시됩니다.
루트 사용자라면 일반적으로 다음을 얻게 됩니다 CAP_DAC_READ_SEARCH
.CAP_DAC_OVERRIDE
능력, 이는 권한 플래그가 완전히 무시됨을 의미합니다.
~을 위한I/W 제어더 복잡한 것은 다음과 같습니다.
ioctl을 수행하려면 다음을 수행할 수 있어야 합니다.열려 있는즉, 최소한 읽기 또는 쓰기 권한이 필요하다는 의미입니다.
그 밖의 모든 것은 운전자에 달려 있습니다. 일부 장치 드라이버는 CAP_SYS_RAWIO
또는 같은 기능 만 확인하고 CAP_SYS_ADMIN
, 일부는 읽기 권한에 "무해한" ioctl을 사용하고 정보 및 기타 ioctl에 대한 읽기+쓰기 권한만 제공합니다. 장치 드라이버가 ioctl 권한 확인을 위해 실행 권한을 사용하는 것이 가능하지만 이를 수행하는 드라이버는 없습니다.
~을 위한산더 쉬움:
시스템 mount
호출은 다음 두 가지만 확인합니다.
- 당신은 할 수 있어야합니다도착장치 파일. 즉, 장치 파일 경로의 모든 디렉터리에는 최소한 실행 권한 비트가 설정되어 있어야 합니다(또는 해당 기능이 있어야 함
CAP_DAC_READ_SEARCH
). - 이 기능이 필요합니다
CAP_SYS_ADMIN
(보통 루트일 때 얻을 수 있음).
장치 파일 자체의 권한 비트는 마운트 시 완전히 무시되며 마운트된 파일 시스템에 대한 액세스에는 어떤 방식으로도 영향을 미치지 않습니다.
사용스도사용 가능한 모든 기능을 사용하여 실행된 프로그램을 루트로 실행합니다. 이는 모든 권한 확인이 무시됨을 의미하며 @Jasen이 주석에 쓴 것처럼 /bin/mount
일반적으로 setuid-root이므로 항상 사용 가능한 모든 기능을 얻게 되므로 권한 비트가 없습니다. mount
대부분의 Linux 배포판 에 미치는 영향및 기타 유닉스 운영 체제.
편집하다:기능에 대한 섹션은 Linux에만 적용됩니다. 다른 Unixoid 운영 체제(예: BSD 또는 OSX)는 루트의 특수 능력을 기능으로 분리하지 않으므로 기능에 관해서는 루트만 있으면 됩니다. 사용 가능한 맨페이지에 따르면 검사는 mount
제가 설명한 Linux 관련 검사와 유사합니다. 어떤 운영 체제도 설치 시 권한 비트를 확인하지 않는 것 같습니다.
답변2
읽기는 읽기를 허용합니다(예: hexdump) 쓰기는 쓰기를 허용합니다(예: 장치에 이미지 쓰기). 이는 "hexedit"와 같은 도구를 사용하여 콘텐츠를 보고 수정할 수 있음을 의미합니다.
x가 무엇을 허용하는지 모르겠습니다(아마도 ioctl을 허용할까요?)
권한은 brwx______
소유자(일반적으로 root
)만이 이러한 작업을 수행할 수 있음을 의미하기 때문입니다.