# domainname (none), wie ändern

## Netcat

Gentoo hat mich nach einem Update aufgefordert den Domainname nicht mehr unter /etc/dnsdomainname aufzurufen, sondern unter /etc/conf.d/domainname.

Das habe ich auch gemacht und nun kommt die Meldung, dass der Domanname sauber auch den Namen gesetzt wird. Wenn ich nun aber mit dem Befehl domainname den Domanname abfrage komme nur (none) heraus. Was habe ich falsch gemacht.?

----------

## Vortex375

Ein erster Schritt wäre, dass du erstmal den Inhalt deiner /etc/conf.d/domainname postest, sonst wird es schwierig werden zu erraten, was du falsch gemacht hast.  :Wink: 

----------

## Ezekeel

der befehl war mir bisher nicht geläufig aber wieso machst du nicht einfach das was in der manpage auftaucht?!?

 *Quote:*   

> 
> 
> SET NAME
> 
>        When called with one argument or with the --file option,  the  commands
> ...

 

----------

## toralf

@Netcat:

Mach mal ein 

```
cat /etc/init.d/domainname
```

und Du siehst, daß Du offensichtlich nur die Domain in die Datei resolv.conf eintaragen läßt. jedoch den NIS Eintrag nicht gestzt haben wirst.

----------

## Netcat

@Vortex375

```

# /etc/conf.d/domainname

# When setting up resolv.conf, what should take precedence?

#  0 = let dhcp/whatever override DNSDOMAIN

#  1 = override dhcp/whatever with DNSDOMAIN

OVERRIDE=1

# To have a proper FQDN, you need to setup /etc/hosts and /etc/resolv.conf

# (domain entry in /etc/resolv.conf and FQDN in /etc/hosts).

#

# DNSDOMAIN merely sets the domain entry in /etc/resolv.conf, see

# the resolv.conf(5) manpage for more info.

DNSDOMAIN="olymp"

# For information on setting up NIS, please see:

#   http://www.linux-nis.org/nis-howto/HOWTO/

NISDOMAIN="olymp"

```

Ich sehe darin kein Fehler, auch wenn ich des PC aufstarte werden der DNS Name auf olymp gesetzte. Wenn ich jedoch auch eine neue Shell gehe wir mir nur der Host Name angezeigt. Der Domainname wird mit (none) angegeben.

@Ezekeel

Der Befehl ist schön und gut, aber es sollte automatisch passieren. Dafür gibt es nach meiner Meinung auch das /etc/init.d/domainname skript. Leider will das Ding bei mir nicht. Ich habe was vergessen, aber ich finde nicht heraus was es ist.

----------

## blice

bei mir klappts auch nicht 

```

local # /etc/init.d/domainname restart

 * WARNING:  you are stopping a boot service.

 * You should stop using /etc/dnsdomainname and use /etc/conf.d/domainname

 * Setting DNS domainname to arbeitsgruppe ...                                                           [ ok ]

local # domainname

(none)

local # cat /etc/conf.d/domainname

# /etc/conf.d/domainname

# When setting up resolv.conf, what should take precedence?

# If you wish to always override DHCP/whatever, set this to 1.

OVERRIDE=1

# To have a proper FQDN, you need to setup /etc/hosts and /etc/resolv.conf

# properly (domain entry in /etc/resolv.conf, and FQDN in /etc/hosts).

#

DNSDOMAIN="bodos"

# This only set what /bin/hostname returns.  If you need to setup NIS, meaning

# what /bin/domainname returns, please see:

#

#   http://www.linux-nis.org/nis-howto/HOWTO/

#

#NISDOMAIN=""

local # cat /etc/conf.d/hostname

# /etc/conf.d/hostname

# Set to the hostname of this machine

HOSTNAME="bodo06"

                           

```

Wenn Jemand das hinkriegt , wäre auch ich dankbar..

----------

## Netcat

Die Variable NISDOMAIN unter /etc/conf.d/domainname hat etwas gebracht. Wenn ich nun den Befehl domainname aufrufe bekomme ich den richtigen Namen.

Aber auch wenn hier der richtige Name steht. Ich werde in einem neuen Terminal immer noch mit

```
This is athene.(none) (Linux x86_64 2.6.15-gentoo-r7) 19:02:26
```

begrüsst. Wo wird diese Varianle vor (none) gesetzt.

@blice

Hast du die Datei /etc/dnsdomainname gelöscht?

----------

## blice

ich hab die alten dateien /etc/hostname /etc/dnsdomainname /etc/domainname noch drinne

aber stimmt, wenn nisdomainname aktiviere gibt domainname schonmal was aus .. mal sehen was bei einem reboot passiert (welcher sich noch hinziehen kann  :Wink:   )

----------

## slick

 *Netcat wrote:*   

