Ubuntu实践(8):sudo探索

sudo(superuserdo)

       普通用户使用su切换为超级用(即root用户),但是使用su的缺点之一是必须要先告知超级用户的密码。

       sudo使普通用户不需要知道root的密码即可获得权限。在Ubuntu系统中,管理员可以给普通用户授予某些sudo的权限。在普通用户需要获取特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该使用者自己的密码(以确认当前是该使用者本人),回答正确后系统即会将该命令的进程以root的权限执行。为方便起见,一旦你正确输入了密码,就可以在一定时间内不必再次输入密码而运行sudo命令,Ubuntu默认时间是15分钟。

       注:以root权限运行GUI程序(例如 Update Manager), 可以使用gksudo(Kubuntu使用 kdesudo)。 


为什么需要sudo

       在Ubuntu中,root的帐号密码默认是被冻结的。在过去,使用root用户带来了许多问题。因为root用户可以做任何事,如果日常中以root身份工作是危险的,有可能无意中敲入一条错误的命令导致系统崩溃,例如不小心清空/usr或者/bin文件夹(可能是他们认为自己不需要这些程序)。理智的做法是,你只需要拥有一定的权限,“做你仅该做的”。在某些情况下,只能是root用户才能运行,但大部分时间拥有一个普通用户的权限就足够了。

       由于sudo不需要超级用户的密码,Ubuntu利用sudo使普通用户取代超级用户作为管理帐号。请记住,当sudo询问密码时,要求的是你自己的用户密码,而不是root用户的密码。


优点和缺点

       1.使用sudo的好处

       (1)用户不需要记住多余的密码(例如root用户的密码),“知道你仅该知道的”。

       (2)避免默认root登录后,用户可以做任何事你在执行主要的修改前会有密码提醒,可以让你有缓冲的余地来修正错误。

       (3)所有sudo的执行,将被记录在/var/log/auth.log的日志里面,方便追踪。

       (4)骇客在入侵的时候,首先尝试破解的是root帐号,一般他们不知道实际的用户名是什么。然而root的帐号密码是被冻结的,那么攻击就变得没有意义了。

       (5)如果你有一个桌面版的电脑或者服务器,出于安全考虑,不希望每个人都拥有root权限。sudo刚好能够提供一个恰到好处的安全策略。

       (6)root帐号的密码不需要向普通用户公开,即使他们需要执行超级用户权限的任务。

       (7)sudo的密码默认会保持一段时间,可以设置为0s,或者执行sudo -k销毁密码保持,确保下次运行sudo的时候需要输入密码那么你暂时离开一个执行sudo的终端,就不用担心造成安全隐患。

       2.使用sudo的不足

       (1)如果你以root身份登录,执行任何命令,都不会被要求输入密码。因为系统假设你知道自己知道在干什么。

       (2)使用sudo执行重定向命令时,需要注意。

      

      由上的例子可见,重定向并没有成功,提示权限受限。因为重定向的过程中,被截断了,相当于(sudo echo 1) >/proc/...,而echo 1本身不需要root权限。解决方法如下:

      


允许其他用户执行sudo

      在终端(Precise Pangolin, 12.04以后),执行

sudo adduser <username> sudo

     在Ubuntu之前的版本里,执行

sudo adduser <username> admin
      

扩展阅读

      1.如何激活root帐号,可以参考《Ubuntu实践(1):激活root用户和密码》

      2.gksudo的例子,可以参考《Ubuntu实践(3):在windows中安装ubuntu(续)》

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值