>> I'm going to try it too. > > Ha! Beat you to it! :-) :)
I'd forgotten about this hostname and postfix business until your email arrived last Monday but I haven't had the time to do my (far less thorough) test. On Sun, Feb 19, 2012 at 4:46 PM, Bob Proulx <b...@proulx.com> wrote: > Tom H wrote: >> >> Bob Proulx wrote: >> AFAIR, "myhostname" is "/etc/hostname" > > Not quite. For Debian's Postfix configuration the postfix myhostname > variable is set to the fqdn in /etc/postfix/main.cf. Postfix requires > myhostname to be the fqdn. The default value for Postfix is to use > the value of `hostname`. However in Debian the default hostname is > the short hostname without the domain name. Therefore Postfix's > default of `hostname` isn't suitable and must be supplemented by > setting the FQDN explicitly. > > Well... What I said wasn't quite true. It is the summary of the > overall result. What Postfix actually does is somewhat circular. > Here are the official docs and a somewhat longer explanation. > > mydomain (default: see "postconf -d" output) > > The internet domain name of this mail system. The default is to > use $myhostname minus the first component, or "localdomain" > (Postfix 2.3 and later). $mydomain is used as a default value for > many other configuration parameters. > > myhostname (default: see "postconf -d" output) > > The internet hostname of this mail system. The default is to use > the fully-qualified domain name (FQDN) from gethostname(), or to > use the non-FQDN result from gethostname() and append > ".$mydomain". $myhostname is used as a default value for many > other configuration parameters. > > If not set then it sets mydomain from the fqdn obtained from hostname > or to localdomain if that isn't a fqdn. On Debian with a short > hostname set that means mydomain always defaults to localdomain. > > If not set then it sets myhostname from the non-fqdn obtained from > hostname and appends mydomain. On Debian with a short hostname that > means myhostname always defaults to somename.localdomain. And if the > hostname was chosen to be localhost then it would default to > localhost.localdomain which is one consistent and desirable strategy > for thin client systems without a network and without a network domain > name. > > [Postfix was born on systems where the hostname was normally set to > the fqdn. In that environment the above makes a lot of sense. On > Debian with the short hostname it means that myhostname should always > be set to provide that supplemental domain name information.] I set "/etc/hostname" to the fqdn so my memory was correct but my setup non-standard. Apologies for the misinformation! >> and "myorigin" is "/etc/mailname". > > Yes. If an MTA has been installed. That file does not exist if no > MTA has been installed. > >> What I find somewhat weird is that when you install Debian, >> "/etc/hostname" and "/etc/mailname" are the same. > > They are only the same if you choose a fqdn for the hostname. By your > comment I read that it implies that you do choose a fqdn for your > hostnames? (And that you always choose either "Standard system" or > otherwise install an MTA?) That is why they would be the same for > you. If you choose a short name for the hostname, which is the worded > with recommendation from the debian-installer and so most people > probably choose it, then they are different. /etc/hostname will be > the short name and /etc/mailname will be the fqdn. I usually use preseed with d-i netcfg/get_hostname string box d-i netcfg/get_domain string company.internal but then overwrite "/etc/hostname" with the fqdn in "late_command" and install various packages starting with tasksel tasksel/first multiselect standard I'll have to try d-i netcfg/get_hostname string box.company.internal >> What I find somewhat weird is that when you install Debian, >> "/etc/hostname" and "/etc/mailname" are the same. >> So if it's "box.company.internal" and bob runs "mail tom", bob's >> address'll be "bob@box.company.internal". > > Yes. Seems reasonable to me. That is exactly what I want. It is > traditional BSD/Unix behavior. But the address should be "bob@company.internal"! >> There was a debian-devel thread where there was an argument about >> whether "/etc/mailname" should be "box.company.internal" or >> "company.internal". > > Oh! Well... If you want address masquarading then I think that > should be an explicit choice. I wouldn't default to address > masquarading by default. That would be wrong for many environments. > It assumes that an environment has a central mail relay to handle mail > for the entire domain and it routes all mail through that central mail > relay. But in a simple environment with a few machines (or several > thousand) that wants email to route directly from machine to machine > then that is the wrong configuration. I have environments both ways. > It is easy enough to set up address masquarading if desired. > > Either set the local domain in /etc/mailname for an MTA agnositc > solution OR for postfix explicitly set: > > masquerade_domains = example.com > masquerade_exceptions = root > > It would be perfectly nice if the package installation dialog were to > ask the user if they want to set up address masquerading and to do it > automatically. But for anyone who wants it the configuration is very > easily accomplished with one of the above. I prefer to leave > /etc/mailname along and to configure postfix explicitly. Then I can > control over masquerade_classes and local_header_rewrite_clients too. IIUC, what you mean by masquerading is that if you send an email from "box.company.internal", the email address is "bob@company.internal" rather than "bob@box.company.internal". I've never worked in or set up an environment where the sender's address is "bob@box.company.internal". But this explains why you didn't think "bob@box.company.internal" above was wrong. Anyway, I don't think that their argument was about masquerading; it was about what the canonical form of "/etc/mailname" should be. >> If you you do a regular install or don't use a preseed that installs >> postfix, you'll have exim4 by default. > > Yes. >> >> You can then change "/etc/hostname" > > No. Changing /etc/hostname has no effect for postfix. That is only > used by the /etc/init.d/hostname.sh script. The postfix postinst > script does: > > mailname=$(hostname --fqdn 2>/dev/null || echo localdomain) > > And that uses the hostname command coupled with DNS to do a lookup of > the hostname to get an IP address and then a reverse lookup of that to > get a name associated with it. I disapprove of that process because > it doesn't work in non-typical configurations such as machines with > multiple network cards and with multiple IP addresses bridging > different domains. But that is what it does. I hadn't thought of looking at the postinst script. I wish that I hadn't run "hostname $(cat /etc/hostname)" after changing "/etc/hostname" because I'd have noticed that the hostname hadn't been taken into account by the postfix install... "dpkg-reconfigure postfix" doesn't change "myhostname" either with a prompt for a hostname or through a "hostname" call so if you change the box's hostname, you have to edit "/etc/postfix.main.cf" by hand. >> and "/etc/mailname", install postfix, and see what gets pulled in as >> "myhostname" into "/etc/postfix/main.cf". > > Changing mailname doesn't really have an effect on the > /etc/postfix/main.cf configuration. Because there is a Debian > specific patch to in enable reading myorigin from a file. So it has > an effect only through the patched code that pulls in the value > dynamically when postfix starts from /etc/mailname instead of needing > to specify myorigin in the main.cf file explicitly. I don't follow. Changing "/etc/mailname" changes "myorigin" because of that patch. (I usually change "myorigin = /etc/mailname" to its actual value on my boxes...) Anyway, I was only suggesting the "mailname" change because on my boxes "hostname" and "mailname" are the same and I just wanted to ensure that they were different to trace what info the installer is picked up from where by the installer. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/CAOdo=Sz9nfryUjT+dJ5AXj9K6FGdp=jtedc2hkfbnyxgmly...@mail.gmail.com