linux系统命令学习系列-用户切换命令su,sudo
先复习一下上节内容:
- 用户组添加groupadd
- 用户组修改groupmod
- 用户组删除groupdel
- 作业创建一个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身份执行添加用户的操作。
此命令在系统中的动作流程是
- 检查当前用户是否有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的更多相关文章
- linux系统命令学习系列-定时任务crontab命令
上节内容复习: at命令的使用 作业:创建一个任务10分钟后关机 at now+10 minutes at>shutdown at><EOT> 本节我们继续来说例行任务管理命令 ...
- linux系统命令学习系列-例行任务管理at命令
先来复习一下上节内容: 切换用户身份命令su 以root身份执行操作命令sudo 作业:给user1配置sudo权限,不用密码,可执行useradd命令 在/etc/sudoers文件中添加如下配置项 ...
- linux系统命令学习系列-用户组管理
先复习一下上节内容: 设置密码命令passwd 用户信息修改命令usermod 用户删除命令userdel 作业:修改user1的用户id为505,家目录到admin,用户组为admin,最后删除us ...
- linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令
上节内容: 系统和目录管理 Pwd命令 .和..目录 相对路径和绝对路径 作业:进入opt路径,分别使用相对路径方法和绝对路径方法进入到其实任意一个子目录 cd /opt 相对路径 cd rh 绝对路 ...
- Linux学习之用户管理命令与用户组管理命令(十五)
Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...
- Linux学习笔记——切换并取代用户身份命令——su
再次从头好好的学习Linux,本着以免轻易忘记,以备后用的原则,将我觉得常用或者好玩的linux命令记录在这,注意:我的实验环境是 Ubuntu 14.04.1 su 这个命令我经常使用,因为 ...
- Linux 系统中用户切换(su user与 su - user 的区别)
1. Linux系统中用户切换的命令为su,语法为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 参 ...
- Linux学习系列--用户(组)新增、查看和删除
在实际的工作中,在接触Linux的用户组管理的时候,一般来说都是在系统开建设的时候设置好,root权限由特定的负责人保管用户密码,避免误操作带来不必要的麻烦. 在具体使用的时候,会利用相关的命令设置一 ...
- Linux 超级用户和普通用户切换命令
默认登录的是普通用户权限显示$符 tree@ubuntu:/usr$ 从普通用户切换超级用户权限: sudo su tree@ubuntu:/usr$ sudo su 输入密码 [sudo] pass ...
随机推荐
- windows7+python2.7+setuptools 、pip+Django+PIL 网页制作环境配置
1.安装Python2.7 官网下载安装包python-2.7.amd64,对应64位.安装时没什么特别操作,安装后将python的安装路径添加到系统变量path中,步骤为程序->计算机-> ...
- ZFS建池建卷和格式化
建池 zpool create pool_name path -f (例如path=/dev/sdb) zfs set primarycache=metadata pool_name (关闭数据缓存 ...
- tp框架的url模式
tp框架url地址可以由以下四种 http://网址/index.php?m=XX&c=XX&a=XX 基本get模式 http://网址/index.php/模块/控制器/操作方 ...
- [C#].Net Core下全局自定义身份过滤器使用AllowAnonymous属性
假设一种情况:项目中需要做认证和权限控制,而且需要权限才能访问的控制器要远多于可以匿名访问的(类似AO系统那样,登陆了才能用). 那在每个控制器上加一个 [Authorize] 是能解决问题,反正正我 ...
- 20165230 预备作业3 Linux安装及学习
20165230 预备作业3 Linux安装及学习 安装Linux操作系统 通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,开始了虚拟机的安装,根据教程按着步骤一步一步的完成. 遇 ...
- AngularJs踩过的坑
1. 使用checkbox和radio时, 不能使用ng-model直接绑定原始对象, 需要绑定一个对象的某个子属性, 才能把值绑定到scope <label><input type ...
- sh, 批量执行Linux命令
step 1:创建一个sh批处理命令文件 # vim /etc/batch_ssh/install_redis.sh step 2:给当前用户,能够执行sh脚本权限# chmod install_re ...
- 微信小程序学习笔记(阶段二)
二阶段学习过程: (一)看官方文档的框架.组件.API:https://mp.weixin.qq.com/debug/wxadoc/dev/ (二)看极客学院第3.4章视频:http://www.ph ...
- 图解script的三种加载方式 异步加载顺序
摘录如下: 可以很清晰的看出: <script>: 脚本的获取和执行是同步的.此过程中页面被阻塞,停止解析. <script defer = "defer"> ...
- k8s实战为aspnetcore.webapi微服务注入配置信息 - kubernetes
1.浅析k8s配置信息 Secret 以密文的形式存储数据,可以用来保存一些敏感信息,例如:OAuth tokens.私钥.密码.数据库连接.事件总线连接等. ConfigMap 以明文的形式存储数据 ...