linux入门---如何实现用户切换

2023-10-30

基本用户认识

在linux系统中将用户分为两个大类一个是root用户一个是普通用户,root用户是linux操作系统的超级管理员,相当于古代的皇帝不会受到任何的权限约束,而普通用户就会受到权限约束相当于古代的老百姓。那么在后期的学习里面我们就不要使用root用户来执行操作了,因为普通老百姓犯错一般都可以挽回没有什么大问题,但是皇帝犯错一般就很难挽回了,所以在以后的学习当中我们都使用普通用户。

用户的切换

我们知道linux操作系统中有很多的用户,在平时的使用过程中肯定得需要将用户进行转换,比如说普通用户转为root用户,root用户转为普通用户,那我们如何来实现这些转换呢?这里就得需要用到下面的这些指令:

su

第一个指令就是su,这个指令的功能就是将普通用户切换成root用户,比如说下面的操作:
在这里插入图片描述
首先我们登录的用户是xbb,并且当前所在的路径是xbb的家路径,然后我们单独输入一个su就会出现下面的现象:
在这里插入图片描述
这里我们得输入root用户的密码才能实现对应的转化,将密码输入成功后就会出现这样的现象:
在这里插入图片描述
用户变成了root,但是切换后所在的路径依然是之前那个用户所在的路径。那么这就是一种切换的方式。

su -

su -的功能也是将普通用户切换成root用户,但是这里切换后的路径就不再是之前用户所在的路径,而是root的家目录比如说下面的操作:
在这里插入图片描述
一开始的用户为xbb,所在的路径为家目录中的folder1目录里面,我们使用su -指令转换用户输入密码后就可以发现此时的路径为root用户的家路径,并且当前用户切换成了root,那么这就是su -和su的区别,两者切换后的路径不同su -会来到root的家路径,而su是原来用户所在的路径。

exit

当我们想从root用户切换回原来的普通用户时就可以使用exit指令,比如说下面的操作:
在这里插入图片描述
一开始我们登录的用户是xbb,使用su -切换到root用户之后再使用exit指令就可以切换回原来的xbb用户,并且退回之后的路径也是之前普通用户所在的路径。

su 用户名

如果我们当前是普通用户,想转换到另外一个普通用户的话就可以在su指令后面加上对应的用户名,但是这里的转换得输入另外一个普通用户的登录密码,比如说下面的操作:
在这里插入图片描述
一开始的用户为xbb使用su转换到wj用户时就得输入wj用户的登录密码,并且这里的转换是原路径转换如果想在转换时切换到家路径的话,就得在用户名前面加个-选项,比如说下面的操作:
在这里插入图片描述
如果我们当前是root用户想转换成普通用户的话就不用输入对应普通用户的登录密码,比如说下面的操作:
在这里插入图片描述
就可以直接转换不需要输入密码,如果我们这里想转换的时候顺便切换路径的话就可以使用在前面加个- 选项,比如说下面的操作:
在这里插入图片描述
那么这就是su+用户名的用法,希望大家可以理解。

sudo

当我们是普通用户但是想以root的身份执行一条指令的话,可以先将用户切换成root用户再执行相应的指令,那如果我们不想将用户进行切换成root呢?这里就可以使用sudo指令来进行提权,这里提权的时候会输入密码,这里的密码是当前用户的登录密码,并不是root的登录密码,比如说我现在的身份是wj,使用sudo提权执行指令时就得输入wj的登录密码,才可以执行比如说下面的操作:当我们使用一次sudo提权成功的话,在后面的一段时间里面再使用sudo是不需要再输入密码的,可以直接使用但是有些小伙伴在使用这个指令的时候会出现提权失败的情况比如说下面的操作:
···
这是因为我们当前使用用户不是系统的受信任的用户,如果说每个人都可以使用root来进行提权操作各种只有root才能执行的操作的话,那我每个指令都用root来进行提权的话我不就相当于是root了吗?所以在使用sudo指令的时候就多了一个门槛,你得是系统的受信任用户这样你才能正常的执行sudo指令,那么我们可以通过下面的操作来添加受信任用户,首先登录root的账号:
在这里插入图片描述
打卡这个文件: /etc/sudoers
在这里插入图片描述
按下回车就会出现这样的界面:
在这里插入图片描述
我们通过底行模式来添加行号,然后在100行左右找到 Allow root to run any commands anywhere :
在这里插入图片描述
然后我们将这句话下面一行的内容复制一下就是这句话:root ALL=(ALL) ALL,然后再在粘贴到下一行上去:
在这里插入图片描述
然后将你刚刚复制出来的内容中的root修改成你想要的普通用户比如说xbb
在这里插入图片描述
然后再进入底行模式中输入w!强制写入,再输入q!强制退出,这样我们添加受信任的用户的操作就完成了,然后我们再将用户切换成xbb,然后使用sudo提权指令whoami的话就可以发现可以执行了
在这里插入图片描述
那么这就是用户切换的全部内容,希望大家可以理解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux入门---如何实现用户切换 的相关文章

  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序

