首页 > 系统相关 >Linux中su命令与sudo命令的区别

Linux中su命令与sudo命令的区别

时间:2023-08-25 15:32:59浏览次数:34  
标签:密码 sudo 用户 su 命令 root

  su命令与sudo命令是Linux中比较常用的命令,sudo是以root用户方式执行命令,su是用来变更其他使用者的身份来执行命令。那么Linux中su命令与sudo命令的区别是什么?我们通过这篇文章详细讲解一下。

  1、关于密码

  两个命令的最大区别是:sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码。很明显,就安全而言,sudo命令更好。例如,考虑到需要root访问权限的多用户使用的主机,使用su命令意味着需要与其他用户共享root用户密码,这显然会降低安全性。

  此外,如果要撤销特定用户的超级用户/root用户的访问权限,唯一的办法就是更改root密码,然后再告知所有其他用户新的root密码。

  而使用sudo命令就可以很好地处理以上的两种情况。鉴于sudo命令要求输入的是其他用户自己的密码,所以,不需要共享root密码。同时,想要阻止特定用户访问root权限,只需要调整sudoers文件的相应配置即可。

  2、默认行为

  两个命令之间的另外一个区别是其默认行为。sudo命令只允许使用提升的权限运行单个命令。而su命令会启动一个新的shell,同时允许使用root权限运行尽可能多的命令,直到明确退出登录。

  因此,su命令的默认行为是有风险的,因为用户有可能会忘记他们正在以root用户身份进行工作,于是,无意中做出了一些不可恢复的更改。

  3、日志记录

  尽管sudo命令是以目标用户的身份执行命令,但是它们会使用sudoer所配置的用户名来记录是谁执行命令。而su命令是无法直接跟踪记录用户切换到root用户之后执行了什么操作。

  4、灵活性

  sudo命令比su命令灵活很多,可以限制sudo用户可以访问哪些命令,用户通过sudo命令只能访问他们工作需要的命令,而su命令让用户有权限做任何事情。

  5、sudo su

  大概是因为使用su命令或直接以root用户身份登录有风险,所以一些Linux发行版默认禁用root用户账户。然而还是可以成功执行su命令,而不用输入root用户的密码,运行以下命令:sudo su

  由于使用sudo运行命令,只需要输入当前用户的密码。所以,一旦完成操作,su命令将会以root用户身份运行,这意味着它不会再要求输入任何密码。

  如果想在系统中启用root用户账户,必须手动设置root用户密码,可以使用以下命令:sudo passwd root。

标签:密码,sudo,用户,su,命令,root
From: https://blog.51cto.com/u_14661964/7231476

相关文章

  • 直接从命令行启动xilinx/SDK并打开工程
    编写一个启动脚本s19sdk.sh,内容如下:#!/bin/bashsource/opt/Xilinx/SDK/2019.1/settings64.shxsdk-workspace~/work/myproject/myproject.sdk&然后增加执行权限后运行,chmoda+xs19sdk.sh./s10sdk.sh参考:https://www.coder.work/article/7965726......
  • npm 常用命令 常用知识
    1、常用命令参考:https://www.cnblogs.com/BJQE/p/16510627.htmlhttps://zhuanlan.zhihu.com/p/4424078791、清除缓存有时候安装或卸载模块时,出现错误,有可能是缓存未清理的缘故。npmcacheclean--force2、知识点2.1 npmi和npminstall的区别实际使用的区别点主要如下(......
  • Linux命令之文件的增、删、移、查、授权操作
    骑士李四记录:Linux常用命令文件基本属性chgrp:更改文件属性:chgrp[-R]属组名文件名-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。chown:更改文件属主,也可以同时更改文件属组chmod:更改文件9个属性对文件操作:4.下载文......
  • Vue3内置组件suspense用法
    1、作用在使用异步组件时,由于需要等待组件加载完成后才能显示,因此可能会出现页面空白或显示错误信息的情况。而Suspense组件的作用就是在异步组件加载完成前显示一个占位符,提高用户体验。2、用法首先子组件AsyncShow:使用了promise包裹代码<template><div><h1>{{re......
  • vue-cli4 配置不同开发环境打包命令
    #......
  • ci框架url传递参数出现:The URI you submitted has disallowed characters
    原因:这是由于uri中存在CI不允许的字符。解决办法:在config/config.php文件中,找到$config['permitted_uri_chars']='a-z0-9~%.:_/-i';在里面添加允许的字符。如我需要添加@符号,则可以这样:$config['permitted_uri_chars']='a-z0-9~%.:_/-i@......
  • Commit failed (details follow): Working copy text base is corrupt Checksum misma
    问题:提交一个svn文件报错,提交其他文件没有报错解决办法:(网上看了很多方法都解决不了):1、把文件拷贝到svn目录外放着2、把svn目录下文件移除,然后commitsvn3、把目录外的文件拷贝进来,先Add,然后commit就成功了......
  • select查询优化命令::::
    MySQL优化原理可不像大家想的那样简单啊!点击关注......
  • VS插件DevExpress CodeRush v23.1 - 支持Visual Studio ARM
    DevExpress CodeRush是一个强大的VisualStudio.NET插件,它利用整合技术,通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first申明,强大的模板,智能的选择工具,智能代码分析和创新的导航以及一个无与伦比的重构集,在它们的帮助......
  • .bat命令执行删除操作
    REM快速删除当前目录中所有的.rar后缀文件echooffREM检查是否存在以.rar为后缀的文件dir/B*.rar>nul2>&1if%errorlevel%equ0(REM存在以.rar为后缀的文件,删除它们del/Q*.rarechodeleteallrarfilesuccess)else(echorarfile......