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,会出问题的。
发表评论
最新评论
-
工作两年了,发发牢骚
zpple 写道不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司, ...
-- by rxgp02a -
工作两年了,发发牢骚
yanshiyi 写道rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的 ...
-- by rxgp02a -
工作两年了,发发牢骚
不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司,盯着一个项目组, ...
-- by zpple -
工作两年了,发发牢骚
rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那 ...
-- by yanshiyi -
工作两年了,发发牢骚
个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那是因为别人比你努力, ...
-- by rxgp02a







评论排行榜