질문:
/DATA/
저는 NTFS 디스크 파티션( Ubuntu에 설치된) 에 대한 액세스를 공유하는 이중 부팅 PC인 Ubuntu/Windows 10을 가지고 있습니다 .
chmod
이러한 공유 파티션의 파일에 대해 명령을 실행할 때 사용자가 이 명령을 호출하는지 여부에 관계없이 "권한 거부" 오류를 방지해야 합니다. 이는 내가 chmod
더 큰 프로그램의 일부라고 불리고 사용자가 이를 피할 수 없기 때문입니다. 오류가 반환되면 전체 프로그램이 중지됩니다.
내가 시도한 것:
/DATA/
이제 permissions
옵션(맵 파일 활성화)을 사용하여 ID 1001의 루트가 아닌 사용자로 마운트하고 모든 사용자는 ID 1003의 그룹에 속합니다. 이는 다음과 rwx
같이 허용됩니다.
UUID=... /DATA ntfs auto,users,rw,permissions,umask=007,uid=1001,gid=1003 0 0
이 솔루션은 거의 작동합니다. 누구나 r+w를 할 수 있으며 chmod
사용자 1001이 호출할 때 오류가 발생하지 않습니다. 실제로는 아무런 변화가 없지만 문제가 되지는 않습니다. 문제는 다른 사용자가 파일의 소유자로 간주되지 않기 때문에 명령이 chmod
여전히 오류를 유발한다는 것입니다.
/DATA/
마운트된 파티션의 소유권을 모든 사용자 에게 부여하는 방법이 있습니까 ? 아니면 적어도 처음으로 로그인하는 사용자의 경우는요?
아니면 최소한 chmod
명령이 오류를 반환하지 않도록 하시겠습니까?
답변1
대중적인 믿음과는 달리,NTFS는 POSIX 호환 파일 시스템입니다.. 모든 POSIX 파일 이름과 POSIX 권한을 지원합니다§
윈도우에서POSIX 권한은 확장된 속성으로 저장됩니다.내부에$EA_INFORMATION
개울. 현재 ntfs-3g 드라이버가 이를 지원하는지 여부는 모르겠지만 다음을 통해 Windows 권한을 POSIX 권한에 매핑하는 것을 지원합니다.사용자 매핑 파일. 구성 후ntfs-3g는 자동으로 권한 변환을 처리합니다.실행할 때 chmod
.
§그 이유는 1980년대 미국 연방정부가특정 유형의 정부 조달은 POSIX를 준수합니다., 따라서 MS는 Windows에 POSIX 하위 시스템을 포함해야 합니다. 따라서 NTFS는 파일 이름의 특수 문자, 하드 링크, 대소문자 구분, 권한 등과 같은 POSIX 기능도 지원해야 합니다.Microsoft POSIX 하위 시스템그 다음에SFU(UNIX용 Windows 서비스),UNIX 기반 애플리케이션용 하위 시스템마침내Linux용 Windows 하위 시스템.
답변2
chmod를 호출하는 프로그램에 하드코드된 경로가 있습니까 /bin/chmod
?
chmod
그렇지 않은 경우 PATH의 첫 번째 프로그램 만 실행하는 경우 "chmod"라는 심볼릭 링크만 포함하는 디렉터리를 만들어 보십시오 /bin/true
.
예를 들어(루트로서):
# mkdir /usr/local/dummy
# ln -s /bin/true /usr/local/dummy/chmod
PATH="/usr/local/dummy:$PATH"
그런 다음 프로그램을 실행하기 전에 이 디렉터리( )를 포함하도록 PATH를 설정합니다. 래퍼 스크립트를 생성하여 PATH를 설정한 다음 프로그램을 실행할 수 있습니다.
이에 대한 심볼릭 링크를 생성할 수도 있습니다 chown
.
그건 그렇고, 이것은 분명하지만 이 PATH 설정이 기본값이 되는 것을 원하지 않습니다. 문제를 유발하는 프로그램을 실행할 때만 필요합니다.