Bug 614694
Summary: | ksh users can't see output from scripts in /etc/profile.d/ | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | Bryan Mason <bmason> | ||||
Component: | setup | Assignee: | Ondrej Vasik <ovasik> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | qe-baseos-daemons | ||||
Severity: | high | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 4.8 | CC: | azelinka, bkahn, james.brown, jwest, mhlavink, qbarnes, tao | ||||
Target Milestone: | rc | Keywords: | Patch, ZStream | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: |
When logging in to an interactive login shell, the contents of the /etc/profile script are executed in order to set up an initial environment. Messages which should have been displayed to the user upon logging in to the Korn shell (ksh) were suppressed due to an internal test to determine whether the shell is a login shell that relied upon the value of the PS1 environment variable having already been set before /etc/profile was executed. However, this environment variable is set in the Korn shell only after /etc/profile is executed, which led to messages never being displayed to Korn shell users. This update provides an alternative test that does not rely on the PS1 variable being set before /etc/profile execution, with the result that messages are properly displayed to users of the Korn shell upon login.
|
Story Points: | --- | ||||
Clone Of: | |||||||
: | 616116 (view as bug list) | Environment: | |||||
Last Closed: | 2012-06-14 20:55:37 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 616116, 616117, 616418 | ||||||
Attachments: |
|
Description
Bryan Mason
2010-07-15 01:52:55 UTC
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: When logging in to an interactive login shell, the contents of the /etc/profile script are executed in order to set up an initial environment. Messages which should have been displayed to the user upon logging in to the Korn shell (ksh) were suppressed due to an internal test to determine whether the shell is a login shell that relied upon the value of the PS1 environment variable having already been set before /etc/profile was executed. However, this environment variable is set in the Korn shell only after /etc/profile is executed, which led to messages never being displayed to Korn shell users. This update provides an alternative test that does not rely on the PS1 variable being set before /etc/profile execution, with the result that messages are properly displayed to users of the Korn shell upon login. The recommended way to check for interactivity of the shell is to test $- for the "i" flag. I attached a patch that works with all the Bourne-based shells I could check: ash, bsh, ksh, pdksh, sh, and bash. I think that's the entire list that's included with a RHEL distribution. (Did I miss any?) It works fine with all of those. I tested the patch on RHEL4 and RHEL6b2. However, I didn't have a machine that had non-RHEL Bourne-based shells such as the original Bourne shell. For the test to work, the ksh88 (ksh86?) "$-" variable has to be set and the "%%" operator has to be available. I also noticed another bug and fixed it as well. The "$i" variable should be double quoted. If the file in /etc/profile.d has a shell metacharacter (e.g.: "hi there.sh"), it will needlessly fail. The double quotes fix that. Created attachment 442453 [details]
Proposed patch.
Thanks for proposal, similar but different approach was already used in Fedora Rawhide to fix the issue - see https://fedorahosted.org/setup/changeset?old_path=profile&old=3b679b0f62a4a256db5fe66367ce85fe9baad90b&new_path=profile&new=3b679b0f62a4a256db5fe66367ce85fe9baad90b . It should handle the issue as well. You are right about the missing doublequoting of the sourced file, good catch - thanks. |