![자세한 내용은](https://linux55.com/image/118800/%EC%9E%90%EC%84%B8%ED%95%9C%20%EB%82%B4%EC%9A%A9%EC%9D%80.png)
설치 암호화 디렉터리를 사용하는 경우인코딩된 파일 시스템일반 사용자는 루트 권한으로 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)