普通用户切换到root用户的方式有:su和sudo。

1,su - 

(su为switch user,即切换用户的简写)

格式:su -l USERNAME(-l为login,即登陆的简写)

-l可以将l省略掉,所以此命令常写为su - USERNAME

如果不指定USERNAME(用户名),默认即为root,所以切换到root的身份的命令即为:su -root或是直接 su -

示例 :

  试图查看文件/etc/shadow时,提示拒绝访问,此时使用su - 命令切换成root身份后,即可正常查看。

  

之后,通过命令exit或logout,或者是快捷键Cry+D即可返回原用户身份。

2:su - 与su  

通过su切换用户还可以直接使用命令su USERNAME,与su - USERNAME的不同之处如下:

su - USERNAME切换用户后,同时切换到新用户的工作环境中

su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录

如下图,显示两个命令的执行结果:

3,sudo

使用su切换用户时需知晓对应用户的登陆密码,即若切换成root用户身份,需知道root用户的登陆密码。作为root用户管理员,如何授权其他普通用户,在不需要知晓root密码的情况下,执行root权限的命令操作?此时即可使用sudo。

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;

格式:sudo -u USERNAME COMMAND

当普通用户通过sudo以root用户执行命令时,sudo后面的 -uUSERNAME可省略,即sudo COMMAND 即意为sudo以root用户执行

默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。

如下图,假如使用普通用户帐号user4通过sudo以root用户身份执行命令tail /etc/shadow时,即被提示:user4未被定义在sudoers文件中,无法执行此命令。

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

4,sudoers

sudo的配置文件为:/etc/sudoers。

sudoers文件中允许指定用户在不需要知道root用户的登陆密码的情况下,可以以root用户身份运行各种命令。此文件必须使用visudo命令编辑配置。(visudo命令可以提供basic sanitychecks和check for parse errors,即提供快速的正确性有效性检查,以及语法检查功能)

查看sudores文件,其中有一行如下图,定义了允许root用户从任何主机登陆,使用sudo可以切换成任何用户的身份,执行所有命令。

查看sudoers文件,其中有两行如下图,定义了组可以使用sudo命令的配置。

实例2:设置普通用户user4,使其可以使用sudo命令以root用户身份修改其他所有用户登录密码,但不能修改root用户登陆密码

未被授权前,user4使用sudo以root用户修改user1的密码时,提示user4未被定义在sudoers文件中,无法执行,并且此事件将被报告给。如下图:

执行visudo命令,编辑sudoers文件,添加一行:用户帐号为user4;可以从任何主机登陆,执行三条命令(以root身份执行passwd命令后面不加用户名时,即代表修改root用户本身的密码,此即为第一条命令的作用),如下图,即可实现user4可以修改除root用户之外的其他所有用户的登录密码。

之后,user4通过sudo以root用户身份即可成功修改user1的密码(而不需要知道root的密码,只需要输入自己的密码即可),同时无法修改root的密码,如下图:

实例3:设置组Administrators内所有成员都可以通过sudo以root用户身份执行所有命令,且不需要验证本身的账户密码。

通过visudo命令编辑sudoers文件,添加如下一行,即完成配置。

之后,成员一user1,即可通过sudo以root用户执行所有命令,且不需要验证本身账户密码。如下图:

附:man文档中su和sudo的解释

su - run a shell with substitute user andgroup IDs

以替代的用户运行shell。(即su之后,在当前shell上的用户身份已转变)

sudo - excute a command as another user.

sudo allows a permitted user to execute acommand as the superuser or another user, as specified by security policy.

以其他用户身份执行命令。sudo依照安全策略中指定,允许授权用户以超级用户或是其他用户身份执行命令。(即sudo,只是临时以其他用户身份执行命令,并不会切换身份)

su -c

当然,su也可以在不切换用户身份的情况下,临时以其他用户执行命令。

通过选项-c,即可使用root身份临时执行命令,如下图:

/bin/su -

同时,也可以通过配置sudoers文件,授权其他普通用户,可以切换成其他用户身份去执行命令,而不必每次都加上sudo。如下图,只需在sudoers文件中定义普通用户user4

