3859
Comment: minor fix
|
← Revision 16 as of 2020-03-25 12:47:10 ⇥
8484
renamed (+redirect) like English master page
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from it/HowTo/ChangeHostname | |
Line 2: | Line 3: |
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[HowTo/ChangeHostname|English]] - Italiano-~ | ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[HowTo/ChangeHostname|English]] - Italiano - [[ru/HowTo/ChangeHostname|Русский]] -~ |
Line 16: | Line 17: |
* ricaricare i file di configurazione <<BR>> <!> Ciò disconnetterà temporaneamente il sistema dalla rete (di solito {{{ssh}}} resiste alle disconnessioni brevi) {{{ | * ricaricare i file di configurazione <!> Ciò disconnetterà temporaneamente il sistema dalla rete (di solito {{{ssh}}} resiste alle disconnessioni brevi) <!> Ciò potrebbe disconnettere definitivamente il sistema dalla rete in quanto non è in grado di ripristinare le connessioni; in questo caso riavviare, non perché sia la via più semplice ma perché accerta che la configurazione sia corretta {{{ |
Line 23: | Line 27: |
=== systemd === Le versioni di Debian con installato systemd possono usare {{{hostnamectl set-hostname miamacchina}}}. Questo strumento dipende da dbus, perciò prima assicurarsi che sia installato. [[https://manpages.debian.org/testing/systemd/hostnamectl.1.en.html|Documentazione]] relativa. |
|
Line 30: | Line 37: |
=== CUPS === Modificare il file {{{/etc/printcap}}}; è necessario riavviare il servizio. |
|
Line 34: | Line 38: |
Vedere la domanda frequente su [[http://www.ejabberd.im/node/641|come cambiare il nome del dominio]] nel libro di ejabberd. La modifica temporanea del valore di {{{ERLANG_NODE}}} in {{{/etc/default/ejabberd}}} per includere il vecchio hostname può essere utilizzata per ristabilire la funzionalità dei servizi per l'esecuzione di un backup del database. |
Fare riferimento alla sezione [[https://docs.ejabberd.im/admin/guide/managing/#change-computer-hostname|Change Computer Hostname]] del sito web con la documentazione di ejabberd. |
Line 39: | Line 41: |
Modificare il valore di {{{hostname=}}} nel file {{{/etc/exim4/update-exim4.conf.conf}}}; è necessario riavviare il servizio. | Riconfigurare Exim (ciò modifica {{{/etc/exim4/update-exim4.conf.conf}}} e {{{/etc/mailname}}}): {{{ dpkg-reconfigure exim4-config }}} O modificare manualmente {{{/etc/exim4/update-exim4.conf.conf}}} ({{{hostname=}}}). È necessario riavviare il servizio. |
Line 42: | Line 48: |
Modificare il file {{{/etc/mailname}}}; non è necessario riavviare il servizio. | Riconfigurare Exim (vedere voce precedente) o modificare manualmente il file {{{/etc/mailname}}}; non è necessario riavviare il servizio. |
Line 47: | Line 53: |
=== OpenSSH server === Modificare i file {{{/etc/ssh/ssh_host_rsa_key.pub}}} e {{{/etc/ssh/ssh_host_dsa_key.pub}}} ({{{root@hostname alla fine}}}); è necessario riavviare il servizio. |
=== Server OpenSSH === Modificare i file {{{/etc/ssh/ssh_host_rsa_key.pub}}}, {{{/etc/ssh/ssh_host_dsa_key.pub}}}, {{{/etc/ssh/ssh_host_ed25519_key.pub}}} e {{{/etc/ssh/ssh_host_ecdsa_key.pub}}} ({{{root@hostname alla fine}}}); è necessario riavviare il servizio. === Certificato SSL auto-firmato === Ricreare il certificato auto-firmato creato dal pacchetto DebianPkg:ssl-cert usando il nome host attualmente configurato sul computer. {{{ make-ssl-cert generate-default-snakeoil --force-overwrite }}} È necessario riavviare i servizi che lo usano, ad esempio apache2. |
Line 57: | Line 70: |
=== fail2ban === fail2ban analizza i log per rilevare connessioni fallite e può bandire IP in caso di troppi fallimenti. Il nome host può essere nell'indirizzo email {{{sender}}} in {{{/etc/fail2ban/jail.local}}}. È necessario riavviare il servizio. === lvm === Logical Volume Manager (LVM, Gestore di volumi logici) è un mappatore di dispositivi che fornisce la gestione dei volumi logici. Il nome host appare nel file di configurazione dei backup: {{{/etc/lvm/backup/<Proprio gruppo volumi>}}}. === md === Su un sistema che usa md sul dispositivo root, l'avvio fallirà dopo l'esecuzione di {{{update-initramfs -u}}} se il nome host in {{{/etc/mdadm/mdadm.conf}}} non corrisponde al nome host nei superblocchi dei membri dell'array. Per cambiare il nome host nei superblocchi al prompt {{{(initramfs) _}}} (o dal supporto di ripristino): {{{ mdadm -A /dev/md/0 --update=name --name=new_hostname:0 /dev/sd[ab]1 # usare i PROPRI nomi di dispositivi }}} Per poter essere rinominato , il dispositivo md deve essere inattivo. Migliore fonte di informazioni di riferimento: https://lists.debian.org/debian-arm/2016/02/msg00072.html |
|
Line 69: | Line 104: |
[ -z $1 ] && usage vecchio=`hostname` |
[ "$1" ] || usage vecchio=$(hostname) |
Line 74: | Line 109: |
grep $vecchio /etc/ -rl 2>/dev/null | while read file do sed s:$vecchio:$nuovo:g $file > ${file}.tmp mv ${file}.tmp $file done |
grep "$vecchio" /etc/ -rl 2>/dev/null | while read file do sed "s:$vecchio:$nuovo:g" "$file" > "$file.tmp" mv -f "$file.tmp" "$file" done |
Line 83: | Line 120: |
=== Script invasivo migliorato === Questo script farà le stesso cose del precedente ma chiede con un dialogo in shell quali file si desiderino modificare prima di farlo. {{{#!highlight #!/bin/bash # # Recupero dei nomi host vecchio e nuovo OLD_HOSTNAME=$(hostname) NEW_HOSTNAME=$1 WHIPTAIL_TITLE="Cambio del nome host" WHIPTAIL_BACKTITLE="ShrimpDev <dev@csoellinger.at>" WHIPTAIL_TEXT="Piu' sotto e' presente una lista con caselle di spunta con tutti i file in cui e' stato trovato il vecchio nome host \"${OLD_HOSTNAME}\" all'interno di /etc\n\nControllare quali file devono essere aggiornati al nuovo nome host \"${NEW_HOSTNAME}\"" not_root() { echo "ERRORE: E' necessario essere root per eseguire questo script" exit 1 } usage() { echo "uso : $0 <nuovo nome host> [Optionale:--backup/Imposta la modalita' di backup] [Optionale:--debug/Imposta la modalita' di debug]" exit 1 } # Controlla se l'utente è root [ $EUID != 0 ] && not_root # Controlla se e' stato fornito almeno un parametro [ "$1" ] || usage [ "$1" == "--backup" ] && usage [ "$1" == "--debug" ] && usage DEBUG="NO" BACKUP="NO" if [ "$2" == "--debug" ] || [ "$3" == "--debug" ]; then DEBUG="YES" fi if [ "$2" == "--backup" ] || [ "$3" == "--backup" ]; then BACKUP="YES" fi [ "$DEBUG" == "YES" ] && echo "DEBUG (NESSUN FILE VERRA' CAMBIATO)" [ "$BACKUP" == "YES" ] && echo "MODALITA' BACKUP ATTIVATA" # Fail grep di tutti i possibili obiettivi TARGETS=($(grep "$OLD_HOSTNAME" /etc/ -rl)) let TARGETSLENGTH=${#TARGETS[@]} CHECKLIST=() for ((i=0; i<${#TARGETS[@]}; i++)); do CHECKLIST+=("${TARGETS[$i]}" "" "ON") done CHECKLIST_RESULT=$(whiptail --clear --fb --title "$WHIPTAIL_TITLE" --backtitle "$WHIPTAIL_BACKTITLE" --checklist "$WHIPTAIL_TEXT" 30 80 $TARGETSLENGTH "${CHECKLIST[@]}" 3>&2 2>&1 1>&3) CHECKLIST_RESULT=${CHECKLIST_RESULT//\"/} CHECKLIST_RESULT_ARR=(`echo $CHECKLIST_RESULT | tr ' ' '\n'`) clear for CHECKLIST_ITEM in "${CHECKLIST_RESULT_ARR[@]}"; do echo "sed \"s:${OLD_HOSTNAME}:${NEW_HOSTNAME}:g\" \"${CHECKLIST_ITEM}\" > \"${CHECKLIST_ITEM}.tmp\"" [ "$DEBUG" == "NO" ] && sed "s:$OLD_HOSTNAME:$NEW_HOSTNAME:g" "$CHECKLIST_ITEM" > "$CHECKLIST_ITEM.tmp" if [ "$BACKUP" == "YES" ]; then echo "cp \"${CHECKLIST_ITEM}\" \"${CHECKLIST_ITEM}.BCK\"" [ "$DEBUG" == "NO" ] && cp "$CHECKLIST_ITEM" "$CHECKLIST_ITEM.BCK" fi echo "mv -f \"${CHECKLIST_ITEM}.tmp\" \"${CHECKLIST_ITEM}\"" [ "$DEBUG" == "NO" ] && mv -f "$CHECKLIST_ITEM.tmp" "$CHECKLIST_ITEM" echo "" done exit 0 }}} |
|
Line 88: | Line 204: |
echo "uso: $0 nuovo_hostname" | echo "uso: $0 <nuovo nomehost>" |
Line 92: | Line 208: |
[ -z $1 ] && usage vecchio=`hostname` |
[ "$1" ] || usage vecchio=$(hostname) |
Line 117: | Line 233: |
* [[Howto/CloningASystem#UUIDs|Come clonare un sistema]] - system unique identifiers, to be changed when cloning a system. |
Translation(s): English - Italiano - Русский
Rinominare un computer
Questa pagina spiega come cambiare l'hostname di un sistema (cioè rinominare un computer o un server).
Sintesi: hostname(1) non è sufficiente.
Contents
Rete
Aggiornare /etc/hostname.
Aggiornare /etc/hosts in modo che gli indirizzi locali risolvano con il nuovo nome del sistema.
- Ricaricare la configurazione della rete; sono possibili due opzioni:
- ricaricare i file di configurazione
Ciò disconnetterà temporaneamente il sistema dalla rete (di solito ssh resiste alle disconnessioni brevi)
Ciò potrebbe disconnettere definitivamente il sistema dalla rete in quanto non è in grado di ripristinare le connessioni; in questo caso riavviare, non perché sia la via più semplice ma perché accerta che la configurazione sia corretta
invoke-rc.d hostname.sh start invoke-rc.d networking force-reload invoke-rc.d network-manager force-reload
ToDo: è utile ricaricare network-manager?
oppure il metodo facile: riavviare il sistema.
- ricaricare i file di configurazione
systemd
Le versioni di Debian con installato systemd possono usare hostnamectl set-hostname miamacchina. Questo strumento dipende da dbus, perciò prima assicurarsi che sia installato. Documentazione relativa.
Applicazioni specifiche
avahi
Avahi è utilizzato per pubblicare (annunciare) servizi locali; se si modifica /etc/avahi/* bisogna eseguire:
invoke-rc.d avahi-daemon force-reload
ejabberd
Fare riferimento alla sezione Change Computer Hostname del sito web con la documentazione di ejabberd.
Exim
Riconfigurare Exim (ciò modifica /etc/exim4/update-exim4.conf.conf e /etc/mailname):
dpkg-reconfigure exim4-config
O modificare manualmente /etc/exim4/update-exim4.conf.conf (hostname=). È necessario riavviare il servizio.
Mailname
Riconfigurare Exim (vedere voce precedente) o modificare manualmente il file /etc/mailname; non è necessario riavviare il servizio.
Message Of The Day
Modificare il file /etc/motd; non è necessario riavviare il servizio.
Server OpenSSH
Modificare i file /etc/ssh/ssh_host_rsa_key.pub, /etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_ed25519_key.pub e /etc/ssh/ssh_host_ecdsa_key.pub (root@hostname alla fine); è necessario riavviare il servizio.
Certificato SSL auto-firmato
Ricreare il certificato auto-firmato creato dal pacchetto ssl-cert usando il nome host attualmente configurato sul computer.
make-ssl-cert generate-default-snakeoil --force-overwrite
È necessario riavviare i servizi che lo usano, ad esempio apache2.
ssmtp
Ssmtp è un server SMTP leggero in sola uscita.
Modificare il valore di hostname= nel file /etc/ssmtp/ssmtp.conf; non è necessario riavviare il servizio.
sysklogd
Al fine di rendere visibile il nuovo hostname sul syslog è necessario riavviare il servizio sysklogd.
fail2ban
fail2ban analizza i log per rilevare connessioni fallite e può bandire IP in caso di troppi fallimenti.
Il nome host può essere nell'indirizzo email sender in /etc/fail2ban/jail.local. È necessario riavviare il servizio.
lvm
Logical Volume Manager (LVM, Gestore di volumi logici) è un mappatore di dispositivi che fornisce la gestione dei volumi logici.
Il nome host appare nel file di configurazione dei backup: /etc/lvm/backup/<Proprio gruppo volumi>.
md
Su un sistema che usa md sul dispositivo root, l'avvio fallirà dopo l'esecuzione di update-initramfs -u se il nome host in /etc/mdadm/mdadm.conf non corrisponde al nome host nei superblocchi dei membri dell'array.
Per cambiare il nome host nei superblocchi al prompt (initramfs) _ (o dal supporto di ripristino):
mdadm -A /dev/md/0 --update=name --name=new_hostname:0 /dev/sd[ab]1 # usare i PROPRI nomi di dispositivi
Per poter essere rinominato , il dispositivo md deve essere inattivo.
Migliore fonte di informazioni di riferimento: https://lists.debian.org/debian-arm/2016/02/msg00072.html
Idea di script per aiutare nel passaggio
Invasivo
Questo script è pericoloso. Bisogna controllare che tutti i file elencati da grep -rl "$vecchio" /etc debbano realmente essere modificati prima di eseguirlo:
È meglio fare un grep prima...
Script invasivo migliorato
Questo script farà le stesso cose del precedente ma chiede con un dialogo in shell quali file si desiderino modificare prima di farlo.
1 #!/bin/bash
2 #
3
4 # Recupero dei nomi host vecchio e nuovo
5 OLD_HOSTNAME=$(hostname)
6 NEW_HOSTNAME=$1
7
8 WHIPTAIL_TITLE="Cambio del nome host"
9 WHIPTAIL_BACKTITLE="ShrimpDev <dev@csoellinger.at>"
10 WHIPTAIL_TEXT="Piu' sotto e' presente una lista con caselle di spunta con tutti i file in cui e' stato trovato il vecchio nome host \"${OLD_HOSTNAME}\" all'interno di /etc\n\nControllare quali file devono essere aggiornati al nuovo nome host \"${NEW_HOSTNAME}\""
11
12 not_root() {
13 echo "ERRORE: E' necessario essere root per eseguire questo script"
14 exit 1
15 }
16
17 usage() {
18 echo "uso : $0 <nuovo nome host> [Optionale:--backup/Imposta la modalita' di backup] [Optionale:--debug/Imposta la modalita' di debug]"
19 exit 1
20 }
21
22 # Controlla se l'utente è root
23 [ $EUID != 0 ] && not_root
24
25 # Controlla se e' stato fornito almeno un parametro
26 [ "$1" ] || usage
27
28 [ "$1" == "--backup" ] && usage
29 [ "$1" == "--debug" ] && usage
30
31 DEBUG="NO"
32 BACKUP="NO"
33
34 if [ "$2" == "--debug" ] || [ "$3" == "--debug" ]; then
35 DEBUG="YES"
36 fi
37
38 if [ "$2" == "--backup" ] || [ "$3" == "--backup" ]; then
39 BACKUP="YES"
40 fi
41
42 [ "$DEBUG" == "YES" ] && echo "DEBUG (NESSUN FILE VERRA' CAMBIATO)"
43 [ "$BACKUP" == "YES" ] && echo "MODALITA' BACKUP ATTIVATA"
44
45 # Fail grep di tutti i possibili obiettivi
46 TARGETS=($(grep "$OLD_HOSTNAME" /etc/ -rl))
47 let TARGETSLENGTH=${#TARGETS[@]}
48
49 CHECKLIST=()
50 for ((i=0; i<${#TARGETS[@]}; i++)); do
51 CHECKLIST+=("${TARGETS[$i]}" "" "ON")
52 done
53
54 CHECKLIST_RESULT=$(whiptail --clear --fb --title "$WHIPTAIL_TITLE" --backtitle "$WHIPTAIL_BACKTITLE" --checklist "$WHIPTAIL_TEXT" 30 80 $TARGETSLENGTH "${CHECKLIST[@]}" 3>&2 2>&1 1>&3)
55 CHECKLIST_RESULT=${CHECKLIST_RESULT//\"/}
56 CHECKLIST_RESULT_ARR=(`echo $CHECKLIST_RESULT | tr ' ' '\n'`)
57
58 clear
59
60 for CHECKLIST_ITEM in "${CHECKLIST_RESULT_ARR[@]}"; do
61 echo "sed \"s:${OLD_HOSTNAME}:${NEW_HOSTNAME}:g\" \"${CHECKLIST_ITEM}\" > \"${CHECKLIST_ITEM}.tmp\""
62 [ "$DEBUG" == "NO" ] && sed "s:$OLD_HOSTNAME:$NEW_HOSTNAME:g" "$CHECKLIST_ITEM" > "$CHECKLIST_ITEM.tmp"
63
64 if [ "$BACKUP" == "YES" ]; then
65 echo "cp \"${CHECKLIST_ITEM}\" \"${CHECKLIST_ITEM}.BCK\""
66 [ "$DEBUG" == "NO" ] && cp "$CHECKLIST_ITEM" "$CHECKLIST_ITEM.BCK"
67 fi
68
69 echo "mv -f \"${CHECKLIST_ITEM}.tmp\" \"${CHECKLIST_ITEM}\""
70 [ "$DEBUG" == "NO" ] && mv -f "$CHECKLIST_ITEM.tmp" "$CHECKLIST_ITEM"
71
72 echo ""
73 done
74
75 exit 0
Non così invasivo
#!/bin/bash # usage() { echo "uso: $0 <nuovo nomehost>" exit 1 } [ "$1" ] || usage vecchio=$(hostname) nuovo=$1 for file in \ /etc/exim4/update-exim4.conf.conf \ /etc/printcap \ /etc/hostname \ /etc/hosts \ /etc/ssh/ssh_host_rsa_key.pub \ /etc/ssh/ssh_host_dsa_key.pub \ /etc/motd \ /etc/ssmtp/ssmtp.conf do [ -f $file ] && sed -i.old -e "s:$vecchio:$nuovo:g" $file done
È meglio fare un grep prima...