Red Hat Bugzilla – Bug 141312
zsh doesn't source /etc/profile.d/*.sh
Last modified: 2007-11-30 17:07:05 EST
zsh is one of the only shells we ship that doesn't source /etc/profile.d.
Here's a patch for zsh-4.0.7-1:
--- /etc/zprofile.old 2004-11-30 10:55:40.000000000 +0000
+++ /etc/zprofile 2004-11-30 10:56:03.000000000 +0000
@@ -7,3 +7,10 @@
+for i in /etc/profile.d/*.sh ; do
+ if [ -r "$i" ]; then
+ . $i
Looks to me like all we need to do is source /etc/profile; this itself
sources /etc/profile.d/*, no?
# tail -n 7 /etc/profile
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
Looks like it should be enough indeed.
Actually, the default /etc/skel/.zshrc already sources /etc/profile.d
Did this not work for the customer?
The customer didn't have a ~/.zshrc. I can see a discrepancy in that
/etc/profile.d is sourced by the system-wide configuration file when
using bash (/etc/profile) but by the user-wide config file for zsh.
Any way to change this?
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.