Linux中sudo、su和su -命令的区别

Linux中sudo、su和su -命令的区别小结

我们知道,在Linux下对很多文件进行修改都需要有root(管理员)权限,比如对/ect/profile等文件的修改。下面这篇文章主要给大家总结介绍了关于Linux中sudo、su和su -命令的区别的相关资料,需要的朋友可以参考下

前言

在Linux系统中,由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。

su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户tom登录的,但要添加用户任务,执行useradd ,tom用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出tom用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出tom用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。

我们可以看到当然通过su切换是一种比较好的办法;通过su可以在用户之间切换,而超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。

sudo

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

格式:sudo -u USERNAME COMMAND

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

sudo的运行有这样一个流程:

1).当用户运行sudo时,系统于/etc/sudoers文件里查找该用户是否有运行sudo的权限;

2).若用户具有可运行sudo的权限。那么让用户输入用户自己的password,注意这里输入的是用户自己的password。

3).假设password正确。变開始进行sudo后面的命令,root运行sudo是不须要输入password的,切换到的身份与运行者身份同样的时候。也不须要输入password。

su

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

su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su - username,然后输入password就ok了,可是root用su切换到其它身份的时候是不须要输入password的。

格式为两种:

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

su USERNAME

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

su USERNAME,与su - USERNAME的不同之处如下:

  • su - USERNAME切换用户后,同时切换到新用户的工作环境中。
  • su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。

如何设置初始su密码?

当我们输入su时会发现要输入密码,我们尝试输入自己当前用户的密码,发现failure。

但我们又不知道su密码是什么?其实su初始密码可以通过下面方式进行设置:

sudo  passwd

设置完后再输入su命令并键入刚才设置的密码即可进入~

在这里插入图片描述

su -

su -,su -l或su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用su -命令则默认转换成成root用户了。

而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。

注意:su -使用root的密码,而sudo su使用用户密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555331.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何根据进程号去查端口号?

1.查出进程号 eg: ps -ef |grep conet- 2.根据当前进程号获得端口号: eg: netstat -anp |grep 4118 得到当前的端口是8761

Linux中如何查看某个端口是否被占用的方法

LINUX中如何查看某个端口是否被占用的方法 之前查询端口是否被占用一直搞不明白,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作&…

深入理解synchronized底层原理

文章目录前言一、synchronized的特性1.1 原子性1.2 可见性1.3 有序性1.4 可重入性二、synchronized的用法三、synchronized锁的实现3.1 同步方法3.2 同步代码块四、synchronized锁的底层实现五、JVM对synchronized的优化5.1 锁膨胀5.1.1 偏向锁5.1.2 轻量级锁5.1.3 重量级锁5.2…

centos7重新加载服务的命令_CentOS7 从查看、启动、停止服务说起systemctl

执行命令“systemctl status 服务名.service”可查看服务的运行状态,其中服务名后的.service 可以省略,这是CenOS7以后采用systemd作为初始化进程后产生的变化。Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。Systemd是一…

一体化住户调查_曲麻莱县2020年城乡一体化住户调查表彰会暨年报部署会

为全面推进我县城乡一体化住户调查工作,总结经验、鼓励优秀,提高统计员和辅助调查员的工作积极性,提高账本数据质量,11月25日下午,县统计局组织召开2020年全县城乡一体化住户调查工作表彰会暨年报部署会。全县6个镇的统…

电力系统继电保护第二版张保会_电力系统继电保护试题

一、填空题(每小题1分,共20分)1.电气元件配置两套保护,一套保护不动作时另一套保护动作于跳闸,称为_近后备_保护。2.电流继电器的_返回_电流与动作电流的比值称为继电器的返回系数。3.反应电流增大而瞬时动作的保护称为__无时限电流速断保护_…

Linux中shell脚本详解

文章目录1、第一个脚本程序:2、shell获取字符串长度:3、shell变量:4、**引用shell变量**:5、shell变量的赋值、修改、删除:5、shell特殊变量:6、shell中字符串的拼接:**7、字符串的截取**8、she…

java递归实现多级菜单栏_Java构建树形菜单以及支持多级菜单的实例代码

