Post here if you are a new Porteus member and you're looking for some help.
-
Blaze
- DEV Team
- Posts: 3885
- Joined: 28 Dec 2010, 11:31
- Distribution: ⟰ Porteus current ☯ all DEs ☯
- Location: ☭ Russian Federation, Lipetsk region, Dankov
-
Contact:
Post#1
by Blaze » 03 Sep 2017, 15:31
Anybody knows how to change $PATH with saving a new $PATH after reboot?
I need to change $PATH for root user (
for this app), like this:
Code: Select all
root@porteus:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:~# export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
root@porteus:~# echo $PATH
/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:~#
but after reboot or after closing the terminal window my $PATH is set by default
Code: Select all
root@porteus:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:~#
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16
Blaze
-
fanthom
- Moderator Team
- Posts: 5667
- Joined: 28 Dec 2010, 02:42
- Distribution: Porteus Kiosk
- Location: Poland
-
Contact:
Post#2
by fanthom » 03 Sep 2017, 17:19
You need to edit /etc/profile and save somewhere (rootcopy, module, changes, etc):
Code: Select all
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts"
# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in
# the $PATH. Some means of connection don't add these by default (sshd comes
# to mind).
if [ "`id -u`" = "0" ]; then
echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
if [ ! $? = 0 ]; then
PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
fi
fi
Please add [Solved] to your thread title if the solution was found.
fanthom
-
Blaze
- DEV Team
- Posts: 3885
- Joined: 28 Dec 2010, 11:31
- Distribution: ⟰ Porteus current ☯ all DEs ☯
- Location: ☭ Russian Federation, Lipetsk region, Dankov
-
Contact:
Post#3
by Blaze » 04 Sep 2017, 16:52
Hi
fanthom.
I added this code:
Code: Select all
if [ "$USER" != "root" ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
to /etc/profile after your code. After reboot it changed $PATH for guest, but I need to do this only for root user
Code: Select all
guest@porteus:~$ echo $PATH
/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts
guest@porteus:~$ su
root@porteus:/home/guest# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:/home/guest#
any suggestion are welcome. Thanks.
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16
Blaze
-
Ed_P
- Contributor
- Posts: 8368
- Joined: 06 Feb 2013, 22:12
- Distribution: Cinnamon 5.01 ISO
- Location: Western NY, USA
Post#4
by Ed_P » 04 Sep 2017, 17:07
Blaze wrote: ↑04 Sep 2017, 16:52
I added this code:
Code: Select all
if [ "$USER" != "root" ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
Try
Code: Select all
if [ "$USER" == "root" ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
Ed
Ed_P
-
Blaze
- DEV Team
- Posts: 3885
- Joined: 28 Dec 2010, 11:31
- Distribution: ⟰ Porteus current ☯ all DEs ☯
- Location: ☭ Russian Federation, Lipetsk region, Dankov
-
Contact:
Post#5
by Blaze » 04 Sep 2017, 18:36
Hi
Ed_P.
No result for both guest and root users
Code: Select all
guest@porteus:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts
guest@porteus:~$ su
Пароль:
root@porteus:/home/guest# cd
root@porteus:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:~#
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16
Blaze
-
Ed_P
- Contributor
- Posts: 8368
- Joined: 06 Feb 2013, 22:12
- Distribution: Cinnamon 5.01 ISO
- Location: Western NY, USA
Post#6
by Ed_P » 04 Sep 2017, 19:08
Ok this is what I normally use to check for a non-root user: (
from Re: Script help (Post by brokenman #20035))
So I think you should try:
This may work also:
but I haven't tested.
Before your "if" put these in your script:
Code: Select all
echo USER=$USER
echo whoami=`whoami`
echo UID=$UID
read
Press Enter after reviewing the display.
-update-
FYI
Code: Select all
guest@porteus:~$ echo $USER
guest
guest@porteus:~$ echo $UID
1000
guest@porteus:~$ echo `whoami`
guest
guest@porteus:~$ su
Password:
root@porteus:/home/guest# echo $USER
root
root@porteus:/home/guest# echo $UID
0
root@porteus:/home/guest# echo `whoami`
root
root@porteus:/home/guest# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/lib64/java/bin:/usr/lib64/qt/bin
root@porteus:/home/guest# exit
exit
guest@porteus:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts:/usr/lib64/java/bin:/usr/lib64/qt/bin:/usr/lib64/java/bin:/usr/lib64/qt/bin:/usr/lib64/java/bin:/usr/lib64/qt/bin
guest@porteus:~$
Ed
Ed_P
-
Blaze
- DEV Team
- Posts: 3885
- Joined: 28 Dec 2010, 11:31
- Distribution: ⟰ Porteus current ☯ all DEs ☯
- Location: ☭ Russian Federation, Lipetsk region, Dankov
-
Contact:
Post#7
by Blaze » 05 Sep 2017, 17:56
With these lines
Code: Select all
if [ `whoami` != "root" ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
if [ `whoami` == "root" ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
if [ "$UID" -eq 0 ]; then
export PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH"
fi
Code: Select all
guest@porteus:~$ echo $PATH
/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts
guest@porteus:~$ su
Пароль:
root@porteus:/home/guest# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
root@porteus:/home/guest#
Ed_P wrote: ↑04 Sep 2017, 19:08
Before your "if" put these in your script:
echo USER=$USER
echo whoami=`whoami`
echo UID=$UID
read
Press Enter after reviewing the display.
This is freezes boot up and Xorg does not started.
I logged as root and via vi removed these lines.
Now with Xorg all ok.
-update-
I found it in /etc/login.defs
Code: Select all
#
# REQUIRED The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
ENV_PATH PATH=/usr/local/bin:/bin:/usr/bin
NOTE.
for root user need to tweak /etc/login.defs
Code: Select all
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
for guest user need to tweak /etc/profile
Code: Select all
# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/porteus-scripts"
A new issue. How I can add output of this variable $(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')
Code: Select all
root@porteus:~# echo $(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')
/opt/cprocsp/bin/amd64:/opt/cprocsp/sbin/amd64:
root@porteus:~#
to
ENV_SUPATH PATH=HERE/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16
Blaze
-
Ed_P
- Contributor
- Posts: 8368
- Joined: 06 Feb 2013, 22:12
- Distribution: Cinnamon 5.01 ISO
- Location: Western NY, USA
Post#8
by Ed_P » 05 Sep 2017, 22:52
I would think this would be worth a shot.
Code: Select all
sudo echo "ENV_SUPATH PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH >> /etc/login.defs
Or not.
Code: Select all
guest@porteus:~$ sudo echo "ENV_SUPATH PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH >> /etc/login.defs
/bin/ls: cannot access '/opt/cprocsp/sbin/*': No such file or directory
/bin/ls: cannot access '/opt/cprocsp/bin/*': No such file or directory
bash: /etc/login.defs: Permission denied
guest@porteus:~$ sudo echo "ENV_SUPATH PATH="`/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':'`$PATH >> /etc/login.defs
/bin/ls: cannot access '/opt/cprocsp/sbin/*': No such file or directory
/bin/ls: cannot access '/opt/cprocsp/bin/*': No such file or directory
bash: /etc/login.defs: Permission denied
guest@porteus:~$
Code: Select all
guest@porteus:~$ su
Password:
root@porteus:/home/guest# echo "ENV_SUPATH PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')$PATH >> /etc/login.defs
/bin/ls: cannot access '/opt/cprocsp/sbin/*': No such file or directory
/bin/ls: cannot access '/opt/cprocsp/bin/*': No such file or directory
root@porteus:/home/guest#
File got updated
Code: Select all
ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
but not with your change.
Ed
Ed_P
-
Blaze
- DEV Team
- Posts: 3885
- Joined: 28 Dec 2010, 11:31
- Distribution: ⟰ Porteus current ☯ all DEs ☯
- Location: ☭ Russian Federation, Lipetsk region, Dankov
-
Contact:
Post#9
by Blaze » 06 Sep 2017, 17:41
Ed_P, I love sed
Code: Select all
su
toor
sed -i "s|ENV_SUPATH PATH=|ENV_SUPATH PATH="$(/bin/ls -d /opt/cprocsp/{s,}bin/*|tr '\n' ':')"|g" /etc/login.defs
Note.
About
Code: Select all
/bin/ls: cannot access '/opt/cprocsp/sbin/*': No such file or directory
/bin/ls: cannot access '/opt/cprocsp/bin/*': No such file or directory
you are need to activate this kc1 app
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16
Blaze
-
Ed_P
- Contributor
- Posts: 8368
- Joined: 06 Feb 2013, 22:12
- Distribution: Cinnamon 5.01 ISO
- Location: Western NY, USA
Post#10
by Ed_P » 07 Sep 2017, 00:15
I'm glad "we" were able to SOLVE it.
I've heard of sed but have never used it myself.
Ed
Ed_P