Apakah ada cara untuk mendefinisikan alias host (seperti dalam /etc/hosts
) pada basis per pengguna, yaitu dalam file /home/user/.hosts
?
Tujuan utama saya adalah dengan mudah berbagi alias host melalui rsync antara mesin-mesin di lan kecil saya. Karena tidak ada mesin yang akan selalu terkoneksi secara andal, server DNS bukanlah suatu opsi (kan?).
Terima kasih.
linux
local-area-network
hosts
mrucci
sumber
sumber
alias ssh="ssh "
.bashrc Anda (perhatikan spasi spasi di akhir alias) bersama denganalias myhost="[email protected]"
dan kemudian Anda bisa mengatakanssh myhost
dan itu akan berhasil.~/.ssh/config
tempat Anda menambahkan baris:Host my-host
danHostname 10.0.0.xxx
<- IP mesin. Yang menyenangkan adalah itu juga memungkinkan Anda untuk menentukan nama pengguna, port, kunci mana yang digunakan dllJawaban:
Solusi yang lebih baik adalah menginstal Avahi dan libnss-mdns, dan kemudian menggunakan
HOSTNAME.local
alamat.Nama-nama ini tidak akan per-pengguna, tetapi akan memecahkan tujuan Anda yang dinyatakan memiliki nama-nama umum untuk semua mesin di LAN.
sumber
ping hostnameAlias
) tanpa hak akses root. Avahi hampir melakukan pekerjaan yang benar, karena saya dapat menggunakan mesin $ HOSTNAME sebagai alias. Hanya untuk rasa ingin tahu: di mana pemetaan ini dilakukan?Lihat https://github.com/figiel/hosts untuk mengetahui cara melakukan persis apa yang Anda minta.
Itu adalah perpustakaan kecil, dimuat melalui LD_PRELOAD dan yang menimpa gethostbyname () dan beberapa fungsi terkait yang digunakan program untuk resolusi DNS. Ini bekerja dengan baik untuk saya. Satu-satunya peringatan yang saya temukan adalah bahwa browser web Chrome tidak menggunakan resolusi DNS asli, tetapi malah mengimplementasikan klien DNS-nya sendiri. Untuk mengatasi masalah itu, Anda perlu menonaktifkan klien DNS Chrome .
sumber
Implementasi Linux glibc tidak dapat melakukan itu.
Tapi Anda bisa memperluasnya dengan perpustakaan nss yang bisa. Ini akan mudah untuk ditulis karena Anda dapat merobek bagian relevan dari libc yang ada di direktori nss_files di
http://ftp.gnu.org/gnu/glibc/glibc-2.5.tar.bz2
Contohnya
Namun, ini akan menjadi hal yang agak tidak aneh untuk dilakukan.
sumber
Jika Anda memiliki dua mesin yang sebagian besar akan bertahan, Anda dapat menahan BIND pada masing-masingnya dan menjadikannya server DNS..atau mendapatkan salah satunya ( http://www.marvell.com/products/embedded_processors/ pengembang / kirkwood / sheevaplug.jsp ).
Gunakan BIND di atasnya untuk melayani Anda selalu di DNS.
sumber
Seperti dijelaskan oleh jawaban lain di halaman ini, ada beberapa cara untuk mencapai fungsi serupa, tetapi:
Tidak, tidak ada file "per-pengguna" seperti
/etc/hosts
atau cara lain untuk mengesampingkan resolusi nama default sebagai pengguna yang tidak memiliki hak istimewa di GNU / Linux.sumber
Tampaknya jauh lebih mudah untuk menulis skrip yang mengetahui host mana yang aktif, dan kemudian menetapkan nama host untuk perintah rsync berikut. Sesuatu seperti ini
Ini belum diuji, dan memiliki asumsi, jadi Anda harus memodifikasinya agar sesuai.
sumber
rsync src olivia:/dst