随机推荐

  • qt memring固定片元内存池制作

    内存池 其实和qt无关 不过既然已经使用qt 就加上吧 无论使用qt与否 都额可以使用 限制为片元固定大小内存 非固定内存内存池可以看我的其他文章 数据结构定义 ifndef C MEM H define C MEM H include
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文解读

    BERT Pre training of Deep Bidirectional Transformers for Language Understanding 1 BERT模型 1 1 Pre training BERT 1 2 Fine
  • Pandownload复活教程

    众所周知 因为某些原因pandownload作者已被抓捕 pandownload无法再次登录 但是 经过热心网友的努力 发现被端掉的只是pandownload的服务器 其余功能皆可正常使用 故在此根据网友总结 再次验证了pandownloa
  • Java多线程 - 锁

    Java多线程 锁 三性 可见性 指的是线程之间的可见性 一个线程对状态的修改 对其他线程是可见的 在 Java中 volatile synchronized 和 final 实现可见性 原子性 如果一个操作是不可分割的 我们则称之为原子操
  • mmap-转载

    平时在面试中你肯定会经常碰见的问题就是 RocketMQ为什么快 Kafka为什么快 什么是mmap 这一类的问题都逃不过的一个点就是零拷贝 虽然还有一些其他的原因 但是今天我们的话题主要就是零拷贝 传统IO 在开始谈零拷贝之前 首先要对传
  • 《C++程序设计原理与实践》笔记 第16章 图形用户界面

    图形用户界面 graphical user interface GUI 允许用户通过点击按钮 选择菜单 以不同的方式输入数据以及在屏幕上显示文本和图形等方式与程序进行交互 在本章中 我们将介绍编写代码来定义和控制GUI应用的基本方法 16
  • linux用户登录,鉴定故障

    异常信息 解决方法 1重启linux 按E 结果如图所示 2选择图中全亮的那一行 继续按E 3quite 后面 空格 1 输入完毕按enter 4 按B 5修改密码
  • Android file类使用详解

    一 Android file类 在开发Android应用时免不了会跟文件打交道 本篇文章记录总结自己常用到的文件操作 数据的存储有多种方式 比如数据库存储 SharedPreferences存储 文件存储等 这里我们将要介绍最简单的文件存储
  • 华为虚拟化Kylin Server-10 SP1安装VMTools

    华为虚拟化Kylin Server 10 SP1安装VMTools 环境 虚拟化平台 华为Fusioncompute 8 0 0 ARM 虚拟机操作系统 Kylin Server 10 SP1 Release Build20 2021051
  • [LINUX]虚拟机上cent os7忘记root密码修改root密码

    https blog csdn net dannistang article details 80224871
  • 验证框架的配置及validation.xml常用的验证规则(Struts2的输入验证详解)

    5 很多验证标签的type已经改了 对应的param里面的name属性也改了 针对最新版的struts 建议详细阅读struts的validation html 在docs docs下 比如regex对应的param的name 已经改为 r
  • java利用反射通用导入Excel到数据库

    package com homelink perform module perform util import java lang reflect Field import java lang reflect Method import j
  • Waves 14 Complete for Mac(Waves混音效果全套插件)

    Waves 14 Complete for Mac是一款音频插件套装 拥有多种不同的音频处理插件 高品质音效 简单易用的界面 完全兼容和兼容多平台等特点 可以帮助音频制作人员进行音频处理和混音 提高音频制作的效率和质量 音乐创作是一个永不停
  • ajax nginx 转发 sessionid_nginx搭建及加固

    系统使用的是centos7 Nginx安装及配置 Nginx engine x 是一个高性能的HTTP和反向代理web服务器 同时也提供了IMAP POP3 SMTP服务 安装 我是用的环境是centos 7 系统默认的yum源没有ngin
  • InceptionNext实战:使用InceptionNext实现图像分类任务(二)

    文章目录 训练部分 导入项目使用的库 设置随机因子 设置全局参数 图像预处理与增强 读取数据 设置Loss 设置模型 设置优化器和学习率调整算法 设置混合精度 DP多卡 EMA 定义训练和验证函数 训练函数 验证函数 调用训练和验证方法 运
  • git push 提示 remote: Support for password authentication was removed on August 13, 2021. Please ...

    问题描述 今天把自己翻译的一些内容提交到 GitHub 上 但是 push 后却提示下内容 remote Support for password authentication was removed on August 13 2021 P
  • leetcode格式二叉树生成工具(C++)

    介绍 输入leetcode测试用例类型字符串 返回根节点指针 判断逻辑和leetcode一致 null结点无须额外输入null子结点 并且自动舍弃无效结点 例如输入 1 null 2 null null 3 算法会自动舍弃结点3 网上找的都
  • 2021-05-01

    def print topic texts n topics n words 输出主题模型结果 param n topics LDA主题数量 param n words 主题的词范围 数量 return 输出公共主题 单日主题 准备语料库
  • python中的类与对象

    1 类和对象的关系 类就相当于 lt 模板 gt 或者 lt 模具 gt 对象就相当于 lt 产品 gt 得有了类 我们才能制造各种对象 就像我们有了模具 才能生产各种产品一样 Python中 万事万物都可以是对象 类 这种模板层级的本身也
  • linux入门---如何实现用户切换

    目录标题 基本用户认识 用户的切换 su su exit su 用户名 sudo 基本用户认识 在linux系统中将用户分为两个大类一个是root用户一个是普通用户 root用户是linux操作系统的超级管理员 相当于古代的皇帝不会受到任何