Benutzerspezifische Hostdatei

Ich möchte auf meinem Mac (El Capitan 10.11.5) eine benutzerspezifische Host-Datei zu einem Benutzer-Home-Verzeichnis hinzufügen und dies zusätzlich beim /etc/hostsAuflösen von Domain-Namen überprüfen lassen.

Ich habe hier eine ähnliche Antwort gefunden . Diese Antwort war ein glattes Nein, da diese Person keine Superuser-Rechte hatte. Dies ist bei mir nicht der Fall, da ich tatsächlich Superuser-Rechte habe.

Ich habe hier eine andere Antwort gefunden , aber das scheint auf meinem Computer nicht zu funktionieren. Diese Antwort beinhaltet das Setzen der HOSTALIASESUmgebungsvariable auf ~/.hosts, aber keine Ergänzung der ~/.hostsDatei hatte jemals Auswirkungen auf meinen Webbrowser, was das Ziel von mir ist, eine benutzerspezifische Hostdatei zu erstellen.

HINWEIS: Nachdem Sie ein wenig in den Manpages von bash gelesen haben, ist die richtige Umgebungsvariable auf dem Mac, die die zweite Antwort benötigt, HOSTFILE. Dies hat jedoch noch nichts beeinflusst. Gedanken dazu?

BEARBEITEN: Dies ist für eine Einzelbenutzerumgebung, wie MrWonderful vorgeschlagen hat. Ich möchte jedoch, dass die Hosts-Einstellung eines Benutzers nicht betroffen ist, aber ein anderer Benutzer.

Gedanken?

Ich bin immer noch neugierig, welchen Nutzen dies bringen könnte, der mit programmatischen Mitteln nicht realisiert werden könnte.
HOSTALIASES=$HOME/hosts sudo -E dtruss ping foobarzeigt, dass die einzige geöffnete Datei /etc/hosts. HOSTFILE=$HOME/hostshat das gleiche Ergebnis. Die hosts(5)Manpage gibt an, dass nur /etc/hostsgelesen wird. Es wird die hostname(7)Manpage States HOSTALIASESverwendet. Ach, noch mehr kaputte Apple-Software.

Antworten (1)

Wenn Sie eine Einzelbenutzerumgebung verwalten, z. B. ein gemeinsam genutztes MacBook, könnten Sie möglicherweise die .bashrc- Datei jedes Benutzers eine Basis- Hosts- Datei kopieren und dann ihre benutzerdefinierte an das Ende davon anhängen. Zum Beispiel:

sudo cp /etc/common_hosts /etc/hosts  
sudo cat ~/my_hosts >> /etc/hosts

Dies würde effektiv jedem Benutzer seine eigenen benutzerdefinierten Ergänzungen zur Hosts- Datei geben. Sie können dafür sorgen, dass für diese sudo-Befehle kein Passwort erforderlich ist, indem Sie den Befehl sudo visudo verwenden und sie zu den zulässigen Befehlen hinzufügen. Hier sind einige Beispiele vom Ende meiner Sudoers- Datei:

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now  

Unter OS X wird die Datei /etc/hosts anscheinend dynamisch gelesen, sodass die Netzdienste nicht neu gestartet werden müssten.

mbp-c17189:~ root# ping goog
ping: cannot resolve goog: Unknown host
mbp-c17189:~ root# ping google.com
PING google.com (172.217.4.238): 56 data bytes
64 bytes from 172.217.4.238: icmp_seq=0 ttl=49 time=4306.507 ms
^C
--- google.com ping statistics ---
2 packets transmitted, 1 packets received, 50.0% packet loss
round-trip min/avg/max/stddev = 4306.507/4306.507/4306.507/0.000 ms
mbp-c17189:~ root# echo 172.217.4.238     goog>>/etc/hosts
mbp-c17189:~ root# ping goog
PING goog (172.217.4.238): 56 data bytes
64 bytes from 172.217.4.238: icmp_seq=0 ttl=49 time=43.639 ms
^C
--- goog ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 43.639/43.914/44.189/0.275 ms
mbp-c17189:~ root# 
Wie gehen Sie also damit um, wenn zwei Personen gleichzeitig angemeldet sind?
Meine Antwort würde nur für ein Szenario mit jeweils einem Benutzer gelten, wie beispielsweise auf einem Macbook. In einer gemeinsamen Umgebung würde dies nicht gut / überhaupt nicht funktionieren.
@Allan - Was ist dein wahres Ziel? Vielleicht würde ein konkreteres Beispiel ein tieferes Verständnis des Problembereichs erleichtern. Vor allem, warum verschiedene Benutzer für einige Einträge unterschiedliche Namen oder IP-Adressen benötigen würden.
Das kommt dem nahe, wonach ich gesucht habe. Ich wollte die Haupthosts-Datei wirklich in Ruhe lassen, damit die Hosts-Einstellung für jeden Benutzer nur für sie gilt, aber das ist trotzdem hilfreich.
Nicht mein Ziel ... Ich sehe dies einfach nicht als praktikable Lösung, da Sie Benutzern möglicherweise ohne Passwort sudo-Zugriff gewähren müssten. Was wird sie jedes Mal zur Eingabe des Passworts auffordern, wenn die Hostdatei bearbeitet werden soll?
@Allan - nicht wahr, /etc/hosts wird dynamisch gelesen
@Allan - mit 'visudo' können Sie typische sudo-Befehle auflisten, die kein sudo oder ein Passwort erfordern. Es würde nicht erfordern, dass die Benutzer überhaupt das Root-Passwort benötigen.