2007-07-02

用户身份切换

关键字: Linux 学习
      
           一般而言,我们不希望以root身份登录主机,以避免被黑客入侵,但是一台主机又不可能完全不进行修改或者设定动作,这是如何将一般用户变成root呢?主要有两种方式:

  •  以su直接将身份变成root。这个指令需要root的密码。也就是说,如果你要用su变成root,您的一般用户必须有root的密码;
  • 如果多人同时管理一台主机,那么,root的密码就有很多人知道了,这样容易泄露密码。这种情况下可以使用sudo命令。


SU
      
          指令su用来将一般的用户转换成超级用户。考虑到安全,通常telnet与ssh尽量不要以root身份登入,但有时我们需要以root身份远程修改系统设定,这是su就游泳了。su的使用方式很简单,输入su之后,直接输入root的密码,这是你就是root了。但是需要特别注意的是:
  • 虽然您已经是root,但是那您的环境还是属于当初登入的那个用户。
  • 对于环境变量,最麻烦的当属PATH,因为为了避免一般用户使用root的管理指令,通常linux都会将指令分类放在两个主要的目录,分别是/bin和/sbin。/sbin存放的大多是root用来管理系统的指令,所以,如果有可能,将该用户的PATH重新设定为root的PATH,这样较方便。

sudo和visudo
      
        如果单纯使用su变换成root身份,最大的好处是可以直接输入我们惯用的命令,但是还是会有问题,就是如果主机由多人共同管理,由于所有的人都必须知道root的密码,如此一来,就有被入侵的可能。而且,只要root改变了密码,所有的人都必须在再通知一次,很麻烦。这种情况下,可以使用sudo指令。

语法:
sudo   [-u   username]   [command]
参数说明:
-u:将身份变成username的身份

范例:
sudo   mkdir   /root/testing
password:

sudo   -u   yanshiyi   touch    test    // root可以执行yanshiy用户的指令,建立test文件

        sudo的基本语法就是在sudo后直接加命令,然后输入自己的密码。在默认情况下,只有root才可以使用sudo,要想设定,就需要更改/etc/sudoers这个文件,但是这个文件只能使用visudo来编辑,而且编辑者的身份必须是root。

范例:

默认情况下,我们先将希望可以执行root动作的人的group设为wheel,然后

visudo

root   ALL=(ALL)   ALL

范例一
yanshiyi   ALL=(ALL)   ALL   //   加入这一行,使yanshiyi这个用户可以使用sudo

范例二
#  Uncomment to allow   people in group wheel to run all   commands
%wheel   ALL=(ALL)   ALL   //   也可以将这一行注释符取消
# same thing without a password
%wheel   ALL=(ALL)   NOPASSWD:ALL
# Sample
#  %   users    ALL=/sbin/mount   /cdrom,,/sbin/umount   /cdrom
#   %  users   localhost=/sbin/shutdown   -h   now

如果如同上面,将下面一行:
#   wheel   ALL=(ALL)   ALL
的注释符号取消,如此一来,群组为wheel的人就可以以root的身份工作。这个wheel是系统默认的群组,因此如果你想让这台主机的一般用户就要有sudo的使用权限,就必须将改用花加入这个群组。

          如果想让单独的某个人使用sudo的功能,直接以visudo加上这一行test ALL=(ALL)ALL即可,就是上面的范例一。但是不要使用vi直接编辑sudoers,会出问题的。
      
         
 
评论
发表评论

您还没有登录,请登录后发表评论

yanshiyi
搜索本博客
最近加入圈子
存档
最新评论