有错的地方,或者不同意见的,烦请留言,或者发邮箱。

邮箱地址:1746902011@qq.com

—————————————————————————————————

su,就是switch user,即转换用户的意思。

sudo的出现只是为了让su安全一点,rm命令用起来爽,代价可大了。

gyz是home下的一个用户。

1,先看终端表面上的区别:

a,从普通用户gyz切换到超级用户root(后面不跟root用户名)

a1.........su:(允许操作)

[gyz@archlinux ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[gyz@archlinux ~]$ su
密码:
[root@archlinux gyz]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[root@archlinux gyz]# pwd
/home/gyz
[root@archlinux gyz]# 

a2.........su -:(允许操作)

[gyz@archlinux ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[gyz@archlinux ~]$ su -
密码:
[root@archlinux ~]# ls
[root@archlinux ~]# pwd
/root
[root@archlinux ~]# 

a3.........sudo:(半允许操作)

[gyz@archlinux ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[gyz@archlinux ~]$ sudo
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user][command]
usage: sudo [-AbEHknPS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout][-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C num] [-g group] [-h host] [-p prompt] [-T timeout][-u user] file ...
[gyz@archlinux ~]$ 

b,从普通用户gyz切换到超级用户root(后面跟root用户名)

b1.........su root:(允许操作)

[gyz@archlinux ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[gyz@archlinux ~]$ su root
密码:
[root@archlinux gyz]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  job  work
[root@archlinux gyz]# pwd
/home/gyz
[root@archlinux gyz]# 

b2.........su - root:(允许操作)

[gyz@archlinux ~]$ ls
job  work  下载  公共  图片  文档  桌面  模板  视频  音乐
[gyz@archlinux ~]$ su - root
Password:
[root@archlinux ~]# ls
[root@archlinux ~]# pwd
/root
[root@archlinux ~]# 

b3.........sudo root:(无此操作)

[gyz@archlinux ~]$ ls
job  work  下载  公共  图片  文档  桌面  模板  视频  音乐
[gyz@archlinux ~]$ sudo root
[sudo] password for gyz:
sudo: root: command not found
[gyz@archlinux ~]$ 

从上面的a1和b1是等效的,a2和b2也是等效的,事实上,su和su -后面不加root的话,默认就是root。

2,从普通用户gyz到普通用户tester

home下没有tester这个用户的,可以添加一个tester:

[gyz@archlinux home]$ ls
gyz  tester
[gyz@archlinux home]$ mkdir tester
mkdir: 无法创建目录 “tester”: 文件已存在
[gyz@archlinux home]$ sudo useradd -d /home/tester -s /bin/bash tester
useradd:用户“tester”已存在
[gyz@archlinux home]$ sudo passwd tester
新的 密码:
重新输入新的 密码:
passwd:已成功更新密码
[gyz@archlinux home]$ 

-d是指定/home/tester 为主目录,-s是指定shell 脚本。

a1.........su tester:(允许操作)

[gyz@archlinux home]$ su tester
密码:
[tester@archlinux home]$ ls
gyz  tester
[tester@archlinux home]$ pwd
/home
[tester@archlinux home]$

a2.........su  - tester:(允许操作)

[gyz@archlinux home]$ su - tester
Password:
[tester@archlinux ~]$ ls
[tester@archlinux ~]$ pwd
/home/tester
[tester@archlinux ~]$ 

a3.........sudo tester:(不允许操作)

[gyz@archlinux home]$ sudo tester
sudo: tester:找不到命令
[gyz@archlinux home]$ 

3,本质区别:

a,“su 用户”只是用户身份切换了,但是环境没有变,比如bash的配置,用的是切换前的用户的,我们pwd的时候,也发现了,切换前后,路径并没有变;

b,“su -  用户”不但用户身份切换了,而且环境也跟着变了,此时bash的配置,使用的root的配置,pwd的时候,发现它跑到了它的主目录下了,即我们cd ~的那个目录;

c,“sudo 命令”只是允许用户以root身份执行该命令,权利仅仅限于此次命令的执行,在/etc/sudoers(这个文件是only read的,可以先给个写权限,写完保存,再取消写权限,不过我看到说sudo visudo会保证该文件的读写安全性,即你在修改时,别人不能修改)里面修改;

d,“su 用户”“su - 用户”这里输入的密码是要切换到的用户的密码(如果是root,则输入root的密码),"sudo 命令"只是当且用户的密码;

e,“sudo 命令”也不牵扯切换用户的说法,所以sudo虽然麻烦,但是比较安全;

f,su -比su多了一些操作,主要是读取了root和系统的bash的配置文件;

g,sudo在部分脚本或者软甲内是不能用的,会看是不是全部的root身份;

h,su -等同于su过去后执行: bash /etc/profile和bash /root/.bashrc;

l,如果切换身份最好使用su - xxx。

推荐一个QQ群:374738050

linux的su,su - 和sudo的区别相关推荐

  1. Linux命令su和sudo的区别在哪?各有什么用途?

    不少刚接触Linux操作系统的小伙伴都说Linux命令太多了,很多命令也很相似,搞不清楚怎么办?本篇文章以su和sudo为例,为大家讲一下两者的区别,如果你也不太清楚,请看完本篇文章,请看下文: 什么 ...

  2. linux下su和sudo的区别 (/libtool: arm-linux-gcc command not found )

    由于没有搞清楚SU和SUDO两者的区别,最近经常编译程序时出错,现在把它们的区别写下来备忘,和大家一起学习 su 和 sudo 的区别:     1.共同点:都是root用户的权限:     2.不同 ...

  3. linux sudo -i 参数,Linux系统中su、sudo、sudo su、sudo -i命令的用法和区别小结

    在Linux系统软件中,因为root的权限过大,一般状况也不应用它.只能在一些独特状况下能选用登陆root实行管理方法每日任务,一般状况下临时性应用root权限多选用su和sudo命令. su命令就是 ...

  4. linux su、su -和sudo的区别

    su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境. su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境. 这个涉及到不同用户下的 ...

  5. Linux中su命令与sudo命令

    ps:前几天,实验室的同学问到为什么sudo cd命令不行,我当时帮他解决了这个问题,但是我想了想我自己也不太清楚为什么sudo cd不行,而需要用到su root然后再使用cd命令.所以自己在网上找 ...

  6. linux以root登陆命令,su命令和sudo命令,以及限制root用户登录

    一.su命令 su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码. 命令su的格式为: su [-] username 1.后面可以跟 '-' 也可以不跟,普通用户su不 ...

  7. 【Linux篇】kali Linux下的su、sudo命令用法说明

    [Linux篇]kali Linux下的su.sudo命令用法说明 ​ 总结一下su.sudo命令用法区别-[suy] 文章目录 [Linux篇]kali Linux下的su.sudo命令用法说明 1 ...

  8. linux如何进入su超级用户,Linux下普通用户用sudo su给自己加root权限的方法

    首先: sudo这个命令就是给后面的命令加上root权限(sudo=superuser do),su这个命令是switch user,切换用户,你sudo su这个命令的意思是用root的权限来切换到 ...

  9. su和sudo的区别

    linux中 su和sudo的区别 su和sudo是两个常用的切换到root超级用户命令.功能上类似,但使用上还是有不少差异. su命令 su是切换到root用户的命令,主要用法如下: su:不带参数 ...

  10. Linux中关于 su 和 su - 的区别

    Linux中关于 su 和 su - 的区别 一.切换用户 二.su和su - 1.su 用户名 (不加参数-) 2.su - 用户名 2.我们用man手册查看一下su的详细说明 一.切换用户 我们在 ...

最新文章

  1. ffmpeg + opencv 把摄像头画面保存为mp4文件
  2. 解救被困传销女演员 助人减肥找老婆 蚂蚁森林又现神功能
  3. ueditor编辑器java使用_ueditor编辑器的用法图文教程
  4. 为什么Java在后来的版本中,给接口增加了默认方法、静态方法、私有方法?
  5. 缓存问题引发的一系列优化
  6. CREELINKS平台_处理器CeAd资源使用说明(CeAd的配置与使用)
  7. CSS基础——CSS样式的引入和规则【学习笔记】
  8. Qt学习笔记之——生成exe可执行文件并打包生成安装软件
  9. unixlinux命令,20个 Unix/Linux 命令技巧
  10. 基于java的百货中心供应链管理系统
  11. 用python为自己打造独一无二的logo
  12. Excel散点图 如何用平滑线 连接 不连续的点
  13. 《北风网网友录制Silverlight入门系列视频教程》共23课时/更新完毕[压缩包]
  14. PHP手表,基于PHP的手表购物商城网站的设计与实现(MySQL)(含录像)
  15. FlexiGrid插件的使用(ASP项目)
  16. 网络安全等级保护指南|网络安全等级保护测评周期需要多久
  17. 计算器求解一元一次方程
  18. ASCII码和Unicode字符集
  19. NFT行业名词、用语篇
  20. javaweb JSP JAVAJSP 新闻发布系统源码(JSP新闻管理系统)JSP新闻系统

热门文章

  1. VLAN实验——华为
  2. 【干货】通俗易懂的ISO27001科普资料,附高清下载
  3. Altova MapForce数据映射工具
  4. 用Phaser来制作一个html5游戏——flappy bird (一)
  5. 单目图像深度估计——Monodepth2
  6. matlab lda数据降维,LDA有标签数据降维
  7. 进阶题66 字符串统计
  8. C++ —— 类的声明
  9. 学校人员定位管理系统
  10. 计算机采用什么复用技术,多路复用技术