先复习一下上节内容:

  1. 用户组添加groupadd
  2. 用户组修改groupmod
  3. 用户组删除groupdel
  4. 作业创建一个id为501的组group1,然后改成group2, 同时id变为502,最后删除这个组,命令分别如下:

groupadd –g 501 group1

groupmod –g 502 –n group2 group1

groupdel group2

这一节,我们来说一下用户切换相关命令

为什么要进行用户切换?

在操作过程中需要使用特定的用户进行特定的操作,多数情况下是因为权限,比如要修改一个文件,只有root用户有权限修改,那么就要切换到root用户下进行操作。切换用户一般有两个命令:

1. su命令

su命令不加参数,默认切到root用户,需要输入root用户密码进行验证,

exit命令可退出root用户。

su命令可以加一个“-”再加上用户名,此时,不但身份变化了,同时也拥有了此用户的“用户环境”,比如用户家目录以及此用户的其它个性化设置。

普通用户切换其它用户需要知道其它用户的密码,root用户使用su命令切换其它用户,不需要知道用户密码

2. sudo命令

sudo的用法是,在sudo后面加上要执行的命令,表示用root身份执行此命令,比如

sudo useradd user1,表示用root身份执行添加用户的操作。

此命令在系统中的动作流程是

  1. 检查当前用户是否有sudo的权限,通过检查/etc/sudoers文件

比如我们用user1执行sudo useradd命令,会报错

  

  2. 在用户输入自己的密码后,验证用户密码

  3. 密码正确后,如果当前用户有权限用sudo执行对就的命令,系统就会以root用户身份执行相关命令

基于以上流程,我们需要先给用户sudo的权限,此权限存储在/etc/sudoers这个文件中,可以用vi或vim进行编辑(这两个命令以面会讲到),或是用sudoers文件的专用命令visudo,这里我们用visudo进行编辑,可以看到root用户的sudo权限:

这一行表示的意思是,root用户(第一列),从任何地方登录(第二列的ALL),可以执行任何人(第三列的ALL)的任何命令(第四列的ALL),根据这个定义,我们把user1的权限也加上

保存后退出,再次在user1中执行sudo useradd命令,此时要求输入user1的密码,证明权限生效了

还可以通过 %组名称 的方式给用户组分配权限,比如

%users ALL=(ALL) ALL

表示所有users组中的用户都可以执行sudo命令。

如何不想每次都输入密码,可以使用NOPASSWD进行配置,如下:

再次执行sudo useradd命令

已不再要求输入密码。

再进一步,可以设置用户有权限执行哪些命令,比如我们让user1只能执行shutdown命令,可以做如下配置

保存退出后,在user1中再次执行sudo useradd命令

已没有执行权限

更多文章关注微信公众号“挨踢学霸”

linux系统命令学习系列-用户切换命令su,sudo的更多相关文章

  1. linux系统命令学习系列-定时任务crontab命令

    上节内容复习: at命令的使用 作业:创建一个任务10分钟后关机 at now+10 minutes at>shutdown at><EOT> 本节我们继续来说例行任务管理命令 ...

  2. linux系统命令学习系列-例行任务管理at命令

    先来复习一下上节内容: 切换用户身份命令su 以root身份执行操作命令sudo 作业:给user1配置sudo权限,不用密码,可执行useradd命令 在/etc/sudoers文件中添加如下配置项 ...

  3. linux系统命令学习系列-用户组管理

    先复习一下上节内容: 设置密码命令passwd 用户信息修改命令usermod 用户删除命令userdel 作业:修改user1的用户id为505,家目录到admin,用户组为admin,最后删除us ...

  4. linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令

    上节内容: 系统和目录管理 Pwd命令 .和..目录 相对路径和绝对路径 作业:进入opt路径,分别使用相对路径方法和绝对路径方法进入到其实任意一个子目录 cd /opt 相对路径 cd rh 绝对路 ...

  5. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  6. Linux学习笔记——切换并取代用户身份命令——su

        再次从头好好的学习Linux,本着以免轻易忘记,以备后用的原则,将我觉得常用或者好玩的linux命令记录在这,注意:我的实验环境是 Ubuntu 14.04.1 su 这个命令我经常使用,因为 ...

  7. Linux 系统中用户切换(su user与 su - user 的区别)

    1. Linux系统中用户切换的命令为su,语法为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 参 ...

  8. Linux学习系列--用户(组)新增、查看和删除

    在实际的工作中,在接触Linux的用户组管理的时候,一般来说都是在系统开建设的时候设置好,root权限由特定的负责人保管用户密码,避免误操作带来不必要的麻烦. 在具体使用的时候,会利用相关的命令设置一 ...

  9. Linux 超级用户和普通用户切换命令

    默认登录的是普通用户权限显示$符 tree@ubuntu:/usr$ 从普通用户切换超级用户权限: sudo su tree@ubuntu:/usr$ sudo su 输入密码 [sudo] pass ...

随机推荐

  1. java 压缩文件

    package folder; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundExcept ...

  2. HTTP架构介绍(2) 缓存

    web缓存是自动复制所请求数据并将其保存在本地存储中的设备. 通过这样做, 可以实现: 减少网络流量 消除网络瓶颈 防止服务器超载 减少长距离的响应延迟 因此, 您可以清楚地说, web 缓存可提高用 ...

  3. java继承与覆写小练习

    最近学习java到了继承的部分,写个小程序用以巩固. import java.util.Scanner;//导入输入包public class testfather { public static v ...

  4. Infinite Fraction Path HDU 6223 2017沈阳区域赛G题题解

    题意:给你一个字符串s,找到满足条件(s[i]的下一个字符是s[(i*i+1)%n])的最大字典序的长度为n的串. 思路:类似后缀数组,每次倍增来对以i开头的字符串排序,复杂度O(nlogn).代码很 ...

  5. API网关系列之Kong的介绍以及安装

    一.API网关产生背景 在微服务的架构中,一个大的应用会被拆分成多个小的单一的服务提供出来,这些小的服务有自己的处理,有自己的数据库(也可以共用),也许语言也是不一样的,他们可以部署在一个或多个服务器 ...

  6. Tencent研发工程师笔试知识点

      一: 32位编译器:32位系统下指针占用4字节       char :1个字节       char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节.同 ...

  7. python实现一般最小二乘系统辨识方法

    问题: 对于一个未知参数的系统,往往需要用到系统辨识的方法,例如对于一个单输入单输出系统: Z(k)+a1*Z(k-1)+a2*Z(k-2)=b1*U(k-1)+b2*U(k-2)+V(k) 其中:V ...

  8. Loadrunner11不能调用IE8解决方法大全

    刚安装了英文版的Loadrunner 11, 用的是IE8, 开始录制时没有启动IE, 试了网上很多的方法,最终解决了问题.总结一般产生问题的原因如下. 1.当你主机上有多个浏览器时,loadrunn ...

  9. 5分钟学习spark streaming之 轻松在浏览器运行和修改Word Counts

    方案一:根据官方实例,下载预编译好的版本,执行以下步骤: nc -lk 9999 作为实时数据源 ./bin/run-example org.apache.spark.examples.sql.str ...

  10. 《Linux命令行与shell脚本编程大全》- 读书笔记2 - 更多的bash shell命令

    更多的bash shell命令 想检测进程,需要熟悉ps命令的用法.ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息.默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户 ...