내가 소유한 NTFS 파티션에 있는 스크립트를 실행하려고 합니다.
나는 마운트 지점을 소유하고 있습니다 ~/Migration
.
ls -l
마운트 지점이 포함된 디렉터리를 보여주세요.
drwxrwxrwx 1 technomage technomage 4096 Sep 30 18:04 Migration
비록 내가 전체 구조(마운트 지점에서 시작)의 소유자이고 rwx 권한을 갖고 있음에도 불구하고 이 스크립트를 실행할 수 없습니다 startup.sh
. Bash에서는 다음과 같은 오류가 발생합니다.
bash: ./startup.sh: Permission denied
스크립트가 포함된 디렉터리에는 ls-la
다음이 표시됩니다.
drwxrwxrwx 1 technomage technomage 4.0K Oct 1 12:51 .
drwxrwxrwx 1 technomage technomage 4.0K Oct 1 12:51 ..
-rwxrwxrwx 1 technomage technomage 1.9K Oct 1 12:51 startup.sh
아직 실행할 수 없습니다 startup.sh
.
Linux의 NTFS 파티션에 대한 권한은 약간 까다로울 수 있다는 것을 알고 있으므로 들어가서 /etc/fstab
권한, 소유자 및 마스크를 최대한 설정했습니다.
UUID=6F537BB96F6E0CBC /home/technomage/Migration ntfs-3g rw,exec,user,umask=000,uid=1000,gid=1000 0 0
sudo umount Migration
그런 다음 구성을 사용하여 fstab 파일을 다시 로드 했습니다 sudo mount -a
. 재설치에 성공했습니다.
그런데 루트 권한이 있어도 여전히 스크립트를 실행할 수 없습니다.
명령은 mount | grep sda6
다음을 보여줍니다. 이는 파티션이 올바르게 마운트되지 않았거나 제가 제공한 구성을 사용하고 있지 않음을 알려줍니다.
/dev/sda6 on /home/technomage/Migration type fuseblk (rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,user)
저는 Debian Jessie를 실행하고 있으며 심지어 최신 버전의 ntfs-3g
드라이버를 얻기 위해 Stretch의 저장소에 가서 그것이 일종의 버그라고 생각했습니다. 주사위가 아닙니다.
무엇이 잘못되었는지 잘 모르겠습니다. NTFS 파티션을 마운트하는 방식을 어떻게 잘못 구성했는지 알려주십시오. 전체 액세스 권한이 필요합니다.
답변1
둘 중 하나를 선택할 수 있지만 /etc/fstab
순서가 중요합니다 exec
.뒤쪽에 user
(무엇보다도) user
부과 때문입니다 . noexec
따라서 /etc/fstab
항목은 다음과 같아야 합니다.
UUID=6F537BB96F6E0CBC /home/technomage/Migration ntfs-3g rw,umask=000,uid=1000,gid=1000,user,exec 0 0
로 변경한 후 /etc/fstab
드라이브를 마운트 해제하고 sudo mount -a
다시 시도하십시오.
또한 합계가 올바른지 확인하십시오 uid
(사용자로 로그인한 동안 명령을 실행하여 gid
).id