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

邮箱地址: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. 危险工种 机器人逃生记_袋料自动搬运机器人为什么能取代人工搬运
  2. LinkedBlockingQueue 解析
  3. Delphi异常处理总结
  4. 74HC595的使用
  5. ASP程序实现网页伪静态页源代码
  6. POJ - 1328 Radar Installation(贪心+思维)
  7. Python标准库之csv(1)
  8. 数组与串,串的实现,KMP,BF算法
  9. 笔试算法题(26):顺时针打印矩阵 求数组中数对差的最大值
  10. controller层没反应_一脚踏空就没命!57岁民警33层楼顶飞身救人
  11. 南阳理工ACM 28大数阶乘
  12. 统计学考试带计算机,统计学试题
  13. Oracle(plsql)数据导入导出
  14. 计算机网络知识之交换机、路由器、网关、MAC地址
  15. 如何才能提高团队工作效率
  16. dct椒盐噪声去噪效果不好_椒盐噪声去除方法分析及对比研究
  17. 非银行支付机构网络支付业务管理办法对第三方支付账户的影响
  18. Python技术项目实践
  19. AUTOCAD——图形单位与图形边界
  20. 解决:远程连接mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database ‘xxxxxx‘

热门文章

  1. redis 必知必会
  2. linux节点间拷贝文件命令
  3. 洛奇英雄转无法读取游戏服务器状态,《洛奇英雄传》服务器认证失败解决方法攻略...
  4. 详解WinRar的自解压路径及命令
  5. PHP MySQL 子查询(subquery)语法与用法实例
  6. 原来这才是使用普洱熟茶减肥的正确方式!
  7. java 高内聚低耦合_关于高内聚低耦合概念的理解
  8. 开学季蓝牙耳机怎么选?盘点2022学生党高音质蓝牙耳机推荐
  9. 微服务架构之 —— RPC框架
  10. 预训练模型-从BERT原理到BERT调包和微调