NTFS 데이터 파티션 실행 권한

NTFS 데이터 파티션 실행 권한

셸에서 내 데이터 파티션에 있는 일부 스크립트를 실행하려고 하는데 권한 문제가 있습니다.

bash: /media/storage/ss/script.py: Permission denied

실행하기 전에 스크립트 실행 권한을 부여했습니다.

chmod +x script.py

문제는 내 fstab 파일의 설정과 관련이 있을 수 있습니다. /etc/fstab 설정을 편집해 보았습니다. 현재 그들은 다음과 같습니다:

UUID=F6C09DB5C09D7C95 /media/storage/    ntfs-3g uid=1000,gid=1000,umask=0022,auto,rw 0 0

그러나 다음을 실행할 때 업데이트된 uid 및 gid가 표시되지 않습니다.

편집하다:

~$ stat /media/storage

산출:

  File: /media/storage/
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 804h/2052d  Inode: 5           Links: 1
Access: (0777/drwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)

그렇다면 ntfs 데이터 파티션의 스크립트에 대한 실행 권한을 갖도록 /etc/fstab 파일을 어떻게 변경합니까?

- 편집하다 -

~$ stat /media/storage/ss/script.py

산출:

  File: /media/storage/ss/script.py
  Size: 525         Blocks: 2          IO Block: 4096   regular file
Device: 804h/2052d  Inode: 10208       Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-13 13:17:31.980325600 +0000
Modify: 2019-03-13 13:14:11.690160100 +0000
Change: 2019-03-13 13:14:11.690160100 +0000
 Birth: -

내가 실행할 때 :

~$ head -n 1 /media/storage/ss/script.py

산출:

 #! /usr/bin/env python

내가 실행할 때 :

mount | grep /media/storage

산출:

/dev/sda4 on /media/storage type fuseblk (rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,allow_other,blksize=4096,user)

감사해요!

답변1

/media/storage으로 설치했습니다 noexec. noexec마운트된 파일 시스템에서는 바이너리 실행이 허용되지 않습니다(참고자료 참조 man 8 mount).

귀하 exec는 에 있어야 합니다 fstab. fstab항목에도 해당 defaults옵션이 누락되어 있습니다( 참조 man 5 fstab). 당신은 다음과 같은 것을 원할 수도 있습니다

UUID=F6C09DB5C09D7C95 /media/storage/    ntfs-3g defaults,uid=1000,gid=1000,umask=0022 0 0

man 5 fstab또는 man 8 mount의 의미를 확인하세요 defaults. 적어도 내 시스템에서는 동일합니다

rw,suid,dev,exec,auto,nouser,async

그러나 이는 파일 시스템에 따라 다릅니다.

변경하지 않고 이것을 확인하고 싶다면 시도하십시오 fstab.

mount -o remount,exec /media/storage/ 

먼저 /media/storage/실행 권한으로 다시 설치하고 스크립트를 다시 확인하세요.

답변2

재부팅하면 편집된 /etc/fstab 설정에 따라 데이터 파티션이 마운트된다고 가정합니다. 그러나 이는 사실이 아닌 것 같습니다.

실행 후:

sudo mount -a

문제가 해결되었습니다. 이제 셸에서 데이터 파티션의 스크립트를 실행할 수 있습니다.

stat /media/storage의 결과는 이제 다음과 같습니다.

  File: /media/storage
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 804h/2052d  Inode: 5           Links: 1
Access: (0755/drwxr-xr-x)  Uid: ( 1000/  floris)   Gid: ( 1000/  floris)

적절한 /etc/fstab 구성을 찾아보겠지만 실행 문제가 해결되었습니다.

답변3

디렉터리에 대한 실행 권한을 제외하려고 할 때? 파일 마스크 fmask=0111(fmask는 디렉터리가 아닌 파일에만 적용됨) 및 디렉터리 마스크 dmask=0777(디렉토리에 적용됨)에 대해 별도의 값을 사용해 보세요.

관련 정보