나는 종종 gpg
아래와 같이 파일을 암호화하는 명령을 사용합니다.
gpg -c file
file.gpg
명령줄 측면을 제거하고 노틸러스에 오른쪽 클릭 버튼을 추가하고 싶습니다 . Nautilus용 Seahorse 확장을 설치하려고 시도했지만 제대로 작동하지 않았고 위 명령을 단순하게 유지하고 싶었습니다. 어떻게 해야 합니까?
답변1
내가 아는 한, 노틸러스 상황에 맞는 메뉴에 항목을 추가하는 두 가지 간단한 방법이 있습니다.
- 노틸러스 스크립트
nautilus-actions
패키지는 배포판에 따라 감가상각될 수 있습니다.
Debian Bullseye/sid에서 실행 중이지만 nautilus-actions
사용할 수 없으므로 다음을 사용하여 방법을 설명하겠습니다.노틸러스 스크립트. 노틸러스의 기능에 대해 자세히 알아보려면 잠시 시간을 내어StackExchange의 우분투 측면, 사람들은 그곳에서 노틸러스 스크립트에 대해 많이 이야기합니다. 기본적으로 이 기능을 사용 ~/.local/share/nautilus/scripts/
하면 디렉터리에 있는 Bash(또는 Python) 스크립트 에 상황에 맞는 메뉴 항목을 추가할 수 있습니다 .
두 개의 스크립트 사용
내 제안은 암호화용 스크립트와 암호 해독용 스크립트 두 개를 구현하는 것입니다. 파일을 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴가 다음과 같이 표시됩니다.
암호화 스크립트
암호화 스크립트는 간단합니다
#!/usr/bin/env bash
# Encrypt
# gpg-encrypt Nautilus script
gpg -c --no-symkey-cache "$1" && rm -f "$1"
첫 번째 Bash 매개변수 $1
는 Nautilus가 마우스 오른쪽 버튼을 클릭할 때 선택하는 파일 경로입니다.
이렇게 하면 비밀번호가 캐시에 보관되는 것을 --no-symkey-cache
방지할 수 있습니다 . gpg
기본적으로 비밀번호는 파일을 암호화하고 복호화한 후 일정 기간 동안 저장되는데, 개인적으로 이 기능이 마음에 들지 않아 이 옵션을 사용합니다.
암호화 후 원본 파일을 삭제하는 기능 도 추가해두었으니 && rm -f "$1"
필요하지 않으면 삭제해도 됩니다.
스크립트 해독
암호 해독 스크립트는 다음과 같습니다.
#!/usr/bin/env bash
# Decrypt
# gpg-decrypt Nautilus script
ext=`echo "$1" | grep [.]gpg`
if [ "$ext" != "" ]; then
gpg --batch --yes --no-symkey-cache "$1"
else
zenity --error --text "The selected file is not crypted."
fi
이 스크립트의 기능을 설명하겠습니다. ext
선택한 파일이 파일이 아닌 경우에는 비어있는 변수를 사용하며 .gpg
,아니요선택한 파일이 .gpg
파일인 경우 비어 있습니다.
선택한 파일이 암호화된 경우 .gpg
스크립트는 이 gpg
명령을 사용하여 파일을 해독합니다. --batch --yes
출력 파일이 이미 존재하는 경우 이를 덮어쓰기 위해 이러한 옵션을 전달했습니다 . 예를 들어, 암호 해독이 있으면 file.gpg
덮어씁니다 . file
덮어쓰고 싶지 않다면 output
gpg
s 옵션을 사용하고 zenity --file-selection
해독된 파일 이름을 지정하는 것이 좋습니다.
선택한 파일이 암호화되지 않은 경우 .gpg
스크립트는 zenity --error
오류 창을 표시합니다.
이 스크립트는 확장자를 확인하여 파일이 암호화되었는지 여부를 테스트합니다. 더 나은 접근 방식은 선택한 파일의 MIME 유형을 확인하는 것입니다. 암호화된 파일의 MIME 유형은 다음 명령을 사용하여 찾을 수 있습니다.
$ > file
$ file -b --mime-type file.gpg
application/octet-stream
~부터application/octet-stream
일반 바이너리 파일을 의미합니다.파일을 암호화하는 데는 필요하지 않으므로 이 접근 방식이 파일 확장자를 확인하는 것보다 나을 것이라고 생각하지 않습니다. 반면에 Nautilus는 암호화된 파일을 MIME 유형 gpg
으로 매핑한다는 것을 알고 있습니다. 어쩌면 누군가가 command 이외의 다른 것을 사용하여 파일에서 이 MIME 유형을 얻는 application/pgp-encrypted
방법을 알고 있을 수도 있습니다 . 이 경우 관련성이 있습니다..gpg
file
두 개의 파일을 사용하세요
두 개의 마우스 오른쪽 버튼 클릭 메뉴 항목을 사용하지 않으려면 스크립트를 사용할 수 있습니다.
#!/usr/bin/env bash
# Encrypt-Decrypt
# gpg-encrypt/decrypt Nautilus script
ext=`echo "$1" | grep [.]gpg`
if [ "$ext" != "" ]; then
gpg --batch --yes --no-symkey-cache "$1"
else
gpg -c --no-symkey-cache "$1" && rm -f "$1"
fi
.gpg
이 스크립트는 선택한 파일이 파일이면 암호를 해독하고 선택한 파일이 다른 파일이면 암호화합니다.
노틸러스에서 복호화하려면 두 번 클릭하세요.
또한 다음 데스크탑 항목을 디렉토리에 추가하여 노틸러스가 .gpg
두 번 클릭하여 암호화를 해독하도록 허용할 수 있습니다.~/.local/share/applications/
# Decrypt.desktop
[Desktop Entry]
Name=GPG Decrypt
Terminal=false
Type=Application
MimeType=application/pgp-encrypted;
Exec=gpg --batch --yes --no-symkey-cache %F
NoDisplay=true
기본적으로 다른 응용 프로그램을 사용하지 않는 경우 노틸러스를 두 번 클릭하면 이제 파일의 암호가 해독됩니다. 기본 GNOME을 사용하는 경우 Seahorse가 기본 응용 프로그램으로 선택될 수 있으며, 이 경우 GPG Decrypt
에서 선택해야 합니다 Open With Other Application Menu
.
설치하다
이 작은 Bash 스크립트는 모든 것을 올바른 위치에 설치합니다.
chmod +x 'Encrypt' 'Decrypt' # script files must be executable!
cp Encrypt Decrypt ~/.local/share/nautilus/scripts/
cp Decrypt.desktop ~/.local/share/applications/
update-desktop-database ~/.local/share/applications/
nautilus -q
nautilus
데모
첨부된:GNOME 3.34.2 및 2.2.17 gpg
에서 테스트되었습니다 ( check 를 사용할 수 있음 $ gpg --version
).
답변2
sudo apt install seahorse-nautilus
그런 다음 다음 명령을 사용하여 노틸러스를 다시 시작하십시오.
nautilus -q
그런 다음 파일을 마우스 오른쪽 버튼으로 클릭하고 선택하십시오.Encrypt