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>