有很多指令都只可以用 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. mxnet 动手学深度学习

    http://zh.gluon.ai/chapter_crashcourse/introduction.html 强化学习(Reinforcement Learning) 如果你真的有兴趣用机器学习开 ...

  2. JAVA基础部分复习(四、抽象类与接口)

    抽象类与接口的定义: package cn.review.day02; /** * 抽象类 * 定义: * 1.抽象类使用关键字abstract修饰 * 2.抽象方法必须定义在抽象类中,抽象方法没有方 ...

  3. 爬取贴吧中的html,并保存到相对应的文件夹中

    功能:输入要爬取的贴吧名称,起始页和终止页即可. # -*- coding: utf-8 -*- import urllib.request import urllib.parse import os ...

  4. golang图片裁剪和缩略图生成

    直接贴代码了 package main import ( "errors" "fmt" "image" "image/gif&qu ...

  5. Gym - 101002H: Jewel Thief (背包,分组,DP决策单调性)

    pro:给定N,M.输入N个物品,(si,vi)表示第i个物品体积为si,价值为vi,s<=300,vi<=1e9: N<1e6:现在要求,对于背包体积为1到M时,求出最大背包价值. ...

  6. Oracle导入导出表

    使用PL SQL Developer进行操作 一.导出 工具<<导出表<<sql插入<<选择用户和要导出的表,勾选创建表,选择输出文件(格式最好为.sql),点击导 ...

  7. visual studio + opencv + contrib

    经过一天的奋战,终把opencv给用起来了.我是用的工具是vs2017+opencv3.3 上午想用mingw+opencv,结果查了很多资料说gcc不支持opencv.我感觉很奇怪,支不支持以后再说 ...

  8. LeetCode - Is Graph Bipartite?

    Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...

  9. asp.net Checkbox 绑定自定义属性

    var chkSelect = e.Row.FindControl("chkSelect") as CheckBox; chkSelect.InputAttributes.Add( ...

  10. 新安装的win7/win10系统,所有驱动都没安装,插入U盘也无法识别解决方法

    我是使用老毛挑安装的系统,结果安装好之后,才发现所有驱动都没有安装,例如usb,网卡驱动等 解决方法就是先把驱动下载到系统安装盘里面,然后再次进入安装系统界面,相当于重新安装系统,但实际上我们不需要. ...