자세한 내용은

자세한 내용은

설치 암호화 디렉터리를 사용하는 경우인코딩된 파일 시스템일반 사용자는 루트 권한으로 sudo를 사용하여 그 안에 있는 스크립트를 실행할 수 없습니다.

$ sudo /run/media/yeti/usbdrive/encfs/test.sh
sudo: /run/media/yeti/usbdrive/encfs/test.sh: command not found

이는 보안 기능이지만 루트로 설치하지 않고 이 설치 디렉터리에 루트 권한을 부여하려면 어떻게 해야 합니까?

자세한 내용은

나는 사용하고있다아키텍처Linux, 다음을 사용하여 암호화된 디렉터리가 있습니다.인코딩된 파일 시스템:

sudo pacman -S encfs
usbpath="/run/media/yeti/usbdrive"
encfs "$usbpath/.encfs" "$usbpath/encfs"
echo 'echo hello world' > "$usbpath/encfs/test.sh"
sudo chmod +x "$usbpath/encfs/test.sh"

그러면 이 명령은 예상대로 작동합니다.

$ /run/media/yeti/usbdrive/encfs/test.sh
hello world

하지만 sudo를 사용하면 다음과 같은 오류가 발생합니다.

$ sudo /run/media/yeti/usbdrive/encfs/test.sh
sudo: /run/media/yeti/usbdrive/encfs/test.sh: command not found

나중에 이것이 EncFS의 보안 기능이라는 것을 깨달았습니다. 실제로는 좋은 기능이었습니다. 디렉토리를 root(이후 ) 로 나열하면 su다음을 찾습니다.

$ ls /run/media/yeti/usbdrive/encfs/
ls: cannot access '/run/media/yeti/usbdrive/encfs': Permission denied
[...]
d?????????? ? ?    ?        ?            ?  encfs
drwxrwxrwx  1 yeti yeti     0 Sep 30 00:31  .encfs
[...]

하지만 제 경우에는 제가 사용하고 있는 시스템이 실제로 루트이고 sudo에 비밀번호가 없을 수 있습니다. 따라서 이 보안 기능은 방해 역할만 합니다. 그러나 암호화된 디렉터리를 루트로 마운트하고 싶지도 않습니다(그러면 파일 관리자와 기타 응용 프로그램도 루트로 실행해야 하기 때문입니다).

이 문제에 대한 나의 해결책은 암호화된 디렉터리( ) 외부에 파일을 복사한 cp "$usbpath/encfs/test.sh" /tmp/test.sh다음 루트( sudo /tmp/test.sh)로 실행하는 것이었습니다.

동일한 문제가 발생할 수 있는 다른 사람들을 위해 이 문제를 문서화하는 것 외에도 나에게 남은 질문은 다음과 같습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변1

Encfs는 후드 아래에 퓨즈를 사용합니다. -o옵션을 융합에 전달하는 옵션이 포함되어 있습니다 . 추가하면 -o allow_root루트가 사용자 마운트 외에도 파일 시스템에 액세스할 수 있습니다(비슷하지만 배타적인 allow_others플래그도 참고하세요). 이 옵션을 사용하려면 회로 차단기 구성에서 활성화해야 합니다. 에서 지시문을 /etc/fuse.conf추가합니다.user_allow_other

바라보다설치.퓨즈(8)그리고환경 파일 시스템(1)

관련 정보