Linux su与sudo的区别
来源:互联网 发布:苹果8手机怎么打开网络 编辑:程序博客网 时间:2024/05/22 14:26
su的用法
su命令就是切换用户的工具。
比如我们以普通用户dustin登录的,但要添加用户任务,执行useradd ,dustin用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出dustin用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su切换是一种比较好的办法;通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其它任何用户都需要密码验证。
su 不加任何参数
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变工作目录和环境变量:
su - 加了-作为参数
su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境:
-实际上是–login的缩写:
su的优缺点
su 的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦。
“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的。
sudo的用法
通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su。
sudo的运行过程是这样的:
- 检查用户是否在/etc/sudoers的列表中
- 如果在,以root权限执行命令
- 取消用户的root
例如,用户dustin是没有查看/etc/shadow文件的权限,但是我在创建dustin这个用户时曾经赋予了他可以作为管理员的权限,所以当用sudo执行less /etc/shadow命令时,系统会提醒我要小心操作,然后输入dustin的密码即可执行,而不需要使用root密码,这样既可以让多人来管理系统,又减少了root密码泄露的可能。而且此命令执行之后,获取的管理员权限立刻就会失去。
而且很容易发现,sudo和su一样,没有切换工作目录和环境变量,只是赋予用户权限:
- Linux su与sudo的区别
- linux上su与sudo su的区别
- 【linux】 su,su -,和sudo的区别
- su与sudo su之间的区别
- su与sudo的区别
- su 与 sudo的区别
- su与sudo的区别
- su与sudo的区别
- sudo与su的区别
- Linux实际操作中命令 su 与 sudo 的区别
- Linux命令中su与sudo的区别
- Linux命令中su与sudo的详细区别
- Linux命令中su与sudo的详细区别
- linux权限su与sudo区别
- sudo与su区别
- linux su和sudo命令的区别
- linux su和sudo命令的区别
- linux su和sudo的区别
- libgdx显示gif动画
- MD5
- 解决Android Studio中某一个Module不能启动的问题
- 打开系统自带的图片或文件管理器,指定路径打开指定图片或文件
- 调用JAVA API 对 HDFS 进行文件的读取、写入、上传、下载、删除等操作
- Linux su与sudo的区别
- JAVA获取json中的全部键值对
- React Native 配置遇到的错误:TransformError
- 无法自动生成R.java中的内部类代码
- 横向ListView及新闻头条
- 可编程DMA控制器——Intel 8257介绍
- 什么是C语言局部程序块(local block)
- Android中使用GSON包解析JSON数据(简单JSON)
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序