linux系统(centos)下su和sudo命令的区别

区别

我们在日常使用过程中,这2个命令很多时候能达到相同的效果,对细节区别十分模糊,这里进行简单的解释和区分。希望大家能够正确使用这2个命令,使用过程中,也知其原因。

  • su命令:用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
  • sudo命令:临时用来以其他用户的身份来执行命令。普通用户需要在/etc/sudoer文件里面配置才能使用sudo命令。

su命令基本使用

基本参数:

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。

常见的使用场景:

  1. 切换用户。普通用户登录后,不加任何参数,默认是切换到root用户。

    su  #默认切换到其他用户,需要输入其他用户的密码。
    
    su zdsoft #切换到zdsoft用户,不会加载zdsoft用户的个人环境配置文件,不会进入zdsoft用户的home目录。
    #root用户切换到其他用户不需要输入密码 su - zdsoft #切换到zdsoft用户,加载zdsoft用户个人环境配置文件,并进入到zdsoft的home目录。
  2. 临时切换,执行某命令后,立马退出来。

    su root -c 'ls -l'  #切换到root命令,执行ls -l命令后退回来

sudo命令基本使用

备注:sudo明确临时切换身份来执行命令,可以在/etc/sudoer文件里面配置免密。在生产环境中,系统管理员管理系统时,建议不要使用root命令直接ssh远程登录,也不要直接使用root操作系统变更。而是使用一个运维专用的普通账号。绝大情况下使用这个普通账号进行系统管理(部署服务,上线应用,查看日志等等)。特殊情况下需要root用户,那就应该为这个普通账号配置sudo权限。

/etc/sudoer文件里面,也可以配置,限制某用户用sudo时,只能执行特定的几个命令。

基本参数:

-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

常用使用场景:

  1. 使用某用户的名义执行命令。

    sudo -u zdsoft touch test.txt #使用zdsoft用户身份执行touch命令。
    #若不加上此参数,则预设以root作为新的身份;
  2. 永久切换到root下面,这种情况就和su很像。

    sudo -i #切换root用户,并不退出来。
    #-i就是登录的参数

linux系统(centos)下su和sudo命令的区别的更多相关文章

  1. 07 Linux su和sudo命令的区别

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  2. linux su和sudo命令的区别

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  3. linux su和sudo命令的区别(转)

    一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用 ...

  4. 【linux】su和sudo命令的区别

    来源:http://www.jb51.net/LINUXjishu/12713.html 一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比 ...

  5. Linux su和sudo命令的区别,并获得root权限

    su(superuser) su表示切换用户,如: 输入:su命令后回车表示切换当前的用户到root用户,或者: 输入:su - root(或者其他用户名)这里加了"-"后表示也切 ...

  6. Linux系统CentOS下mysql的安装日志

    今天自己捣鼓了一下,在linux系统CentOs6.5下使用源码方式安装和配置mysql,这里记录一下步骤. a) 下载mysql,source版本.Mysql-5.6.20.tar.gz b) 安装 ...

  7. su与sudo命令的区别

    由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统. 如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作. 特别是对于服 ...

  8. su 和 sudo 命令的区别-转载

    link 一. 使用 su 命令临时切换用户身份                   1.su 的适用条件和威力   su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要 ...

  9. su和sudo命令的区别

    一. 使用 su 命令临时切换用户身份 参考 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,bein ...

随机推荐

  1. ucosii操作系统内核源码学习第一篇

    根据书本理论介绍以及实际看内核源代码得出: 1. 操作系统默认定义了64个TCB块(为全局变量,编译时候以及分配了,创建一个任务就使用一个,删除一个任务就归还一个)(为什么最大只支持64个任务呢,我们 ...

  2. hash类型数据的操作指令

    1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

  3. 【数据库上】 第四讲 E-R模型基础知识

    第四讲 E-R模型基础知识 一.数据库设计过程 数据库设计的关键阶段? 各个阶段设计的主要任务? 基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互.数据流程图示例/UML类图等) 核心阶 ...

  4. java多线程同步的5种方法

    一.为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常. 举个例子,如果一个银行账户同时被两个线程 ...

  5. Linu常用日志分析实战

    日志结构分析 分析日志状态码所在位置为第九个 遍历取出第一行日志的每个字段 //取出第一行日志 awk 'NR==1{for(i=1;i<=NF;i++)print i"= " ...

  6. Identity用户管理入门六(判断是否登录)

    目前用户管理的增删改查及登录功能已经全部实现,但存在一个问题,登录后要取消登录按钮显示退出按钮,未登录应该有注册按钮,现实现过程如下 一.Startup.cs中增加服务 app.UseAuthenti ...

  7. C#简单工厂模式学习

    刚学习设计模式,还不是太了解,感觉只有多数据库的情况下才用的到,待学习 首先创建空白解决方案,依次创建类库Model,IDAL,SqlServerDAL,DALFactory,BLL,DBUtilit ...

  8. Reader字符输入流和InputStreamReader和FileReader

    1.FileReader  extends InputStreamReader extends Reader 其中,Reader字符输入流和InputStreamReader和FileReader为字 ...

  9. python生成时间序列(date_range)

    介绍 自己写了一个用python内置模块实现的生成时间序列的函数 支持自动推断字符串到datetime的转换, 但对格式有一定要求, 其它格式可手动指定格式化方式, 格式化方式与python内置格式化 ...

  10. 常见shell脚本测试题 for/while语句

    1.计算从1到100所有整数的和2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和3.求从1到100所有整数的偶数和.奇数和4.执行脚本输入用户名,若该用户存在,输出提示该用户已存 ...