Bug 1573208 - PATH envvariable incorrectly build
Summary: PATH envvariable incorrectly build
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: systemd
Version: 29
Hardware: All
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: systemd-maint
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-04-30 13:37 UTC by customercare
Modified: 2019-11-21 18:51 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-11-21 18:51:24 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description customercare 2018-04-30 13:37:16 UTC
Description of problem:

the PATH envvar contains local bin override paths, but the PATH envvar is incorrectly build to archive it:

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/sbin:/home/marius/.local/bin:/home/marius/bin:/usr/sbin/:/usr/sbin

1. /usr/lib64/qt-3.3/bin
2. /usr/local/bin
3. /usr/local/sbin
4. /usr/bin
5. /usr/sbin
6. /usr/sbin
7. /home/marius/.local/bin
8. /home/marius/bin
9. /usr/sbin/
10. /usr/sbin

a) as you can see,we have double entries .. completly obsolete.

b) position 7+8 must be infront of any other path segements, otherwise they don't work as overrides


O== Actual results:

[marius@eve ~]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/sbin:/home/marius/.local/bin:/home/marius/bin:/usr/sbin/:/usr/sbin
[marius@eve ~]$ which firefox
/usr/bin/firefox
[marius@eve ~]$ cat bin/firefox
#!/bin/bash 

echo test
[marius@eve ~]$ bin/firefox
test
[marius@eve ~]$ export PATH="/home/marius/bin:$PATH"
[marius@eve ~]$ which firefox
~/bin/firefox
[marius@eve ~]$ firefox
test
[marius@eve ~]$ 



O== Expected results:

# echo $PATH
/home/marius/.local/bin:/home/marius/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin

and this construct should not be "bash only", it needs to be systemwide, so that GDM can inherit it to it's childs. 

O== Why ? 

If a user wants to use it's firefox i.e. ESR52 over the systemwide installed firefox quantum, he can't without explizit and absolute path usage. If he links his firefox as firefox into ~/bin , all programs will call the locally, userbased firefox, instead of the systemwide one. 

If such an override isn't intended, what is the use of a ~/bin directory besides some selfmade scripts ?

Comment 1 Jan Kurik 2018-08-14 10:30:26 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 29 development cycle.
Changing version to '29'.

Comment 2 Ben Cotton 2019-10-31 19:14:41 UTC
This message is a reminder that Fedora 29 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 29 on 2019-11-26.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '29'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 29 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Zbigniew Jędrzejewski-Szmek 2019-11-21 18:51:24 UTC
I think this is OK in current releases.
https://fedoraproject.org/wiki/Changes/UserPathPrioritization moved
~/.local/bin and ~/bin to front of the path in the default .bashrc in /etc/skel.
So new accounts get this change:

$ echo $PATH
/home/fedora/.local/bin:/home/fedora/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

If is not a big issue if some parts of the path are duplicated. Some components like
to set their custom path, for example sshd sessions embeds it own default path:
$ strings /usr/sbin/sshd|grep /sbin
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin


Note You need to log in before you can comment on or make changes to this bug.