> 
> 
> ```
> This is athene.(none) (Linux x86_64 2.6.15-gentoo-r7) 19:02:26
> ```
> ...

 

Sowas kommt im Regelfall eigentlich wenn der Hostname nicht aufgelöst werden kann. Eintragen in die /etc/hosts in folgendem Format sollte helfen:

```
ip  hostname.domain  hostname
```

----------

## toralf

 *Netcat wrote:*   

>  Wo wird diese Varianle vor (none) gesetzt.

 Wo, weiß ich nicht, aber wann, nämlich im init-Prozeß, ein Reboot tut also gut  :Smile: 

----------

## STiGMaTa_ch

 *Netcat wrote:*   

> [...] domainname den Domanname abfrage komme nur (none) heraus. Was habe ich falsch gemacht.?

 

Du hast die Manpage nicht gelesen  :Wink: 

 *man domainname wrote:*   

> 
> 
> domainname - show or set the system's NIS/YP domain name
> 
> dnsdomainname - show the system's DNS domain name

 

Alles klar? Wenn du 

```
dnsdomainname
```

 eingibst, erhältst du was du willst.

Lieber Gruss

STiGMaTa

----------

## korz

Das Problem hatte ich auch. Gelöst habe ich es, indem ich den Namen des Computers in die /etc/hosts eingetragen habe:  *Quote:*   

> 192.168.0.1         computername.domain computername

 

Zur Not kann man auch die /etc/issue editieren. Zum Beispiel lautet meine /etc/issue:  *Quote:*   

> This is \n.\O running on an \m. Users: \u   \t

 

Das sieht dann hinterher so aus:  *Quote:*   

> This is computername.domainname running on an i686. Users: Anzahl der eingeloggten User Uhrzeit

 

Das \O bedeutet, daß hier der DNS-Domainname eingesetzt werden soll, er muß also irgendwo ausgelesen werden. Ich vermute, als Quelle des DNS-Domainnamen dient die /etc/hosts. Nachdem ich den Computernamen samt DNS Domainname dort eingetragen hatte, hat es bei nämlich funktioniert.

Noch zur Info: Durch ein \o wird der NIS Name an dieser Stelle eingesetzt.

Wenn man also anstelle des \O den gewünschten Domainnamen einträgt, dann wird dieser hinterher auch angezeigt. Letzteres ist natürlich nur ein Workaround.

----------

## schmidicom

Ich weis zwar nicht ob dieses Post noch aktuell ist (noch kein solved im Titel) aber ich hatte das selbe problem das er mir mit /etc/init.d/domainname den DNS-Domainnamen nicht übernommen hatte. Bei mir hat folgende lösung geklapt:

In der Datei /etc/conf.d/hostname den ganzen FQDN angeben und nicht nur den hostnamen:

```
# /etc/conf.d/hostname

# Set to the hostname of this machine

HOSTNAME="hostname.domainname.local"
```

es muss nicht .local am schluss haben aber rein vom sinn her wäre es richtig so. (FQDN eben)

Dann muss hostname nur noch zum runlevel boot hinzugefügt werden, domainname braucht es nun nicht mehr.

Sobald es so gemacht ist gibt der befehl dnsdomainname mit den entsprechenden optionen auch die richtigen namen aus:

```
dnsdomainname -s        'Gibt nur den Hostname wieder

dnsdomainname -d        'Gibt den DNS-Domainanmen wieder

dnsdomainname -f        'Gibt den ganzen FQDN wieder
```

Allerdings sollte dan auch die /etc/issue angepasst werden da es da wohl nicht ganz richtig übernommen wird aber das wichtigste ist ja das das System weis wer er ist. Auch darf die /etc/hosts nicht vergessen werden.

Ich habe es bei mir auch so:

```
ip            hostname.domainname.local   hostname   localhost
```

Wenn sich jetzt einer fragt wie ich auf diese lösung gekommen bin, den FQDN in der Datei /etc/conf.d/hostname anzugeben. Ganz einfach:

```
man resolv.conf
```

Dort fand ich heraus das er den DNS-Domainname vom Hostnamen bekommt wenn es durch /etc/init.d/domainname nicht angegeben wurde

----------

## Polynomial-C

Hi,

ah, über exakt den selben Fehler bin ich schon vor über einem Jahr gestolpert.

Irgendwann habe ich das Ganze dann so gelöst:

```
[ "$(cat /proc/sys/kernel/domainname)" == "(none)" -o "$(cat /proc/sys/kernel/domainname)" == "#" ] \

        && grep ^DNSDOMAIN /etc/conf.d/domainname | sed -e 's/DNSDOMAIN=//' -e 's/\"//g' > /proc/sys/kernel/domainname
```

Das in die Datei /etc/conf.d/local.start und alles ist wieder schön  :Wink: 

Grüße

Poly-C

----------

