Date: Fri, 14 Jun 2013 21:22:54 +0000 From: "Teske, Devin" <Devin.Teske@fisglobal.com> To: "Mike." <the.lists@mgm51.com> Cc: Devin Teske <dteske@freebsd.org>, Polytropon <freebsd@edvax.de>, FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: Setting a locale globally Message-ID: <13CA24D6AB415D428143D44749F57D7201F82008@ltcfiswmsgmb21> In-Reply-To: <20130614225107.8a39e8e3.freebsd@edvax.de> References: <201306141213340281.009F8EE9@smtp.24cl.home> <20130614211207.d2d105b8.freebsd@edvax.de> <201306141554060140.016975D2@smtp.24cl.home> <20130614225107.8a39e8e3.freebsd@edvax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 14, 2013, at 1:51 PM, Polytropon wrote:
> On Fri, 14 Jun 2013 15:54:06 -0400, Mike. wrote:
>> On 6/14/2013 at 9:12 PM Polytropon wrote:
>>=20
>> |On Fri, 14 Jun 2013 12:13:34 -0400, Mike. wrote:
>> |> I would like to set the locale of my 9.1 server to
>> |>=20
>> |> LANG=3D"en_US.ISO8859-1"
>> |>=20
>> |>=20
>> |> globally, i.e., put the locale entry in one file, and then have the
>> |> locale propagate as I go into other shells and run various scripts.
>> |
>> |You can add this to /etc/csh.cshrc as it will be inherited by
>> |all interactive shells (login shells), unless of course they
>> |override it with ~/.cshrc:
>> |
>> | setenv LANG en_US.ISO8859-1
>>=20
>> That works for the login shell, but when I su to another user (e.g.,
>> root), LANG is no longer in the environment.
>=20
> That depends on _how_ you su. For example, if you use su -m,
> the environment will not be modified, but the UID 0 is gained.
> See "man su" for details.
>=20
> But you are correct in terms of what I mentioned: If some
> user-configuration changes or unsets $LANG, it will be gone,
> and it may even be possible that the setting will not be
> transmitted properly to a different shell ("inheriting
> environment"), especially if the shell is not the default
> login shell, but instead bash or zsh (when the setting is
> being made for csh only).
>=20
>=20
>=20
>> |It's also possible to add it to /etc/profile and even make an
>> |addition to /etc/login.conf's "default" setting:
>> |
>> | default:\
>> | :setenv=3DLANG=3Den_US.ISO8859-1:...
>>=20
>> That works for the login shell, but when I su to another user (e.g.,
>> root), LANG is no longer in the environment.
>=20
> Try su -m.=20
>=20
> Anyway, login.conf should be the better solution compared
> to the csh approach illustrated above. It should work
> independently from the kind of shell.
>=20
Also, you can get the sudo(8) utility to preserve LANG by adding it to the =
env_keep list in /usr/local/etc/sudoers
For example:
Step 1: (as root) visudo
Step 2: Find=85 (the default configuration)
## Locale settings
# Defaults env_keep +=3D "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
Step 3: Un-comment the second line (of the two lines shown above).
Now whenever you use sudo(8) to execute a command, LANG (and a few others, =
like LC_ALL) are preserved.
--=20
Devin
_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?13CA24D6AB415D428143D44749F57D7201F82008>
