首页 > 系统相关 >Linux 切换用户及环境变量的问题

Linux 切换用户及环境变量的问题

时间:2023-07-09 16:55:53浏览次数:48  
标签:bin local su debian 切换 Linux root 环境变量 usr

背景

前几天用Linux的时候遇到一个问题,使用su切换用户时,用户已经切换了,但是环境变量却还是原来用户的,导致命令执行不了。

现象

首先,用普通用户登录Linux,运行echo $PATH

square@debian:~$ whoami
square
square@debian:~$ echo $PATH
/home/square/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

随后,使用su root 切换到root用户:

square@debian:~$ su root
root@debian:~# whoami
root
root@debian:~# echo $PATH
/home/square/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
root@debian:~# source /etc/profile
root@debian:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

可以看到,切换到root用户后,环境变量是之前的普通用户的,必须手动执行source /etc/profile,环境变量才变成root用户的。

问题原因

su只获取用户的权限,没有获取环境变量;

su -获取用户的权限和环境变量;

# sudo asks for *your* password and must be configured via /etc/sudoers
sudo -s             # Shell for superuser
sudo -i             # Login shell for superuser
sudo -u jimmy -s    # Shell for user "jimmy"
sudo -u jimmy -i    # Login shell for user "jimmy"

# su asks for the root password and usually requires no configuration
su                  # Shell for superuser
su -                # Login shell for superuser
su jimmy            # Shell for "jimmy"
su - jimmy          # Login shell for "jimmy"

解决方案

使用su -切换root用户,

square@debian:~$ echo $PATH
/home/square/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
square@debian:~$ su - root
Password:
root@debian:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

标签:bin,local,su,debian,切换,Linux,root,环境变量,usr
From: https://www.cnblogs.com/wn98/p/17538928.html

相关文章

  • linux LVS+Keepalived
    keepalived服务主要用来做高可用,高可用在企业中是非常重要的技术,避免数据丢失和服务停止。目录一、keepalived概述二、keepalived实验原理三、keepalived模块四、实验演示五、总结        一、keepalived概述  1.keepalived服务重要功能......
  • Windows下,多个版本jdk的切换
    1.安装jdk正常到oracle官网安装即可2.版本管理工具——jenvwindows版本使用jenvforwindowshttps://github.com/FelixSelter/JEnv-for-Windows(其他系统安装使用jenv即可)(arhlinux可以直接使用archlinux-java命令)到release界面,下载解压JENV.zip将解压路径添加到环境变量......
  • Linux 使用 dup2 无法正常重定向管道 tinyhttpd
    项目地址:https://github.com/pphboy/pihttpd文件p_sys.ctinyhttpd是这样写的但是文档是,旧的在前,新在后intdup2(intoldfd,intnewfd);所以是,才能正常输出和输入dup2(1,in_pipe[1]);dup2(0,out_pipe[0]);......
  • 扫描linux系统磁盘占用,释放空间的免费工具
    如何查找linux系统的磁盘占用,扫描大文件,释放空间,可以使用免费工具ncdu。虽然有du和df命令可以查询磁盘和文件夹的大小,但毕竟不方便,不能扫描整个磁盘的情况。用ncdu命令更直观,可以按目录以树形显示每个文件夹的大小,找到占空间的文件或者文件夹,删除释放磁盘空间。并且扫描速度飞快......
  • Linux命令行/终端连接(隐藏)SSID的WiFi
    推荐看完Linux命令行/终端连接隐藏SSID的WiFi(续篇)和本文后,再按照实际情况采用network-manager或者ifupdown多数Linux系统默认自带有线网络的驱动和配置软件,但是对于WiFi则可能会缺少固件和相关软件。在此使用Debian11为例(Ubuntu也可),使用nmcli连接隐藏SSID的WiFi网络。无线网卡......
  • 解决虚拟机VM中kali linux 无法联网的问题
    今天登录KaliLinux发现浏览器无法连接网络,自己并没有改过任何配置,通过自己多方面搜寻解决教程,现将解决方法做此纪录。1.首先关闭kalilinux,点击设置,保证自己的kali网络适配器是桥接模式,且勾选复制物理网络连接状态,点击确定进行保存。  2.打开kalilinux,然后使用ctrl+alt+......
  • linux:svg转png(rsvg-convert 2.50.7/ubuntu 21.10)
    一,直接用ImageMagick把svg转为png时有瑕疵1,例子:原图:转换命令:liuhongdi@lhdpc:/data/work/tmpimg$convertgo-logo-blue.svggo.png效果如下:转换完后图片不完整2,查看convert是否调用rsvg-convert确实调用了,但不确定为什么会出现此情况liuhongdi@lhdpc:/data/w......
  • 已经配置了`JAVA_HOME`环境变量,但Tomcat仍然提示未配置该变量
    检查JAVA_HOME变量的正确性:确保JAVA_HOME的值指向JavaJDK的安装路径,而不是JRE的路径。例如,JAVA_HOME应该是类似于C:\ProgramFiles\Java\jdk1.8.0_XXX的路径,而不是C:\ProgramFiles\Java\jre1.8.0_XXX。检查环境变量配置位置:确保将JAVA_HOME变量添加到系统环境变量中,而不仅......
  • windows和linux应急响应命令 9
    windows1、系统账户排查netuser列出所有用户,进行可疑账号排查。 2、检查异常端口netstat-ano 3、检查可疑进程和服务tasklist 4、可疑启动项排查msconfig 5、查看登录日志eventvwr.msc 6、恶意样本排查  linux1、查看用户信息查看用户的账号文件信......
  • 嵌入式linux根文件系统镜像制作
    原文:https://zhuanlan.zhihu.com/p/568784791在嵌入式linux平台中,大部分工作则是填充根文件系统,在开发中,根文件系统一般都是以目录的方式放在开发宿主机上。当根文件系统填充完成后,我们需要将其打包成xxx.img或者其他的镜像格式。本文以xxx.img镜像格式为例,描述如何将根文件......