Linux里面su和sudo命令区别在哪里?su和sudo都是Linux操作系统里面比较常见的命令,而且sudo命令很多方面类似于su命令,所以有的时候大家分不清楚它们,那么Linux中su和sudo命令有什么区别?如果你还不清楚,这篇文章千万别错过!
定义上的区别:
su为switch
user,即切换用户的简写 。su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su-username,然后输入password就OK了,可是root用su切换到其他身份的时候是不需要输入password的 。
sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令 。
格式上的区别:
su格式有两种:su -l USERNAME、su USERNAME 。
sudo格式:sudo -u USERNAME COMMAND 。
密码上的区别:
两个命令的最大区别是:sudo命令需要输入当前用户的密码 , su命令需要输入root用户的密码 。
日志记录上的区别:
尽管sudo命令以目标用户的身份执行命令 , 但是它们会使用sudoer所配置的用户名来记录是谁执行的命令 。而su命令是无法直接跟踪记录用户切换到root用户之后执行了什么操作 。
灵活性上的区别:
sudo命令比su命令灵活很多,甚至可以限制sudo用户可以访问哪些命令 。换句话来讲,用户通过sudo命令只能访问他们工作需要的命令,而su命令让用户有权限做任何事情 。
Linux下su命令怎么使用Linux sulinux命令su , 全拼:switch user,命令用于变更为其linux命令su他使用者linux命令su的身份,除root外,需要键入使用者linux命令su的密码 。
使用权限:所有使用者
语法:
su [参数] [-] [用户帐号]
参数说明:
-f或者--fast不必读启动档,仅用于csh或tcsh
-m -p或者-preserve-environment执行su时不改变环境变数
-c command或者--command=command变更为账号为USER的使用者并执行指令后再变回原来使用者
-s shell或者--shell=shell指定要执行的shell,预设值为/etc/passwd内的该使用者shell
-help 显示说明文件
--version 显示版本资讯
-
-l或者--login这个参数加linux命令su了之后,就好像是重新login为该使用者一样 , 大部分环境变数都是以该使用者为主,并且工作目录也会改变,如果没有指定USER,内定是root
USER 欲变更的使用者账号
ARG 传入新的shell参数
Linux下 su命令与su - 命令有什么区别?Linux下 su命令与su - 命令的区别:
一、切换root身份不同
1、su命令:su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了 。只有切换了Shell环境才不会出现PATH环境变量错误 , 报command not found的错误 。
2、su - 命令:su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了 。
二、采用su deploy命令后,取目标用户不同
1、su命令:su不会读取目标用户的环境配置文件,如图 。
2、su - 命令:su - 读取目标用户的环境配置文件,如图 。
综上总结:有“-”和无“-”各自的环境变量不同 。
三、service命令
1、su命令:使用 su root 切换到root用户后,不可以使用service命令;
2、su - 命令:使用 su - 后,就可以使用service命令了 。
四、用echo $PATH命令后 , 环境量不同
1、su命令:环境量变为usr 。
2、su - 命令:环境量变为oracle 。
linux命令中su是什么意思su的全称并不是super user,而是switch user,是不是就突然明白了?是切换用户的意思 。su的一般使用方法是su或者su -,两种方法虽然只差了1个字符 , 但也是有比较大的差异的 。
加入了-参数,就是login-shell的方式,也就是说切换到另一个用户之后,当前的shell会加载对应的环境变量和各种设置;
如果没有加入-参数,就是non-login-shell的方式 , 也就是说当前的shell还是加载切换之前的那个用户的环境变量以及各种设置 。
如果不想因为切换到另一个用户导致自己在当前用户下的设置不可用,那么就可以用non-login-shell的方式;如果切换用户后,需要用到该用户的各种环境变量,那么使用login-shell方式即可 。
linux切换用户命令linux切换用户的命令是“su” 。
普通用户之间切换以及普通用户切换至 root 用户linux命令su,都需要知晓对方的密码linux命令su , 只有正确输入密码,才能实现切换linux命令su;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功 。
su 命令的基本格式linux命令su:# su [选项] 用户名 ;
选项:
-:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户 。
-l:同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号 。
-p:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件) 。
-m:和 -p 一样;
-c 命令:仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令 。
su(Switch User)切换到超级管理员
使用su命令所有管理员都必须知道root账号的密码;
sudo(Switch User and DO)以超级管理员身份执行;
sudo使得普通管理员使用自己的密码也可以获得超级管理员权限;
linux 常用系统命令
# 查看ip地址
ip a
ip addr
# ping网络(测试网络连通)
ip 目标机器的ip
# 查看系统时间
date
# 注销
logout
# 关机
shutdown now
# 重启
reboot
# 清屏
clear
linux su和sudo命令的区别su
su的全称并不是super user , 而是switch user,是不是就突然明白了?是切换用户的意思 。su的一般使用方法是su或者su -,两种方法虽然只差了1个字符 , 但也是有比较大的差异的 。
加入了-参数,就是login-shell的方式 , 也就是说切换到另一个用户之后,当前的shell会加载对应的环境变量和各种设置;
如果没有加入-参数,就是non-login-shell的方式,也就是说当前的shell还是加载切换之前的那个用户的环境变量以及各种设置 。
如果不想因为切换到另一个用户导致自己在当前用户下的设置不可用,那么就可以用non-login-shell的方式;如果切换用户后,需要用到该用户的各种环境变量,那么使用login-shell方式即可 。
sudo
全称为super user do,即以超级用户的方式执行命令,这里的超级用户指的就是root用户,我们在Linux中有时会遇到permission
denied的情况,如以ubuntu用户的身份查看/etc/shadow的内容,因为它是只有root用户才能查看的,这个时候就可以使用sudo 。
两者的区别在于:
使用su - 提供root账号的密码,可以切换到root用户;
使用sudo su -,提供当前用户的密码 , 也可以切换到root用户 。
如果我们的Linux系统有很多用户需要使用的话,前者要求所有用户都知道root用户的密码,显然是非常危险的;后者是不需要暴露root账户密码的,用户只需要输入自己的账户密码就可以 。
【linux命令 su linux命令su权限不够】关于linux命令su和linux命令su权限不够的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 奶茶摊直播话术,奶茶店直播做什么活动好
- 哪里下载net类库,net文件下载
- 休闲游戏用脑益智教案,休闲脑力游戏
- 好玩聊天模拟器游戏,好玩聊天模拟器游戏有哪些
- linux命令error linux命令行大全
- 光与影拍摄思路是什么,光与影与摄影艺术
- 滋水模拟器游戏,舀水模拟器
- excel怎么合计,excel怎么合计筛选出来的数据
- 记录linux命令工具 记录linux操作日志 工具