Fstab exec noexec 매개변수는 Samba 공유에 어떤 영향을 미칩니까?

Fstab exec noexec 매개변수는 Samba 공유에 어떤 영향을 미칩니까?

여러 개의 데이터 드라이브를 마운트하고 noexec매개변수를 사용했습니다. 데이터일 뿐이니까 필요 없을 거라고 생각했어요 exec. 이제 몇 가지 권한 문제가 발생했으며 이를 원인으로 배제하고 옵션을 더 잘 이해하고 싶습니다.

exec매개변수는 /etc/fstab마운트된 시스템의 모든 디렉터리와 파일에 실행 권한을 부여하는 것과 동일한 효과를 가집 니까 ?

.exe삼바 공유 또는 기타 네트워크 프로토콜을 통해 액세스되는 Windows 실행 파일( )에 어떤 영향을 줍니까 ?

aufs마운트된 드라이브는 또는 으로 풀링되며 mhddfs의 중앙 마운트 지점을 통해 액세스됩니다 /mnt/virtual. 그런 다음 네트워크(지금은 삼바)를 통해 액세스됩니다. 일부 로컬 액세스도 있을 것입니다( xbmc). 파일에 대한 직접 링크를 제공해야 할지 아니면 삼바 링크를 제공해야 할지 잘 모르겠습니다.

이 경우 가장 좋은 방법은 무엇입니까?

답변1

매뉴얼 페이지를 살펴보면서

mount.cifs나열된 공유를 마운트하는 데 사용되는 매뉴얼 페이지 /etc/fstab를 보면 noexec.

발췌 - mount.cifs 매뉴얼 페이지

이 명령은 noeexec 및 nosuid 마운트 플래그가 활성화된 setuid가 설치되어 있지 않는 한 루트에서만 사용할 수 있습니다. setuid 프로그램으로 설치되면 프로그램은 사용자 마운트에 대해 마운트 프로그램에서 정한 규칙을 따르며, 사용자가 마운트하기 전에 마운트 지점에 chdir()을 수행할 수 있어야 한다는 추가 제한이 있습니다. 그것.

smbclient(8)와 같은 일부 Samba 클라이언트 도구는 smb.conf에 있는 클라이언트측 구성 매개변수를 따릅니다. 이러한 클라이언트 도구와 달리 mount.cifs는 smb.conf를 완전히 무시합니다.

이를 고려하면 마운트 시도에 exec/noexec 옵션이 포함된 경우 이를 존중할 것으로 예상됩니다. 또한 사용법을 살펴보면 mount.cifs해당 옵션이 어떻게 사용되는지 알 수 있습니다.

발췌 - mount.cifs 사용법
Less commonly used options:
    credentials=<filename>,guest,perm,noperm,setuids,nosetuids,rw,ro,
    sep=<char>,iocharset=<codepage>,suid,nosuid,exec,noexec,serverino,
    mapchars,nomapchars,nolock,servernetbiosname=<SRV_RFC1001NAME>
    directio,nounix,cifsacl,sec=<authentication mechanism>,sign,fsc

매뉴얼 페이지를 보면 fstabexec/noexec의 의도된 목적이 설명되어 있지만 모든 실행 파일에 대한 것인지 아니면 Unix 실행 파일에 대한 것인지는 지정하지 않습니다.

fstab 매뉴얼 페이지에서 발췌

exec / noexec

exec를 사용하면 해당 파티션에 있는 바이너리를 실행할 수 있지만 noexec를 사용하면 그렇게 할 수 없습니다. noexec는 /var과 같은 바이너리가 포함되어 있지 않거나 시스템에서 실행하고 싶지 않은 바이너리가 포함되어 있거나 Windows 파티션의 경우처럼 시스템에서 실행할 수도 없는 파티션에 유용할 수 있습니다.

exec/noexec는 모든 것을 실행 가능하게 합니까?

아니요, exec/noexec 속성은 권한 비트를 통해 실행 가능한 것으로 표시된 항목을 허용하는 것만 허용하며 권한에 직접 영향을 주지 않습니다.

Window 바이너리는 어떻습니까?

그러나 exec/noexec 설정은 Windows 실행 파일을 제어할 수 없으며 이러한 공유에 상주할 수 있는 Unix 실행 파일만 제어할 수 있습니다.

또한 를 통해 CIFS/Samba 공유를 마운트하는 경우 이러한 기능이 어떻게 작동하는지 잘 모르겠습니다 /etc/fstab. 이 시나리오에서는 Windows OS가 언제 혼합될 수 있습니까? Windows는 이 공유 자체를 직접 마운트하고 Linux를 거치지 않아도 됩니다.

테스트해 보세요

유닉스의 예

mount.cifs다음과 같이 명령줄을 통해 직접 테스트할 수 있습니다 . CIFS/Samba 공유에 다음과 같은 파일이 있다고 가정합니다.

$ cat cmd.bash 
#!/bin/bash

echo "hi"

$ chmod +x cmd.bash

이제 다음과 같이 마운트하고 스크립트를 실행해 보겠습니다 cmd.bash.

$ mount.cifs //server/cifsshare /path/to/cifsmnt -o user=joeuser,noexec

$ cd /path/to/cifsmnt
$ ./cmd.bash
bash: ./cmd.bash: Permission denied

해당 옵션을 생략하면 다음과 같습니다 noexec.

$ mount.cifs //server/cifsshare /path/to/cifsmnt -o user=joeuser

$ cd /path/to/cifsmnt
$ ./cmd.bash
hi
Windows에서

여기서 생각할 수 있는 유일한 시나리오는 Virtualbox와 같은 것을 사용하고 Windows VM이 활용할 수 있는 디렉터리 내부에 CIFS/Samba 공유를 마운트하는 경우입니다.

이것을 테스트했을 때 이 마운트 설정을 통해 파일을 성공적으로 실행할 수 있었습니다 .exe.

메모:Virtualbox의 공유 메커니즘을 사용하여 \\vboxsrv내 시스템의 로컬 홈 디렉터리인 /home/saml. 그런 다음 이 명령을 실행하여 CIFS/Samba 공유를 /home/saml.

$ mkdir /home/saml/cifsmnt
$ mount //server/cifsshare cifsmount -o user=joeuser,noexec

결론

위의 작업을 수행하면 exec/noexec가 파일에 대한 Windows의 액세스를 방해하지 않는다는 것을 나타내는 것처럼 보입니다.

관련 정보