当前位置: 首页 > news >正文

Linux---用户切换命令(su命令、sudo命令、exit命令)

1. su命令

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

普通用户的权限,一般在其HOME目录内是不受限的。

一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。

su 是最简单的用户切换命令,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root

用户、从 root 用户切换为普通用户以及普通用户之间的切换。

普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,

才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法: su [选项] 用户名

选项包括:

-:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括

PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。

-l:同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换

的使用者账号。

-p:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。

-c 命令:仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。

 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl + d

[shaonian@localhost ~]$ whoami
shaonian[shaonian@localhost ~]$ su - shaonian1
Password:   [shaonian1@localhost ~]$ whoami
shaonian1[shaonian1@localhost ~]$ exit
logout
[shaonian@localhost ~]$ whoami
shaonian

注意:使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使

用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系

统环境没有随用户身份切换,很多命令无法正确执行。在不使用 su - 的情况下,虽然用户身份成

功切换,但环境变量依旧用的是原用户的,切换并不完整。

2. sudo命令

在得知root密码的时候,可以通过su命令切换到root得到最大权限。

但是不建议长期使用root用户,避免带来系统损坏。

可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo 其他命令

在其它命令之前,带上 sudo,即可为这一条命令临时赋予 root 授权。

但是并不是所有的用户,都有权利使用 sudo,我们需要为普通用户配置 sudo 认证:

       切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

       在文件的最后添加:shaonian ALL=(ALL)   NOPASSWD: ALL

       其中最后的NOPASSWD: ALL 表示使用sudo命令,无需输入密码,shaonian是用户名,

       最后通过 wq 保存,切换回普通用户,执行的命令,均以root运行。

参数说明:

#列出目前的权限
[shaonian@localhost ~]$ sudo -l
#列出 sudo 的版本资讯
[shaonian@localhost ~]$ sudo -V
#sudo命令使用
[shaonian@localhost ~]$ sudo ls

3. exit命令

Linux exit命令用于退出目前的shell。

执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代

表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。

http://www.lryc.cn/news/90326.html

相关文章:

  • 手机图片怎么提取文字?高效渠道一览
  • Elasticsearch 聚合数据结果不精确问题解决方案
  • Qt经典面试题:Qt开启线程的几种方式
  • 使用chartgtp写Android代码
  • 【C++】4.jsoncpp库:jsoncpp库安装与使用入门
  • HTML、CSS、 JavaScript介绍(二)
  • 高效益的淘客APP要怎么开发,需要哪些功能
  • Java基础--->IO流(2)【常见IO模型】
  • JavaScript let 和 const
  • 云原生下多集群的监控系统背景、架构设计与实现
  • 利用OpenCV处理图像
  • 【面试实战】SpringIoC、AOP、MVC面试实战
  • [Redis 分布式锁 ]
  • 如何创建Vue实例?Vue实例有哪些属性和方法
  • InnoDB Cluster集群Mysql Router代理层最佳实践
  • RabbitMQ系列-概念及安装
  • 进程间通信之共享内存
  • 网络连接中的舔狗协议
  • 一分钟了解乐观锁、悲观锁、共享锁、排它锁、行锁、表锁以及使用场景
  • 【C++】C++ 中的 IO 流
  • QFuture的使用
  • 通过dockerfile将nginx、前端和后端封装成一个镜像
  • 如何利用CiteSpace快速锁定领域内最新研究热点并制作精美的可视化专题图?
  • 嵌入式开发从入门到精通之第二十二节:蓝牙芯片CC254x ADC 电压测量
  • 北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例
  • vue 3 第二十八章:组件十二(组件的v-model、多v-model)
  • LCD 显示
  • 互联网医院开发|在线问诊系统架构设计功能有哪些?
  • 数据安全运营有效管理-数据安全复合治理框架和模型解读(1)
  • 【刷题之路】LeetCode 面试题 03.02. 栈的最小值