Kullanıcı başına ana bilgisayar dosyası


16

Ana bilgisayar diğer adlarını (in gibi /etc/hosts) kullanıcı başına, yani bir dosyada tanımlamanın bir yolu var mı /home/user/.hosts?

Öncelikli hedefim, küçük lanetimdeki makineler arasında rsync aracılığıyla ana bilgisayar takma adlarını kolayca paylaşmak. Her zaman güvenilir bir şekilde bağlanacak bir makine olmadığından, bir DNS sunucusu bir seçenek değildir (doğru?).

Teşekkür ederim.


2
Vay canına. Aynı soruyu göndermek üzereydim ama görüyorsun. Bana mantıklı geliyor, ama garip bir şekilde Linux'ta mevcut değil. Benim durumumda Samsung Galaxy Tab cihazımda Android işletim sistemine sahip bir hapishane formum var ve web geliştirmem nedeniyle genellikle / etc / host'ları düzenlemem gerekiyor. Hapse atılan bir Linux'ta / etc / hosts dosyasını düzenleyemezsiniz. Yani, bir ~ / .hosts kesinlikle harika olurdu!
ServerChecker

sonunda bir çözüm buldun mu?
quamis

Ne yazık ki değil. Belki bu mümkün değildir çünkü bu bir güvenlik tehdidi.
mrucci

1
SSH için, takma adları kısmi bir geçici çözüm olarak kullanabilirsiniz. alias ssh="ssh ".Bashrc'nizi (takma adın sonundaki boşlukları not edin) ile birlikte koyun alias myhost="me@real-name-of-my-host.com"ve sonra söyleyebilirsiniz ssh myhostve işe yarayacaktır.
Noah Sussman

Geçici çözüm için daha iyi bir yaklaşım ~/.ssh/config, satırları eklediğiniz yere bir giriş koymak olacaktır : Host my-hostve Hostname 10.0.0.xxxmakinenin <- IP'si. Güzel şey, aynı zamanda vb kullanmak için anahtar, kullanıcı adı, bağlantı noktası belirtmek için izin verir
Ciprian Tomoiagă

Yanıtlar:


8

Daha iyi bir çözüm Avahi ve libnss-mdns'i kurmak ve daha sonra HOSTNAME.localadresleri kullanmak olacaktır .

Bu adlar kullanıcı başına olmaz, ancak bir LAN üzerindeki tüm makineler için ortak adlara sahip olma hedefinizi çözer.


HOSTNAMES.local dosyasını / etc / avahi / hosts yerine yerel bir dosyada (kullanıcı başına) belirtmenin bir yolu var mı?
mrucci

Bence Teddy, her makinenin Avahi'nin keşfedeceği bir isme sahip olacağı anlamına geliyor. Makine-ad eşlemesi gerçekten kullanıcı başına farklılık göstermeli mi?
pjc50

Hayır, kullanıcı başına değişiklik göstermemelidir. Sadece ping hostnameAliaskök ayrıcalıkları olmadan ana bilgisayar takma adları (bana izin veren bir şekilde) paylaşmak için bir yönteme ihtiyacım var . Avahi neredeyse doğru işi yapıyor, çünkü $ HOSTNAME makinesini takma ad olarak kullanabilirim. Sadece merak için: bu eşleme nerede yapılır?
mrucci

3

Tam olarak ne istediğinizi yapmanın bir yolu için https://github.com/figiel/hosts adresine bakın .

Bu, LD_PRELOAD aracılığıyla yüklenen ve gethostbyname () ve programların DNS çözümlemesi için kullandığı birkaç ilgili işlevi geçersiz kılan küçük bir kitaplıktır. Benim için iyi çalışıyor. Bulduğum tek uyarı, Chrome web tarayıcısının yerel DNS çözümlemesini kullanmaması, bunun yerine kendi DNS istemcisini uygulamasıdır. Bu sorunu çözmek için Chrome'un DNS istemcisini devre dışı bırakmanız gerekir .


2

Linux glibc uygulaması bunu yapamaz.

Ama bunu bir nss kütüphanesi ile genişletebilirsiniz. Bu nss_files dizininde bulunan libc ilgili bölümünü sökmek gibi yazmak kolay olurdu

http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2

Örneğin

Ancak bu, yapılması oldukça garip bir standart dışı şey olacaktır.



0

Bu sayfadaki diğer cevapların açıkladığı gibi, benzer işlevsellik elde etmenin yolları vardır, ancak:

Hayır, /etc/hostsGNU / Linux'ta ayrıcalıklı olmayan bir kullanıcı olarak varsayılan ad çözümlemesini geçersiz kılmanın "kullanıcı başına" dosyası veya başka bir yolu yoktur.


-1

Hangi ana makinelerin çalıştığını gösteren ve daha sonra aşağıdaki rsync komutu için ana bilgisayar adını ayarlayan bir komut dosyası yazmak çok daha kolay görünecektir. Böyle bir şey

#! / Usr / bin / sh

HOST = "none"
Testfile = / tmp / testfile. $$
$ TESTFILE'ya dokunun
benim için hosta hostb hostc olivia
yapmak
    scp $ TESTFILE $ i: / tmp
    eğer [$? -eq 0]
    sonra
        HOST $ i =
    fi
tamam
rm $ TESTFILE

[$ HOST! = "yok"] ise
sonra
    echo $ HOST doldu
    rsync -av --rsh = ssh dosyaları $ HOST: / dest
Başka
    echo "Ev sahibi bulunamadı"
    çıkış 1
fi

Bu test edilmemiştir ve varsayımlara sahiptir, bu nedenle uygun şekilde değiştirmeniz gerekir.


Cevabınız için teşekkür ederim ama başka bir sorunu çözmeye çalışıyordum: bir kullanıcı ana klasöründe ana bilgisayar adları listesini (hosta hostb hostc olivia) nasıl saklayabilir ve paylaşabilirim, böylece yazabilirimrsync src olivia:/dst
mrucci
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.