有很多指令都只可以用 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
版权声明:本文为博主原创文章,转载请附上博文链接!

centos su命令的更多相关文章

  1. CentOS常用命令备忘

    1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...

  2. 第3章 CentOS常用命令

    一.CentOS常用命令 1.1 文件和目录 # cd /home                        进入 '/home' 目录 # cd ..                       ...

  3. 其他综合-CentOS 7 命令行显示优化

    CentOS 7 命令行显示优化 1.实验描述 通过 CentOS 7.6 的显示优化,为实现命令行显示提供良好视觉体验. [基于此文章的环境]点我快速打开文章 2.实验环境 使用软件的版本:VMwa ...

  4. 12.su 命令与sudo 服务

     1.su 命令:解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户. 比如从root 管理员切换至普通用户: [root@Centos test]# id uid=0(r ...

  5. 只允许wheel组到用户才能使用 su命令

    su只是切换到root用户, 不改变当前目录: su - 切换到root和改变目录到/root 修改用户到组: usermod gpasswd wheel组相当于windows的 Administra ...

  6. centos常用命令

    应用程序->附件->终端 一:使用CentOS常用命令查看cpumore /proc/cpuinfo | grep "model name"   grep " ...

  7. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  8. Linux 普通用户su命令切换控制

    1.编辑配置文件/etc/pam.d/su .将下面配置文件"#“去掉: # auth           required        pam_wheel.so use_uid 改成 a ...

  9. Linux下su与su -命令的区别

    在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用service命令了. 原因: su命令和su -命令 ...

随机推荐

  1. PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次)

    前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次.要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历.中序遍历.后序遍历.具体说明如下: 前序遍 ...

  2. 位图(bitmap)—— C语言实现

    高级数据结构及应用 -- 使用 bitmap 进行字符串去重 位图应当具备的置一,清零,以及判断三大功能: #define BITS_PER_WORD 32 #define MASK 0x1f #de ...

  3. php腾讯面试题(转)

    一.PHP开发部分 1.合并两个数组有几种方式,试比较它们的异同 答:1.array_merge() 2.’+’ 3.array_merge_recursive array_merge 简单的合并数组 ...

  4. python中调用多线程加速处理文件

    问题背景是这样的,我有一批需要处理的文件,对于每一个文件,都需要调用同一个函数进行处理,相当耗时 有没有加速的办法呢?当然有啦,比如说你将这些文件分成若干批,每一个批次都调用自己写的python脚本进 ...

  5. 双向重定向tee命令详解

    vim一般在训练网络的时候需要保存log文件,同时需要在屏幕上网络的输出信息,在shell文件中常常会看到如下代码 执行的命令 2>&1 | tee log.txt tee是linux中 ...

  6. HDU5950 Recursive sequence (矩阵快速幂加速递推) (2016ACM/ICPC亚洲赛区沈阳站 Problem C)

    题目链接:传送门 题目: Recursive sequence Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total ...

  7. (0)diango、ORM的语法

    Django PS:Django默认的是sqlite3数据库 PS:settings里面的这里可以修改数据库 1.^ 这个符号就是以什么开头   #url(r'index/',views.index) ...

  8. (17)什么是jQuery(jq的流程和基本操作)

    jQuery就是对原生js二次封装的工具类(在jq叫构造函数) jQuery就是一堆方法的集合,jq对象就可以直接调用这些方法来完成指定的需求 使用jq的流程: 1.在HTML页面倒入jq.js文件 ...

  9. 2017-2018-2 20165313实验二《Java面向对象程序设计》

    实验报告封面 实验内容及步骤 实验一 1.试验要求: 参考 (http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST) 完成单元测试的学习. ...

  10. 有关O_APPEND标志和lseek()的使用

    编程之路刚刚开始,错误难免,希望大家能够指出. O_APPEND表示以每次写操作都写入文件的末尾.lseek()可以调整文件读写位置. <<Linux/UNIX系统编程手册>> ...