老牛知点所以然-su和sudo的区别

先说,从别的地方看来的不指出来源,就是耍流氓

我是在知乎浏览一个类似于“Linux开发需要具备那些条件”的问题回答时,被指引到下面这个网站的:
http://linuxcommand.org/tlcl.php
然后很happy的看pdf,最后在第127页看到了这个问题的答案。
具象的说:
su这个命令,直接切换用户了,当然,后面是可以加参数的,制定切换到那个用户,如果不制定,就会切换到超级用户。
sudo:临时“假定”你是超级用户,执行完某一条指令后,你就又被“打回原形”,当然,shell的机制,可能在一次回话中,你正确输入一次命令,会保持一段时间“免密”的执行需要超级用户权限才能执行的命令。

在Linux的世界里,普通用户和超级用户的分工是严格区分的,也就是所谓的安全机制(以前啥也不懂,一直以为Linux所谓的安全是某某某安全卫士的“安全”,汗~~~)。但是哩,总有一部分用户图省事,直接切换到超级用户干自己的事情,为毛哩,这样就不会时不时的被“permission denied”,但是这个,完全背离了Linux安全机制的设定呀,叫做超级管理员权限过度使用,或者叫做滥用。

后来呢,出了一款发行版,就是大名鼎鼎的Ubuntu,他干了一件很nice的事情,完美的解决了超级用户权限被滥用的事情。他是怎么解决的呢?超级管理员,就是root吗,就是su默认切换到的那“上帝用户”,于是Ubuntu就做了这样一个事情,root这个“上帝用户”是不能被登录的,需要超级管理员权限?好,通过sudo,相当于临时给你超级管理员权限,等你做完事情之后,再把超级管理员权限收回。

写这些的时候我已经换深度发行版了,没在Ubuntu上实验,但是估计深度的机制和Ubuntu是一致的,你输入su,提示你输入密码,即使你输入了正确的密码,也是提示你:su:鉴定故障,也就是告诉你,想登陆root账户?没门!

会有谬误,欢迎指正。

你可能感兴趣的:(成长)