之后,用户user4只需执行一次sudo su - 即可切换成root身份了

注:实例环境为Vmware Workstation 9、CentOS 6.4

参考书籍:《鸟哥的私房菜》

切换用户身份su与sudo的更多相关文章

  1. Linux系统中切换用户身份su与sudo的用法与实例

    日常操作中为了避免一些误操作,更加安全地管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:s ...

  2. Centos-切换用户身份-su

    su 切换用户身份 相关选项 - 加载相应用户下环境变量 -c   使用某个身份执行一个指令 -m  改变用户身份不改变环境变量 切换为超级用户 su - 普通用户切换为超级用户需要输入密码,超级用户 ...

  3. LINUX使用 su 命令临时切换用户身份

    1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root ...

  4. Linux下切换用户出现su: Authentication failure的解决办法

    在切换用户时,密码没有输错,但始终无法成功地切换,还报出身份验证失败的错误,下面是具体解决方案: 在终端上输入指令sudo passwd root 此时输入你的密码 重复再次输入你的密码 再次用su指 ...

  5. linux中切换用户方式su和su -的区别

    Using su The  su  command allows users to open a terminal window, and from that terminal start a sub ...

  6. CentOS切换用户命令su or su+username

    1.打开终端,提示符为"$",表明该用户为普通用户,此时,直接输su,回车,输入root密码,回车,就可以切换到root用户下,此时的提示符变为"#". 注意, ...

  7. Linux 下以其他用户身份运行程序—— su、sudo、runuser

      本文综合分析了Linux系统下,如何使用runuser命令.su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较. 一.su 命令临时切换用户身份 SU:( Switch ...

  8. Linux-- su和sudo 切换用户

    su 切换用户 用法:su [选项] [-] [用户 [参数]... ] - :以 login-shell 方式进行登录 不加 - :以 no-login-shell 方式进行登录 -c:只进行一次在 ...

  9. Linux用户和组管理命令-切换用户su

    切换用户或以其他用户身份执行命令 su: 即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令 格式: su [options...] [-] [user [args...] ...

随机推荐

  1. 以太网安全技术ACL原理+配置

    一.以太网访问控制列表 主要作用:在整个网络中分布实施接入安全性 访问控制列表ACL(Access Control List)为网络设备提供了基本的服务安全性.对某个服务而言,安全管理员首先应该考虑的 ...

  2. STP RSTP

    一.透明网桥 1.对于一般的透明网桥来说,通常都具有以下的特点: +拓展LAN的能力 +自主动态学习站点的地址信息 当网桥的某个端口上收到含有某个源MAC地址的数据帧时,它就把该MAC地址和接收该数据 ...

  3. VLAN IEEE802.1Q

    一. VLAN产生原因-广播风暴 传统的局域网使用的是HUB,HUB只有一根总线,一根总线就是一个冲突域.所以传统的局域网是一个扁平的网络,一个局域网属于同一个冲突域.任何一台主机发出的报文都会被同一 ...

  4. [UE4]事件驱动的UI更新:事件调度器

    事件调度器就是一个“事件中介”,可以被调用和被关注.

  5. [UE4]自定义服务器Service

  6. Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  7. 十三篇系列:king转折点,wooga瓶颈,supercell营收结构

    转自:http://gamerboom.com/archives/95125 十三篇系列:king的历史转折点,wooga的瓶颈,supercell的营收结构 第一篇 这句话In other word ...

  8. 移植vsftpd到arm linux

    vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...

  9. 在windows server 2012/2016上,任务管理器性能页面增加磁盘监控的办法

    从windows server 2012开始,微软修改了任务管理器的显示方式,图像化看起来更直观了,但是可惜的是,默认情况下,2012和2016均只显示CPU/内存/网络三个资源监视,没有重要的磁盘, ...

  10. hive的select重命名字段显示成中文

    select '越南'as `版本`, viplevel, t.dbname, t.account, FightPower from ods t where dt = '2017-03-08' and ...