使用一般帐号:系统平日操作的好习惯
尽量以一般身份使用者来操作Linux的日常作业。等到需要设置系统环境时, 才变换身份成为 root 来进行系统管理,相对比较安全。避免作错一些严重的指令,例如恐怖的“ rm -rf / ”。
用较低权限启动系统服务
相对于系统安全,有的时候,我们必须要以某些系统帐号来进行程序的执行。 举例来说,Linux 主机上面的一套软件,名称为 apache ,我们可以额外创建一个名为 apache 的使用者来启动 apache 软件。
软件本身的限制
以“ su - ”直接将身份变成 root 即可,但是这个指令却需要 root 的密码,也就是说,如果你要以 su 变成 root 的话,你的一般使用者就必须要有 root 的密码才行;
以“ sudo 指令 ”执行 root 的指令串,由于 sudo 需要事先设置妥当,且 sudo 需要输入使用者自己的密码, 因此多人共管同一部主机时, sudo 要比 su 来的好。
13.4.1 su
su 是最简单的身份切换指令了,他可以进行任何身份的切换。方法如下:
单纯使用“ su ”切换成为 root 的身份,读取的变量设置方式为 non-login shell 的方式,这种方式很多原本的变量不会被改变, 尤其是我们之前谈过很多次的 PATH 这个变量,由于没有改变成为 root 的环境, 因此很多 root 惯用的指令就只能使用绝对路径来执行。
由于 /etc/shadow 权限的关系,该文件仅有 root 可以查阅。为了查阅该文件,所以我们必须要使用 root 的身份工作。 但我只想要进行一次该指令而已,此时就使用类似上面的语法。接下来,如果我是 root 或者是其他人, 想要变更成为某些特殊帐号,可以使用如下的方法来切换:
总结一下su的用法:
若要完整的切换到新使用者的环境,必须要使用“ su - username ”或“ su -l username ”,才会连同 PATH/USER/MAIL 等变量都转成新使用者的环境;
如果仅想要执行一次 root 的指令,可以利用“ su - -c "指令串" ”的方式来处理;
使用 root 切换成为任何使用者时,并不需要输入新使用者的密码;
虽然使用 su 很方便,不过缺点是,当我的主机是多人共管的环境时,如果大家都要使用su 来切换成为 root 的身份,那么不就每个人都得要知道 root 的密码,这样密码太多人知道可能会流出去, 很不妥当,因此通过sudo来处理。