Linuxta uygulama gizlemek?

Başlatan legaltr, 02 Şubat 2021 - 21:37:34

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

legaltr

Merhabalar, umarım konuyu doğru yere açmışımdır. Hatam varsa affola.
Linux mint kullanıcısıyım. Benim kullandığım ama bilgisayarımı açan hiç kimsenin kullanmasını istemediğim bir uygulamayı gizli yapmak yani herhangi bir yerde görünmesin yada görünücekse tıklayınca açılmasın istiyorum nasıl yapabilirim bunu acaba? şimdiden teşekkürler.

mhmtkrktr

#1
Uygulama başlatıcıyı gizlemek için desktop dosyasına NoDisplay=true eklemen yeterli.
Ancak paket yöneticisi ile kurulan uygulama dosyaları güncellemelerden etkilendiği için öncelikle değiştireceğin dosyayı kullanıcı dizinine taşı.
Örnek olarak firefox'u gizlemek istersen

Not: paket yöneticisi dışında kurulan bazı uygulamalar zaten kullanıcı dizinine atılmış olabilir.
Böyle bir durum varsa doğrudan # düzenle bölümüne geçebilirsin

# bul ve taşı -------------------------
find /usr/share/applications -iname "*firefox*"
## Çıktı -> /usr/share/applications/firefox.desktop

cp -v /usr/share/applications/firefox.desktop ~/.local/share/applications
## birden çok kullanıcı varsa, bu komutu hangi kullanıcı da çalıştırmışsan, gizleme işlemi o kullanıcı için geçerli olacaktır

# düzenle ----------------------------
gedit ~/.local/share/applications/firefox.desktop
## Açılan dosyanın [Desktop Entry] grubuna NoDisplay=true değerini ekle.
## Dosyada MimeType satırı var ise başına diyez (#) koyarak kapat veya satırı sil. (ilgili dosyaların bu uygulama ile açılmasını engellemiş olursun)


Uygulamanın çalıştırılmasını engellemek için ihtiyaca göre farklı seneryolar üretilebilir.
Uygulamanın portable olmadığını veya olamayacağını varsayalım çünkü bu fazla basit olur :)
Uygulamayı açmasını istemediğin kişiler sudo şifresini bilmeyecekse, sudo doğrulaması yapan bir ara betik veya polkid dosyası kullanabilirsin.
Uygulamanın gizli olmadığı farklı bir kullanıcı oluşturabilirsin.

Sudo şifresi diğer kullanıcılar tarfından biliniyor, daha alangirli bir şeyler olsun diyorsan, şöyle bir şey olabilir mesela
Uygulama yine firefox olsun
Uygulamanın çağırılacağı isim my-special-app olsun
Çağrıldığın da, doğrulama için soru sorsun. O da legaltr olsun.

Önemli: /usr/bin dizininde oluşturulacak dosyalara verilecek ismin, kurulu veya kurulacak diğer uygulamaların isimleriyle hiç bir zaman çakışmaması gerekir.
örn: my-special-app, my-special-app_1, benimuygulamam vb.

sudo -H gedit /usr/bin/my-special-app
* Açılan dosyaya aşağıda ki içeriği ekle
* Kurulu değilse zenity paketini kur

Alıntı Yap#!/usr/bin/sh
## Bu bölümün amacı, uygulama için doğrulama istemek
## echo bGVnYWx0cgo= | base64 -d  #-> legaltr
## echo legaltr | base64                        #-> bGVnYWx0cgo=
[[ $(zenity --password 2>/dev/null | base64 -w 0) == bGVnYWx0cgo= ]] && $(dirname "$0")/my-special-app_1 &


sudo -H gedit /etc/systemd/system/my-special-apps.service
* Açılan dosyaya aşağıda ki içeriği ekle
* Bu bölümün amacı, uygulamaya özel bir isim vermek ve her zaman o isimde kalmasını sağlamak
* Bu bölümde ki işlem, alternatif olarak Arch da pacman hook ile de yapılabilir. Apt için varsa yöntemi araştırılabilir

Alıntı Yap[Unit]
After=systemd-user-sessions.service

[Service]
Type=oneshot
ExecStart=sh -c '[[ -x /usr/bin/firefox ]] && mv /usr/bin/firefox /usr/bin/my-special-app_1'

[Install]
WantedBy=multi-user.target

sudo chmod u+x /usr/bin/my-special-app
sudo systemctl enable my-special-apps.service

# servisi başlat veya bilgisayarı yeniden başlat

Uygulamayı [Alt + F2] komut istemiyle veya terminalden my-special-app yazarak çağırabilirsin. Açılmadan önce şifre penceresi gelecektir. legaltr ile Firefox'u başlatabilirsin.
Firefox kurulu ancak firefox olarak hiçbir şekilde başlatamazsın. İstediğin bu değilse, daha ayrıntılı sorabilirsin.