Linux中su、su -和sudo的区别
su 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。
su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境。
这个涉及到不同用户下的环境变量的配置。
sudo
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码(sudo用的不是root密码,而是当前用户密码),所以sudo相对于权限无限制性的su来说,还是比较安全的,所以sudo也能被称为受限制的su,另外sudo是需要授权许可的,所以也被称为授权许可的su。
sudo执行命令的流程是当前用户切换到root(或其他指定切换到的用户),然后以root(或其他指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户,而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。
sudo的配置文件是/etc/sudoers,我们可以用他的专用编辑工具visodu来进行配置,配置好后,可以切换到您授权的用户下,通过sudo -l来查看哪些命令是可以执行或禁止的。
之所以把这三个命令拿出来,是要提醒自己这三个命令是有区别的,在使用时遇到错误就要仔细想一下。
至于怎样配置使用sudo,一般不做服务器管理应该用不到,这里不做详细介绍,需要的时候可以去学习。
sudo的运行有这样一个流程:
1).当用户运行sudo时,系统于/etc/sudoers文件里查找该用户是否有运行sudo的权限;
2).若用户具有可运行sudo的权限。那么让用户输入用户自己的password,注意这里输入的是用户自己的password。
3).假设password正确。变開始进行sudo后面的命令,root运行sudo是不须要输入password的,切换到的身份与运行者身份同样的时候。也不须要输入password。
以下看看/etc/sudoers这个配置文件:
为何刚開始仅仅有root能运行sudo,切换到root身份通过visudo查看/etc/sudoers这个配置文件,假设是vim /etc/sudoers是能够查看的,可是不能改动,由于sudoers这个文件是由语法的,仅仅能通过visudo来改动。第一个红色方框那行代码,这行代码是什么意思呢。第一列root不用多说,是用户账号,第二列的ALL意思是登陆者的来源主机名,第三列等号右边小括号里的ALL是代表能够切换的身份。第四列ALL是可运行的命令。
总的来说:
(1)sudo 需要自己的密码,su需要root的权限密码。
(2)sudo是通过配置文件,暂时赋予用户某些权限,然后命令执行完之后收回权限,su是切换用户。
(3)至于改变用户的环境和不改变用户的环境这个区别还不太懂。
参考:
http://blog.csdn.net/robot__man/article/details/38920535
https://www.cnblogs.com/slgkaifa/p/6852884.html
Linux中su、su -和sudo的区别的更多相关文章
- Linux中yum和apt-get用法及区别
Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debi ...
- linux中fork, source和exec的区别
转:linux中fork, source和exec的区别 shell的命令可以分为内部命令和外部命令. 内部命令是由特殊的文件格式.def实现的,如cd,ls等.而外部命令是通过系统调用或独立程序实现 ...
- linux中软链接和硬链接的区别与小结
ln命令 该命令在文件之间创建链接.这种操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称.对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题. 如果链 ...
- linux中软连接和硬链接的区别
linux中创建软连接和硬链接的方法: 软连接: ln -s oldfile slink 硬连接: ln oldfile hlink linux中创建软连接和硬链接的区别: 原理上,硬链 ...
- linux中/etc/profile 和 ~/.bash_profile 的区别
在 linux中设置环境变量一般使用bash_profile进行配置 其中/etc/bash_profile 表示系统整体设置 ,生效后系统内所有用户可用而 ~/.bash_profile 只表示当前 ...
- Linux中无权限使用sudo
提示:$USER is not in the sudoers file. This incident will be reported. 解决方法: 切换到root用户,su 编辑sudo配置文件,v ...
- Linux中apt与apt-get命令的区别与解释
2019-01-15 14:35:39 随着 apt install package 命令的使用频率和普遍性逐步超过 apt-get install package,越来越多的其它 Linux 发行版 ...
- 在linux中,&和&&, |和|| ,&> 与 >的区别
对应刚接触linux命令的小伙伴们来说,这些符号一定是很困扰的下面我们一起来看这些符号区别和用法 & 表示任务在后台执行,如要在后台运行 如: [root@localhost local]# ...
- Linux中nohup和&的用法和区别
在Linux执行任务时,如果键入Ctrl+C退出进行其他任务或者关闭当前session 当前任务就会终止 要想不让进程停止或者让进程在后台运行,就需要一些命令,nohup和&就是一种非常好的方 ...
- Linux中select poll和epoll的区别
在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select.poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加 ...
随机推荐
- Linux基础命令---fold
fold 按照指定的宽度显示文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 fold [选项] fil ...
- djando 项目用django自己服务器在局域网中被访问设置
这是一个相当操蛋的东西,害老子搞了那么久,其实嘞,也用不着那么恨,都是自己做的孽!! -----------------人工分割线----------------------------------- ...
- springBoot 打包 dubbo jar包
参看链接:http://blog.csdn.net/cqdz_dj/article/details/51942681 http://blog.csdn.net/u014695188/art ...
- 初识C++继承
先是自己凭借自己在课堂上的记忆打了一遍.自然出了错误. //编译错误 #include <iostream> #include <cstdlib> using namespac ...
- linux 多进程fork
对于父进程,fork函数返回了子程序的进程号,而对于子程序,fork函数则返回零,这样,对于程序,只要判定fork函数的返回值,就知道自己是处于父进程还是子进程中.
- 怎么彻底删除2345的各种顽固Process
清晨打开电脑,都是2345的不良新闻,心情不美美哒 2345如何卸载? “C:\Windows\System32\drivers”目录删除Mslmedia.sys 开始-运行-cmd输入“sc del ...
- MongoDB(课时24 全文索引)
3.6.3 全文索引 在一些信息管理平台上经常需要进行信息模糊查询,最早的时候是利用了某个字段上实现的模糊查询,但这个时候返回的信息并不会很准确,因为只能够查A字段或B字段,而在MongoDB里面实现 ...
- [ios][swift]文本框UITextField用法
参考:http://www.hangge.com/blog/cache/detail_530.html
- [ogre]ogre::Animation
参考:http://blog.csdn.net/leonwei/article/details/5819248 http://blog.csdn.net/debugconsole/article/de ...
- 关于python中的 “ FileNotFoundError: [Errno 2] No such file or directory: '……'问题 ”
今天在学python时,在模仿一个为图片加上图标并移动到指定文件夹的程序时遇到“FileNotFoundError: [Errno 2] No such file or directory: '152 ...