首页 > 系统相关 >linux中,解决使用sudo时,自定义path路径不生效的问题

linux中,解决使用sudo时,自定义path路径不生效的问题

时间:2024-08-28 11:36:47浏览次数:12  
标签:bin profile 自定义 sudo etc usr linux go

问题

当我们在非 root用户下,需要使用 root 权限的时候,通常在前面加 sudo 就可以了

但是,今天遇到了一个小问题,就是我明明已经配置了 gobin 目录在 PATH 变量中,还是配置在 /etc/profile 中,在 root 用户下,是可以执行 go 命令的

按理说,用 sudo go 应该也是没问题的

但是,我发现,当我执行 sudo go 的时候,会提示未找到go命令,这就离谱了

那是什么问题呢

原来在执行 sudo 命令的时候,是不加载 /etc/profile 以及各个用户的 ~/.profile 文件的,所以自然也就不会有修改后的 PATH 路径了

解决办法

方法1. 修改 /etc/sudoers 文件

这种方式的优点就是,修改后,原来怎么使用sudo,现在还怎么使用

缺点就是,会污染其他环境,当然,我上面这种场景,就不存在污染的问题,因为本身就配置在全局的配置文件 /etc/profile 中。

$ visudo

# 只要将自己希望添加的路径,加到这个变量的后面就好了
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/go/bin:/usr/local/go/go/bin"

方法2. 加参数 -i

优点就是,只影响当前环境

使用 -i 选项,这将启动一个新的shell并加载 /etc/profile 以及用户的 ~/.bashrc~/.bash_profile 文件

所以缺点是,会重新开一个shell,有些情境下并不想这样,而且总要加 -i,会略显麻烦

sudo -i go run .

标签:bin,profile,自定义,sudo,etc,usr,linux,go
From: https://www.cnblogs.com/guangdelw/p/18384329

相关文章

  • 安装python教程详解-(Linux和Windows11安装python)
    一、Linux编译安装Python3.12.5python官网地址:WelcometoPython.org1.1安装python环境1.1.1安装开发工具包和依赖#yum-ygroupinstall"DevelopmentTools" #yum-yinstallgcczlibzlib-devellibffilibffi-develreadline-developenssl-developenssl11ope......
  • CAS5和CAS6自定义异常提示消息
    CAS5和CAS6自定义异常提示消息使用cas登录时,如果登录错误页面应该提示一下错误消息,cas自带的有一些,不适用的话就需要自定义自己的异常消息提示了。自定义异常提示消息自定义异常消息类例如:验证码异常消息类importjavax.security.auth.login.AccountExpiredException;......
  • Linux上网配置-CentOS7
    上网配置思路1.确认虚拟机的网络适配器为桥接模式2.网卡配置文件是否存在并启用网卡接口3.网卡配置文件详解:静态IP地址、子网掩码、默认网关、物理地址以及DNS4.局域网的其他物理机能远程该虚拟机5.虚拟机ping通外网一、确认虚拟机的网络适配器为桥接模式问题1.为什么......
  • 【C#】【Winform】自定义控件、自定义事件
    https://blog.csdn.net/m0_62366581/article/details/139553373在开发桌面的过程中,有时候自带的控件样式或者功能上可能不一定能够满足我们的所有要求。这时候,我们需要自定义控件。创建类库项目把图标拖放到资源文件中添加用户控件设置样式尺寸修改代码视图其他项目中复用......
  • Linux零基础到精通(二)-vmware虚拟机使用教程及Centos7操作系统安装
    目录前言Linux操作系统运用领域vmware虚拟机安装与使用电脑硬件环境要求vmware虚拟机软件安装创建一个虚拟机配置vmware的虚拟化网络通过vmware虚拟机安装操作系统下载Centos7系统镜像安装Centos7操作系统配置网络和主机名称信息配置系统分区软件包选择设置用户密码进......
  • 使用 perf probe测量Linux用户空间代码的执行时间
    1Linuxperf简介perf是Linux内核自带的一个强大的性能分析工具,它能够深入到内核和用户空间,提供丰富的性能计数器和事件跟踪功能,帮助开发者和系统管理员精确地定位系统性能瓶颈。1.1perf的主要功能:性能事件采样:可以采样各种硬件性能事件,如CPU周期、缓存命中率、指令......
  • linux 常规操作术语
    manls===>查看ls后面可以接哪些参数aliasif="ifconfig"===》给ifconfig取个别名叫做ifunaliasif===》取消if这个别名vim命令:编辑文件:vim+文件名编辑内容步骤:1.进入界面后按下字母键:i(i代表的是insert插入的意思)从命令模式切换到编辑模式2.输入完成......
  • vue3 自定义hooks(组合式函数)
    什么是hooks自定义hooks是Vue3组合式函数的别称。在Vue应用的概念中,“组合式函数”(Composables)是一个利用Vue的组合式API来封装和复用有状态逻辑的函数。命名规范组合式函数约定用驼峰命名法命名,并以“use”作为开头。以便识别它们是可复用的逻辑单元。例如,u......
  • Linux firewalld防火墙学习总结
    实践环境CentOS-7-x86_64-DVD-2009简介Firewalld是一种简单的、有状态的、基于区域(zone-based)的防火墙。策略和区域用于组织防火墙规则。网络在逻辑上被划分为多个区域,它们之间的流量可以通过策略进行管理。查看防火墙状态#servicefirewalldstatus或者#systemctls......
  • Linux网络:TCP & UDP socket
    Linux网络:TCP&UDPsocketsocket套接字sockaddr网络字节序IP地址转换bzeroUDPsocketsocketbindrecvfromsendtoTCPsocketsocketbindlistenconnectacceptsendrecv本博客讲解Linux下的TCP和UDP套接字编程。无论是创建套接字、绑定地址,还是发送和接收数据,......