
작동하지 않는 바탕 화면 아이콘이 있습니다. 사용하려고 하면 오류가 발생합니다.
신뢰할 수 없는 데스크톱 파일 이 데스크탑 파일은 신뢰할 수 없으므로 실행할 수 없습니다. 마우스 오른쪽 버튼 클릭 실행을 활성화하려면 다음을 수행하십시오. "실행 허용" 활성화
다음과 같은 경우에는 "실행 허용" 메뉴 항목이 표시되지 않습니다.
- 바탕화면에 있는 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
- Dolphin에서 해당 파일을 마우스 오른쪽 버튼으로 클릭합니다.
- "파일 관리자"에서 이 파일을 마우스 오른쪽 버튼으로 클릭합니다.
그래서 이 웹페이지의 지침을 사용하여 명령줄에서 이를 수행하려고 했습니다.Ubuntu 18.04의 명령줄에서 .desktop 파일을 신뢰할 수 있는 파일로 표시하는 방법은 무엇입니까?. 신뢰할 수 없는 실행기 링크가 많기 때문에 이 명령 시퀀스를 사용했고 다음 응답을 받았습니다.
$ chmod u+xrw /home/stephen/Desktop/*.desktop
$ chmod g+xrw /home/stephen/Desktop/*.desktop
$ chmod o+xr /home/stephen/Desktop/*.desktop
$ gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
gio: Setting attribute metadata::trusted not supported
* 와일드카드 문자 대신 gio에 특정 파일을 제공했을 때나 루트로 gio를 실행하려고 할 때에도 동일한 오류가 발생했습니다.
gio 명령을 내리는 올바른 속성은 무엇입니까? "실행 허용" 메뉴 항목은 어떤 파일 브라우저에 나타나야 합니까?
내 OS는 Ubuntu 22.04입니다.
다음은 문제가 있는 .desktop 파일 중 하나입니다.
[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=
저는 2022년 9월 6일 댓글에서 ubfan1이 제시한 권장 사항을 따랐습니다. 결과는 다음과 같습니다.
stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Comment" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "GenericName" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Name" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
/home/stephen/Desktop/Flameshot.desktop: warning: key "TerminalOptions" in group "Desktop Entry" is deprecated
Path 키를 무엇으로 설정해야 합니까? 이 사실을 모르고, 경고일 뿐이어서 나머지 파일도 그에 맞게 편집했습니다. 해당 편집 결과는 다음과 같습니다.
[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-Desktop-File-Install-Version=0.26
X-KDE-SubstituteUID=false
X-KDE-Username=
이제 다음과 같은 결과를 얻습니다.
stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-install /home/stephen/Desktop/Flameshot.desktop
/usr/share/applications/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-edit /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
여전히 "실행 허용" 메뉴 항목이 나타나지 않습니다.
그런 다음 Flameshot.desktop이 더 이상 실행 가능하지 않다는 것을 발견했습니다. 그래서 돌고래를 이용해서 그렇게 만들었어요. 이 작업을 수행한 후 실행 가능하게 만들면 Flameshot.desktop의 콘텐츠가 위에서 시작한 내용으로 되돌아가는 것을 발견했습니다. 중복된 키 항목이 다시 도입되었고, 결국 내가 시작한 곳에서 바로 끝났습니다.
어쩌면 Path 키 경고가 내가 생각했던 것보다 더 중요했을 수도 있습니다. 다시 시도하기 전에 무엇으로 설정해야 하는지 알아야 합니다. 다른 제안 사항도 대단히 감사하겠습니다.
작동하는 바탕 화면 아이콘을 만들 수 있는 테스트용으로 생성된 새 임시 계정인 테스트 계정과 기본 계정인 stephen 계정에서 수행된 "strace gio set" 명령의 결과를 비교하기 위해 스프레드시트를 만들었습니다. 계정과 Ubuntu 설치 중에 생성된 계정은 사용할 수 없습니다. 다음에서 다운로드할 수 있습니다.
https://www.mediafire.com/file/xz4dy7280wfx3u8/giosetenablecomparison.ods/file
A열은 메인 계정의 명령어 결과이고, B열은 테스트 계정의 결과입니다. 결과는 59행까지 거의 비슷합니다. 테스트 계정에서는 기본 계정에 대해 "close(3)"가 표시되고 테스트 계정에 "close(3) = 0"이 표시됩니다.
stephen 계정에서는 출력이 59행에서 끝납니다. 테스트 계정에서는 출력이 516행까지 계속됩니다.
이 모든 출력이 무엇을 의미하는지 모르겠습니다. 스티븐 계정에서 일부 오류로 인해 프로세스가 조기에 종료되는 것 같습니다. 여기 누군가가 무엇이 잘못되었는지 확인하고 해결책을 제안할 수 있습니다.
마이그레이션한 이전 컴퓨터에는 Pop!_OS 21.04가 있습니다. 내가 마이그레이션한 새 컴퓨터에 이 아이콘 문제가 있는데 Ubuntu 22.04가 있습니다. 마이그레이션을 수행할 때 모든 바이너리를 /opt에 복사하고 모든 파일을 /home에 복사했습니다. /opt에 모든 파일을 복사함으로써 모든 소프트웨어 설치를 다시 수행하는 데 필요한 시간과 노력을 절약할 수 있기를 바랐습니다. /user/bin 및 /snap과 같은 다른 곳에 바이너리가 있다는 것을 알고 있습니다. 저는 이것을 복사한 것이 아니며 설치 파일을 사용하여 새 컴퓨터에 설치하려고 했습니다. 나는 연결된 앱이 설치될 때까지 /Desktop 디렉토리에 끊어진 링크가 있다는 것을 알고 있었습니다. 지금은 이것이 실수였을 수 있으며 모든 것이 새 컴퓨터의 설치 파일에서 설치되어야 한다고 생각합니다.
요청한 명령의 결과스틸드라이버그의 코멘트에서:
stephen@stephen:~$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus
stephen@stephen:~$ id -u
1000
답변1
gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
정확하지 않습니다. 3가지 문제:
을 사용해야 합니다
dbus-launch
.dbus-launch
먼저 설치되지 않은 경우 다음을 수행하십시오.sudo apt install dbus-x11
와일드카드를 사용할 수 없습니다.
Ubuntu 20.04 기준으로 "예"가 아니라 "참"입니다.
명령:
dbus-launch gio set /home/stephen/Desktop/{name}.desktop "metadata::trusted" true
(여기서 {name}은 실제 이름으로 바꿔야 함)
답변2
"~/Desktop" 디렉터리에 다른 사람이 쓸 수 있었기 때문에 "실행 허용" 메뉴 항목이 나타나지 않았습니다. 이를 알아내기 위해 GNU 소스 코드를 찾고 분석해야 했습니다. 그 핵심은 파일의 200번째 줄이었습니다:
/usr/share/gnome-shell/extensions/ding(at)rastersoft.com/fileItemMenu.js"
.
(@를 (at)로 대체)
이것은:
if (fileItem.isValidDesktopFile && !this._desktopManager.writableByOthers && !fileItem.writableByOthers && (selectedItemsNum == 1 )) {
"~/Desktop" 디렉터리는 다른 사람이 쓰기 가능했기 때문에 "!this._desktopManager.writableByOthers"라는 용어가 거짓이어서 메뉴 항목이 나타나지 않았습니다.
"~/Desktop" 디렉토리에 다른 사람의 쓰기 권한이 없어야 한다는 요구 사항은 문서화되어 있지 않으며 그래야 합니다. 그랬더라면 시간이 많이 절약됐을 텐데.