centos su命令
有很多指令都只可以用 root 身份去执行,因此我们需要成为 root 用户。要这样做,我们可以使用 su 指令(更替用户)。su 指令有下列格式:
su - <user>
或
su <user>
但我们最经常是用 su 指令来成为 root 用户:
su - root
或
su root
如果不指定用户名称,缺省的用户是 root,因此以上的指令可以缩短为:
su -
或
su
然而这两个指令有不同的特性。'su <user>' 将 <user> 这个身份赋予现时的用户;而 'su- <user>' 除了将 <user> 的身份赋予现时的用户之外,更会将环境设置成 <user> 登录时的环境。很多时候,用户会单单采用 'su' 来成为 root,尝试执行一个指令(例如:ifconfig),然后收到一个 'command not found' 的错误。举个例子:
su
Password:
ifconfig
bash: ifconfig: command not found
原因是系统上的普通用户与 root 用户有不同的 PATH 环境变量。当你输入一个 Linux 指令,指令壳会尝试在用户的 PATH 内寻找及执行那个指令。它会寻找 PATH 变量内的每个目录直至找到配对。
很多时候当用户在 IRC 或其它地方汇报问题时,他们会被导向此页。当你要检测为何找不到某个执行档时,查看现有的 PATH 很有帮助:echo $PATH
为普通用户而设的指令多数位于 /usr/bin 及 /bin,偶尔也会在 /usr/local/bin —— 上游在包装时缺省不会采用 /usr/local/* 路径。然而,root 的指令多数位于 /usr/sbin 及 /sbin,偶尔也会在 /usr/local/sbin。这亦反映在 root 的 PATH 内。
当你用 su - 来变成 root 时,你亦会采纳 root 的 PATH;反观只用 su 就会保留用户的 PATH 值。正因如此,单单用 su 来成为 root 时,执行/usr/local/sbin/、/usr/sbin、或 /sbin 内的指令便会导致 command not found 这个错误。要获得更详细的解释,请参阅 bash 的使用手册(man bash),特别是有关 INVOCATION 及登录指令壳这个部份。
因此你假若只使用 su,便须要提供指令的全路径(例如:/sbin/ifconfig),否则请使用su - 来成为 root。
---------------------
作者:蹒跚走路的程序猿
来源:CSDN
原文:https://blog.csdn.net/phj_981805903/article/details/16973481
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- Objective-C开发编码规范【转载】
- Heartbeat+DRBD+MySQL高可用方案
- C++实现类似飞鸽的内网聊天工具,采用多播的协议实现
- php路径目录解析函数dirname basename pathinfo区别及实例
- Codeforces Round #357 (Div. 2) E 计算几何
- (笔记)angular 多选按钮
- 关于async与await的FAQ 转
- Android-L-Samples
- Spring(3.2.3) - Beans(7): 延迟实例化
- Swift - 浮点数转换成整数(四舍五入与直接截断)
- 【C++】模拟实现auto_ptr
- Flex布局学习笔记
- Cesium home键定位的位置
- 关于table表格 td里内容较多换行的处理方法
- golang文件操作
- linux 环境统配
- 自签名证书 nginx tomcat
- Codeforces963C Frequency of String 【字符串】【AC自动机】
- python 的基础 学习 第五天 基础数据类型的操作方法
- cocos2dx开发之util类&;方法——取范围随机数