这篇文章主要介绍了Java构建树形菜单的实例代码(支持多级菜单),非常不错,具有参考借鉴价值,需要的朋友可以参考下效果图:支持多级菜单。菜单实体类:public class Menu {// 菜单idprivate String id;// 菜单名称private String nam…

java中clone方法的理解(深拷贝、浅拷贝)

文章目录前言:知识点一:什么是浅拷贝?知识点二:什么是深拷贝?知识点三、java拷贝(clone)的前提:知识点四:浅拷贝案例:拷贝类:测试类:总…

mysql实现内容加密_简单为mysql 实现透明加密方法

一般用户在数据库中保存数据,虽然数据库存储的是二进制,无法直接明文打开查看,但是如果是一个外行人,直接连接进入mysql中,还是可以直接查看数据的。所以对于一些核心数据,特别是企业重要数据资产&#xff…

Java之AQS(AbstractQueuedSynchronizer)

Java之AQS(AbstractQueuedSynchronizer) AQS 介绍 AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。 ● 是用来实现锁或者其他同步器组件的公共基础部分的抽象实…

SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道

最近,有很多人在传说 SpringBoot要出3.0的版本了,并且宣布不再支持 Java 8,最低要求是 Java 17了。 其实,早在2021年9月份,关于 Spring Framework 6.0的消息出来的时候,Spring 官方就已经明确了不会向下兼…

jmeter mysql数据导出_Jmeter连接mysql

一、下载添加jar包image.png添加方法:1.拷贝到jmeter/lib目录下,此方法需重启jmeter2.直接在jmeter的测试计划中导入image.png二、连接mysql数据库添加配置元件-JDBC Connection Configurationimage.pngimage.png1.Variable Name for created pool&#…

判断一个坐标点是否在不规则多边形内部的算法

参考:https://wrf.ecse.rpi.edu//Research/Short_Notes/pnpoly.html 在GIS(地理信息管理系统)中,判断一个坐标是否在多边形内部是个经常要遇到的问题。乍听起来还挺复杂。根据W. Randolph Franklin 提出的PNPoly算法,…

mysql++多版本安装_MySQL多版本多实例安装启动

多版本,大版本不同测试多实例,一个MySQL5.7.30一个MySQL8.0.20解压8.0tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tartar -xJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz改名移动/mysql8.0.20mv mysql-8.0.20-linux-glibc2.12-x86_64 /mysql8.0.2…

cheungssh mysql密码_CheungSSH安装及基本使用

CheungSSH比Ansible的使用更简单,尤其是配置方面!而Ansible有的功能, 我的这个程序一样有,和Ansible一样是python开发, 所以跟Ansible的模式一样, 但是CheungSSH 操作更简单!配置更轻量&#xf…

mybatis group by 分组查询:将返回结果封装为map

文章目录1. 最简单但性能最差的做法2. 使用group by分组查询&#xff0c;将查询结果封装成类3.group by分组查询&#xff0c;将结果封装为map。直接封装为map&#xff1f;List1. 最简单但性能最差的做法 在逻辑层分多次对数据库进行查询。伪代码如下。 List<String> na…

esl证明函 oracle_强弱分明 Astralis证明之战—ESL科隆B组浅析

HLTV排名前16名中的13支队伍(缺席的是G2和North)将齐聚这座坐落在莱茵河畔的城市进行厮杀&#xff0c;争夺比赛的最高荣誉。这项赛事也是继今年卡托维茨Major以来含金量最高&#xff0c;强队参赛最多的线下赛事。下面我们就来分析一下B组的出线形势。B组分组*本次比赛的赛制依旧…

关于new ArrayList()和Collections.emptyList()

很明显 new ArrayList()是创建一个Collection实例&#xff0c;它是Collection集合下面的一个实现类&#xff08;中间继承了AbstractList&#xff09;&#xff0c;它的实例有Collection的增加&#xff0c;删除&#xff0c;修改等方法&#xff0c; ArrayList平常用的很多&#x…

ArrayList()和Collections.emptyList()的区别emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方

前言 Java中ArrayList或许是我们平时开发最常用的一个集合类了&#xff0c;其次是HashMap&#xff0c;基本上满足了业务开发的绝大多数场景。今天要说的就是Collections.emptyList()和new ArrayList()的区别以及注意事项。 先来一段代码 运行main方法&#xff0c;会有如下输出…