CentOS下su、su -、sudo三命令讲解
时间:2014-12-11 03:27 来源:linux.it.net.cn 作者:IT
在linux系统中,由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户wade登录的,但要添加用户任务,执行useradd ,wade用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出wade用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出wade用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法;通过su可以在用户之间切换,而超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证!
一、和su - 命令对比:
通过上图时间操作我们可以分析得出两个命令之间的区别:
1、参数 -, -l, --login
make the shell a login shell
翻译过来的意思如下:
su -,su -l或su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用su -命令则默认转换成成root用户了。
而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。
2、su的优缺点;
su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的。
二、su和sudo命令对比:
在普通用户下输入su命令后,会提示输入root账户的密码,然后就进入特权模式(跟用root登录系统完全一样),输入exit或者su - user 退出。
而采用sudo命令,只需输入当前用户的密码(也可以配置为不输入密码)即可执行需要root权限执行的命令:
通过上面的对比可以看出,sudo比su有很多优点:
1、普通用户不需要知道root的密码即可执行需要root权限的命令;
2、不会因忘记退出而采用root执行了会引起破坏性的命令(初学linux经常犯这个错);
3. 由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。 通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。
三、sudo命令配置
在linux系统中,新建的普通用户并没有执行sudo的权限,如新建一个名为wade的普通用户,输入sudo命令会有如下提示:
这句的意思是在sudoers文件中不存在wade这个用户,这个时间会被报告给管理员。
既然知道问题处于sudoers这个文件,那我们就看看这个文件为何方神圣:
打开文件后,内容如下图所示:
应该是没有权限,退出编辑状态后查看权限:
原来root也只有只读权限,难怪,首先修改权限以让root有完全控制权限:
再次编辑,这次没有出现只读提示了,然后在文件末尾找到如下字段:
添加用户wade到列表,添加后如wade ALL=(ALL) ALL 如下图所示:
修改完后输入:wq保存,保存后记得把权限修改回去,否则会有错误提示。
权限一定是440,否则就会有错误提示。
OK,现在在wade用户下就可以正常使用sudo命令了,如图。
全文结束!
(责任编辑:IT)
在linux系统中,由于root的权限过大,一般情况都不使用它。只有在一些特殊情况下才采用登录root执行管理任务,一般情况下临时使用root权限多采用su和sudo命令。 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户wade登录的,但要添加用户任务,执行useradd ,wade用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出wade用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出wade用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法;通过su可以在用户之间切换,而超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证! 一、和su - 命令对比:
通过上图时间操作我们可以分析得出两个命令之间的区别:
1、参数 -, -l, --login 翻译过来的意思如下: su -,su -l或su --login 命令改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。用su -命令则默认转换成成root用户了。 而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。 2、su的优缺点; su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具,只要把root的密码交给任何一个普通用户,他都能切换到root来完成所有的系统管理工作;但通过su切换到root后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威协;想想Windows吧,简直就是恶梦;“没有不安全的系统,只有不安全的人”,我们绝对不能保证这 10个用户都能按正常操作流程来管理系统,其中任何一人对系统操作的重大失误,都可能导致系统崩溃或数据损失;所以su 工具在多人参与的系统管理中,并不是最好的选择,su只适用于一两个人参与管理的系统,毕竟su并不能让普通用户受限的使用;超级用户root密码应该掌握在少数用户手中,这绝对是真理!所以集权而治的存在还是有一定道理的。 二、su和sudo命令对比: 在普通用户下输入su命令后,会提示输入root账户的密码,然后就进入特权模式(跟用root登录系统完全一样),输入exit或者su - user 退出。
而采用sudo命令,只需输入当前用户的密码(也可以配置为不输入密码)即可执行需要root权限执行的命令:
通过上面的对比可以看出,sudo比su有很多优点: 1、普通用户不需要知道root的密码即可执行需要root权限的命令; 2、不会因忘记退出而采用root执行了会引起破坏性的命令(初学linux经常犯这个错); 3. 由于su 对切换到超级权限用户root后,权限的无限制性,所以su并不能担任多个管理员所管理的系统。如果用su 来切换到超级用户来管理系统,也不能明确哪些工作是由哪个管理员进行的操作。特别是对于服务器的管理有多人参与管理时,最好是针对每个管理员的技术特长和管理范围,并且有针对性的下放给权限,并且约定其使用哪些工具来完成与其相关的工作,这时我们就有必要用到 sudo。 通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码,所以sudo 相对于权限无限制性的su来说,还是比较安全的,所以sudo 也能被称为受限制的su ;另外sudo 是需要授权许可的,所以也被称为授权许可的su;sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权。 三、sudo命令配置 在linux系统中,新建的普通用户并没有执行sudo的权限,如新建一个名为wade的普通用户,输入sudo命令会有如下提示:
这句的意思是在sudoers文件中不存在wade这个用户,这个时间会被报告给管理员。 既然知道问题处于sudoers这个文件,那我们就看看这个文件为何方神圣:
打开文件后,内容如下图所示:
应该是没有权限,退出编辑状态后查看权限:
原来root也只有只读权限,难怪,首先修改权限以让root有完全控制权限:
再次编辑,这次没有出现只读提示了,然后在文件末尾找到如下字段:
添加用户wade到列表,添加后如wade ALL=(ALL) ALL 如下图所示:
修改完后输入:wq保存,保存后记得把权限修改回去,否则会有错误提示。
权限一定是440,否则就会有错误提示。 OK,现在在wade用户下就可以正常使用sudo命令了,如图。
全文结束! (责任编辑:IT) |