.desktop 파일의 권한


10

.desktop파일 권한에 대한 설명이 필요 합니다. 루트 소유의 모든 .desktop파일에 /usr/share/applications/권한이 있음을 알 수 있습니다.

-rw-r--r--

또한 examples.desktop에서 $HOME사용자가 소유 한 같은 권한이 있습니다. 그것들은 모두 제대로 작동합니다.

그러나 .desktop동일한 권한을 가진 사용자 정의 파일 을 만들 때 다음 오류 메시지가 표시됩니다.

신뢰할 수없는 응용 프로그램 시작
프로그램 "myapp.desktop"응용 프로그램 시작 프로그램 이 신뢰할 수있는 것으로 표시되지 않았습니다. 이 파일의 출처를 모르면 시작하는 것이 안전하지 않을 수 있습니다.

그러나 실행 권한을 추가하면 문제없이 실행할 수 있습니다.

Q : 사용자 정의 .desktop파일 +x에 실행 권한이 필요한 이유 또는 .desktop실행 권한없이 일부 파일을 실행할 수있는 방법 은 무엇입니까? .desktop실행 권한없이 사용자 정의 파일을 실행할 수 있습니까?


관련 이지만 질문에 대답하지 않습니다.
Olli

답변:


12

이것은 우분투의 보안 정책 에서 나온 것입니다 .

실행 권한 비트 필요

  • 데스크탑 및 쉘을 포함한 응용 프로그램은 파일이 둘 다일 때 파일에서 실행 코드를 실행해서는 안됩니다.

    • 실행 가능한 비트 부족
    • 사용자의 홈 디렉토리 또는 임시 디렉토리에 있습니다.
  • 여기에는 * .desktop, * .jar 및 * .exe 파일이 포함됩니다.

  • 어쨌든 자동으로 실행할 수있는 해결 방법은 없습니다 ...

예,이 정책에 따르면 실행 가능한 비트 세트없이 .desktop 파일을 실행할 수 있습니다. 이 정책에 따르면 /home/and 및 /tmp/디렉토리 에서 해당 파일을 옮기기 만하면 실행 비트 세트없이 파일을 실행할 수 있습니다. 이것은 이론 / 정책에 따른 것입니다.

실제로 노틸러스를 사용하면 XDG_DATA_DIR 디렉토리와 디렉토리에서 실행 비트를 설정하지 않고 .desktop 파일을 시작할 수 있습니다 ~/.gnome2/. echo $XDG_DATA_DIRS명령으로 XDG_DATA_DIRS를 확인할 수 있습니다 . 따라서 .desktop 파일을 XDG_DATA_DIR에 넣거나 ~/.gnome2/실행 비트를 설정하지 않고 노틸러스에서 시작할 수 있습니다. 적어도 12.04에서는 그렇게 작동합니다. 이것이 내가 모르는 위에서 언급 한 정책과 어떻게 일치합니까?


examples.desktop질문 에서 언급 한 바와 같이 : .desktop 파일은 다른 종류의 .desktop 파일입니다. 그것은 "링크"이며, 아무것도 실행하고 싶지 않으며 기본적으로 심볼릭 링크로 작동합니다. 이러한 종류의 .desktop 파일은 모든 곳에서 작동합니다.


1
답변 주셔서 감사합니다. 내가 알고 싶은 거의 모든 것을 다룹니다. 두 가지만 더. [i] 12.04도 사용하고 있지만 실행 .desktop파일이 /home없는 외부 파일 은 작동하지 않습니다. [ii] $XDG_DATA_DIRS?에 폴더를 추가 할 수 있습니까 ? export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/성공하지 못했습니다.
souravc

@souravc [i] 내가 말했듯이, 그것은 /home/디렉토리 외부에서 작동해야한다는 정책에 따릅니다 . 필자가 쓴 것처럼 실제로 노틸러스는 다르게 동작하며 홈 디렉토리 ( ~/.gnome2/) 에서 일부 .desktop을 실행하지만 / home 외부의 모든 디렉토리에서 실행되지는 않으며 XDG_DATA_DIRS에서만 실행됩니다. 노틸러스의 행동이 정책과 완벽하게 일치하지는 않는다고 생각합니다. [ii] 디렉토리를 추가하는 방법은 이 블로그 게시물을 확인하십시오 .
falconer

1

.desktop파일을 만들어 넣을 수 있습니다 ~/.local/share/applications-그러면 대시 / 메뉴 / 무엇이든 나타납니다.

다음과 같이 보일 것입니다 :

[Desktop Entry]
Name=Files
Comment=Launch Nemo File manager
Keywords=folder;manager;explore;disk;filesystem;
Exec=nemo %U
Icon=system-file-manager
Terminal=false
Type=Application
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Categories=GNOME;GTK;Utility;Core;
NoDisplay=false

이는 대부분의 시스템에서 루트가 아닌 다른 사용자가 소유 한 경우에도 대부분의 시스템에서 실행 권한없이 정상적으로 작동 ~/.local/share/applications하는 파일과 파일이 동일하게 작동 하기 때문 /usr/share/applications입니다. 그러나 항상 그런 것은 아닙니다.

실제로 파일을 클릭 한 다음 열려면 실행 권한이 필요합니다.


1
@ downvoter plz는 건설적인 비판에 대한 의견을 남깁니다. @ wilf 귀하의 답변이 내 질문에 정확히 답변하지는 않는다고 생각합니다. 실행 권한이 없으면 .desktop파일을 실행할 수 없습니다 ~/.local/share/applications.
souravc

나는 이것이 대답이 아니라는 것을 안다. 나는 문제가 없었습니다. 위의 내용과 비슷한 내용으로 Gedit에서 텍스트 파일을 만들었습니다. 로그 아웃 및 로그인하면 정상적으로 작동합니다 .... 우분투 10, 12.04, 13.04, 13.10 및 기타 Fedora 12 이후의 Fedora 버전. Debian에서도 사용됩니다. 확인은 그들이 대부분 권한을 가지고 있음을 보여줍니다 -rw-r--r--....
Wilf

0

그놈을 수정하지 않고는 할 수 없습니다. 있다 런치 패드 버그 리포트 확정,하지만 정확한 문제에 따라 행동하지 않습니다.

소유자 루트 로 사용자 정의 .desktop파일 을 작성할 때 /usr/share/applications/실행 권한이 필요하지 않습니다.


이 버그 보고서는 실제로 오래되었습니다 (Ubuntu 10.04에서). 우분투 12.04에 대한 그러한 보고서를 보지 못했습니다. 뭐 찾았 어?
souravc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.