关于sudo、su、su -

之前因为权限和环境变量PATH问题,经常在编译的时候找不到编译工具。今天又了解清楚了一点,做一下笔记。

1、su命令运行时默认切换到root权限,但是不会启动新shell,所以当前目录位置不会发生改变,也就是newpwd = oldpwd。

2、su -命令运行时默认切换到root权限,同时生成启动shell,所以当前目录位置会变成root用户的home,也就是newpwd= /root。

3、/etc/profile 这个配置文件在新shell创建的时候会执行一次,所以无论是su还是su -,切换到root用户下的时候,环境变量都跟linux(切换到root之前的用户)的环境变量不一样。但是su -由于启动了新shell,所以source了一遍/etc/profile,所以环境变量的PATH中会有我们需要的交叉编译链路径。

4、sudo的话,可以说是被限制的su,它只允许用户使用/etc/sudoer中规定的用户权限,这个配置文件需要用visudo去配置,用一般的vim、vi不能更改。执行过程大概就是从当前用户转换到root用户下,执行完命令之后再转换回去,使用的环境变量是普通用户的环境变量。

猜你喜欢

转载自blog.csdn.net/weixin_40728015/article/details/81141581