다음 (v)FAT(Linux)에 대해 Mountoption이 수행하는 작업을 알아내려고 합니다.
allow_utime=### -- 이 옵션은 mtime/atime의 권한 확인을 제어합니다.
20 - If current process is in group of file's group ID, you can change timestamp. 2 - Other users can change timestamp. The default is set from `dmask' option. (If the directory is writable, utime(2) is also allowed. I.e. ~dmask & 022) Normally utime(2) checks current process is owner of the file, or it has CAP_FOWNER capability. But FAT filesystem doesn't have uid/gid on disk, so normal check is too unflexible. With this option you can relax it.
[원천]
질문:(위) 이것은 무엇을 의미합니까?
찾아보려고 하다가 C 코드로 끝났는데 별로 도움이 되지 않았기 때문에 이 코드도 man 2 utime
(언급한 대로) 현재로서는 나에게 별로 도움이 되지 않습니다. 좋아요소스 사용…
에서 utime
:utime() 시스템 호출은 filename으로 지정된 inode의 액세스 및 수정 시간을 다음으로 변경합니다.행동 시간및 modtime
시간 필드.
나는 그것을 다음과 같이 읽었습니다: 변경 타임스탬프를 활성화합니다. 이 마운트 옵션을 사용하는 방법에 대한 실제적인 예를 제시할 수 있는 귀하에게 큰 감사를 드립니다( allow_utim
).
답변1
일반 Unix 파일 속성을 지원하는 파일 시스템에서 각 파일에는 소유자로 지정된 사용자가 있습니다. 파일의 소유자만이 타임스탬프를 변경할 수 있습니다 utime
. 다른 사용자는 쓰기 권한이 있더라도 타임스탬프를 변경할 수 없습니다.
FAT 파일 시스템은 소유자와 같은 것을 기록하지 않습니다. FAT 파일 시스템 드라이버는 특정 사용자(예: 설치를 수행한 사용자 또는 매개변수로 지정된 사용자)가 각 파일의 소유자인 것처럼 가장합니다 uid
. 일반 규칙을 사용하면 해당 사용자만 타임스탬프를 변경할 수 있습니다. 파일에는 매개변수에 따라 결정되는 해당 파일이 속한 그룹도 있습니다 gid
.
FAT 파일 시스템은 Unix 파일 권한을 기록하지 않으므로 드라이버가 이를 보상합니다. umask
, fmask
및 매개변수를 기반으로 권한을 할당하므로 dmask
모든 디렉터리와 모든 일반 파일은 동일한 권한을 갖습니다.
소유자가 아닌 사용자가 파일 시스템에 대한 쓰기 액세스 권한을 갖고 있으면 일반 파일 및 디렉터리뿐만 아니라 파일 메타데이터도 수정할 수 있다는 것이 합리적입니다. FAT 파일 시스템에서 중요한 주요 메타데이터는 파일의 타임스탬프입니다. 일반적으로 소유 사용자만 타임스탬프를 수정할 수 있습니다. 마운트 옵션을 전달하면 allow_utime
다른 사용자가 타임스탬프를 변경하도록 허용할 수도 있습니다. 예를 들어, 그룹이 foo
파일 시스템의 모든 항목을 수정할 수 있도록 허용하고 다른 그룹은 읽을 수는 있지만 쓸 수는 없도록 하려면 인수를 전달할 수 있습니다.
gid=foo,umask=002,allow_utime=20
allow_utime
(실제로는 umask의 기본값을 기반으로 합니다.)