com um namespace mount
do linux, você pode chegar perto do mesmo efeito, mas com responsabilidade substancialmente menor.
cp /etc/hosts /tmp
sudo -E unshare -m sh -c '
mount -B /tmp/hosts /etc/hosts
runuser -p '"$USER"' -c firefox'
Eu preciso executar meu navegador como root para obter receptor Citrix , que é executado dentro do navegador, permissões para acessar e editar o arquivo hosts
.
Caso contrário, recebo este erro:
You do not have permission to change hosts file. Please verify that you have write permissions in the /etc directory.
Aparentemente, a Citrix precisa de acesso a hosts
e a única maneira, eu sei, é a execução do Firefox como root por:
sudo firefox
Existe algum problema de segurança ao executar o navegador como root?
Existe alguma maneira de tornar o arquivo hosts
permanentemente editável, para que eu não precise executar o Firefox como root?
Como sugerido por mikeserv, executei
cp /etc/hosts /tmp
sudo unshare -m sh -c '
mount -B /tmp/hosts /etc/hosts
exec runuser -u '"$USER"' firefox'
Na instância recém-aberta do firefox, tentei acessar meus recursos com o Citrix, mas recebi o mesmo erro acima. Além disso, recebi o seguinte erro de despejo no terminal:
1449062781808 addons.xpi WARN Can't iterate directory /home/user/.mozilla/firefox/2vytc6tm.default/extensions: [Exception... "Component returned failure code: 0x80520015 (NS_ERROR_FILE_ACCESS_DENIED) [nsIFile.directoryEntries]" nsresult: "0x80520015 (NS_ERROR_FILE_ACCESS_DENIED)" location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: getDirectoryEntries :: line 1713" data: no] Stack trace: getDirectoryEntries()@resource://gre/modules/addons/XPIProvider.jsm:1713 < DirInstallLocation__readAddons()@resource://gre/modules/addons/XPIProvider.jsm:7502 < DirectoryInstallLocation()@resource://gre/modules/addons/XPIProvider.jsm:7441 < addDirectoryInstallLocation()@resource://gre/modules/addons/XPIProvider.jsm:2298 < XPI_startup()@resource://gre/modules/addons/XPIProvider.jsm:2347 < callProvider()@resource://gre/modules/AddonManager.jsm:221 < _startProvider()@resource://gre/modules/AddonManager.jsm:828 < AMI_startup()@resource://gre/modules/AddonManager.jsm:999 < AMP_startup()@resource://gre/modules/AddonManager.jsm:2672 < AMC_observe()@resource://gre/components/addonManager.js:58 < <file:unknown>
(firefox:7994): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Failed to connect to socket /tmp/dbus-9dyvIdS0jP: Verbindungsaufbau abgelehnt
(firefox:7994): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Failed to connect to socket /tmp/dbus-CBkXMgnC2r: Verbindungsaufbau abgelehnt
(firefox:7994): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Verbindung ist gescheitert: Verbindungsaufbau abgelehnt
(firefox:7994): dconf-CRITICAL **: unable to create file '/home/user/.cache/dconf/user': Keine Berechtigung. dconf will not work properly.
(firefox:7994): dconf-CRITICAL **: unable to create file '/home/user/.cache/dconf/user': Keine Berechtigung. dconf will not work properly.
...
(firefox:7994): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Failed to connect to socket /tmp/dbus-dMG4PGVMeg: Verbindungsaufbau abgelehnt
(firefox:7994): dconf-CRITICAL **: unable to create file '/home/user/.cache/dconf/user': Keine Berechtigung. dconf will not work properly.
(firefox:7994): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Failed to connect to socket /tmp/dbus-jIIyll6Cjh: Verbindungsaufbau abgelehnt
...
JVMLauncher.afterStart(): starting JVM process watcher
(wfica:4510): GLib-CRITICAL **: Source ID 75 was not found when attempting to remove it
(wfica:4510): GLib-CRITICAL **: Source ID 127 was not found when attempting to remove it
com um namespace mount
do linux, você pode chegar perto do mesmo efeito, mas com responsabilidade substancialmente menor.
cp /etc/hosts /tmp
sudo -E unshare -m sh -c '
mount -B /tmp/hosts /etc/hosts
runuser -p '"$USER"' -c firefox'
Não defina permissões de gravação como /etc/hosts
porque corre o risco de um invasor redirecionar seu tráfego para o site que está sob controle e, assim, realizar ações nefastas, como ataques de download drive-by que podem levar à instalação de malware em seu computador sem o seu consentimento, criando um código JavaScript malicioso que possa explorar as vulnerabilidades do seu navegador Firefox ou de um de seus plug-ins / extensões. O mesmo arquivo no sistema operacional Windows é direcionado por autores de malware para espalhar trojans. Só você, o proprietário, deve ter o direito de escrevê-lo.