su
语法:
说明
:
这个指令很有用呦!这是用来将『 一般身份转换成super user 』的指令!通常为了安全的考虑,telnet 与 ssh 尽量不要以 root 的身份来登入!但是有时后我们又要在外头以root 的身份来修改系统设定,这个时候 su 就很有用了!su 的使用真的很简单,输入su 之后,直接给他输入 root 的密码,此时您就是 root 了!但是需要特别留意的是:
语法:
[root @test/root ]# su 参数说明: 范例: [test@testtest]$ su Password: <==输入 root 的密码 [root@testtest]# <==身份变成 root 了! [test@testtest]$ su - <==连环境参数档案都是读取 root 的! [root@testroot]# su test <==将 root 的身份改为 test ,且不需要输入密码喔! |
这个指令很有用呦!这是用来将『 一般身份转换成super user 』的指令!通常为了安全的考虑,telnet 与 ssh 尽量不要以 root 的身份来登入!但是有时后我们又要在外头以root 的身份来修改系统设定,这个时候 su 就很有用了!su 的使用真的很简单,输入su 之后,直接给他输入 root 的密码,此时您就是 root 了!但是需要特别留意的是:
- 虽然您已经是 root 的身份,但是您的环境当中,还是属于当初登入的那个使用者!例如我以test 登入 Linux ,再以 su 切换身份成为 root ,但是我的 mail, PATH 及其它一些相关的环境变量,都还是test 这个身份呢!
- 至于环境变量当中,最麻烦的当属 PATH 这个东西,因为为了避免一般使用者使用了root 的管理指令,所以通常 Linux 都会将指令分类放在两个主要的目录,分别是/bin 与 /sbin !那个 /sbin 大多是 super user 就是 root 用来管理系统的指令啦!所以,可能的话,将test 的 PATH 重新设定成为 root 的 PATH ,这样也比较方便呀!
- 如果要全部的环境变量均使用 root 的设定档,这个时候必需使用『su - 』来下达命令喔!
此外, su 也可以将您的身份转换成为其它身份的使用者,而,如果您是root ,那么转换为其它身份的使用者,将不需要输入密码喔!很过瘾吧!
sudo
语法:
说明 :
[root @test/root ]# sudo [-u username] [command]
参数说明:
-u :将身份变成username 的身份
范例:
[test@testtest]$ sudo mkdir /root/testing
Password: <==输入 test 自己的密码
[root@testtest]$ sudo -u test touch test<==root 可以执行 test 这个使用者的指令,建立test 的档案!
- 如果单纯的使用 su 来变换成 root 的身份,最大的好处是可以直接下达我们惯用的指令,但是,还是会有问题的,就是如果主机是由多人共管的时候,由于所有的人都必须要知道root 的密码,如此一来,呵呵!很麻烦的啦!因为怕被入侵嘛!而且只要 root改变了密码,那么所有人都必需要通知一次!很麻烦,加上,如果管理群中的一个人不小心泄出了root 的密码,不就完蛋了??那么有没有可以不需要 root 的密码,却还是可以执行root 的工具呢?呵呵!这个时候就有 sudo 的出现了!
- sudo 的基本语法就是在 sudo 后头直接加上指令,例如上面的例子中,mkdir /root/testing 就是命令啦!那么就可以来执行 root 身份可以动作的事情!此外,由于执行root 身份的工作时,『输入的密码是使用者的密码,而不是 root 的密码,所以可以减少root 密码外流的问题!』如此 root 的密码将不会流出去了!但是 sudo 在使用的时候请小心,就是要在/etc/sudoers 里头设定该有的事项!在预设情况下,只有 root 才能使用 sudo!那有什么用!我们是一般使用者,想要使用的是 sudo 来变成 root 的身份呀!呵呵!没关系!可以使用visudo 来编辑 /etc/sudoers 这个档案即可!在 Mandrake 9.0 与 Red Hat 的Linux 版本之的预设情况中,使用『 visudo 』才能编辑 /etc/sudoers 这个档案,此外,编辑者的身份必须要root 才行!如何编辑呢?在预设的情况中,我们会希望将可以执行 root 动作的人的group 设定为 wheel ,然后:
如果如同上面的方式,将黄色字体那一行 /etc/sudoers里头将
- 『 # %wheel ALL=(ALL) ALL』
这一行的批注符号取消,如此一来,则群组为wheel 的人就可以进行 root 的身份工作!这个wheel 是系统预设的 group 呢!因此,如果您想要让这部主机里头的一般身份使用者具有sudo 的使用权限,那么您就必需将该 user 放入支持 wheel 这个群组里头!如何加入?呵呵!刚刚上面不是介绍了/etc/group 吗?赶紧去看看!那么万一我想要让『单独的个人可以使用sudo 的功能』呢?呵呵!那就直接以 visudo加上这一行
- 『test ALL=(ALL) ALL』
即可!那么 test 即可使用 sudo 的功能啰!很简单吧!但是请记得不要以vi 直接修改 sudoers 呦!会有问题!
- sudo 除了变成 root 的功能之外!嘿嘿!他还可以变成『任何人』的功能呦!举个简单的例子来说好了,我们都知道启动程序的时候最好不要使用root 来启动,因为如此一来当该程序被接管时,接管者(或者说是入侵者)将拥有root 的权限了!所以近来我们都希望不要以 root 来启动一些程序啦!会比较安全!那么我们要以root 来启动成为 test (例如常用的 nobody 这个账号)要如何作?很简单,就使用上面的第二个例子来看:
- sudo -u test touch test
root 可以改变身份成为 test 来建立档案!嘿嘿!还不需要输入密码!很棒吧!这个动作我曾经在squid 这个执行程序上面做过,这样一来,即使我的 squid 被利用了,那么该怪客只能拥有nobody 的权限,嘿嘿!该权限是很小很小的!所以可以达到保护主机的部分功能呦!