用户身份切换-su sudo

来源:互联网 发布:在线网络投资靠谱吗 编辑:程序博客网 时间:2024/05/17 02:13

使用一般账号:系统平日操作的好习惯

事实上,为了安全的缘故,尽量一般以一般身份用户来操作linux的日常作业,等到需要设置系统环境时,才变换身份称为root来进行系统管理,相对比较安全,避免做错一些严重的命令,例如“rm-rf/"

用较低权限启动系统服务

相对于系统安全,有的时候,我们必须要以某些系统账号来进行程序的执行。例如,Linux主机上面的一套软件,名称为apache,我们可以额外新建一个名为apache的用户来启动apache软件,如此一来,如果这个程序被攻破,至少系统还不至于损坏了。

软件本身的限制

ssh可以设置拒绝root登录。

su

su [-lm] [-c命令]  username

参数:- :单纯使用-,如su - ,代表使用login-shell的变量文件读取方式来登录系统;若用户名称没有加上去,则代表切换为root的身份

-l :与-类似,但后面需要加欲切换的用户账号。也是login-shell的方式。

-c :仅进行一次命令,所以-c后面可以加上命令。想要执行一个只有root才能进行的命令,且执行完毕就恢复原本的身份。


su用法当中,有没有加“-”差别很大。单纯使用“su”切换成root的身份,读取的变量设置方式为non-login shell的方式,这种方式下很多原本的变量不会被改变,尤其是PATH这个变量,由于没有被改变成为root的环境(一堆 /sbin, /usr/bin等目录都没有被包含进来)。

如果想要离开root的身份则得要利用exit离开才行。



使用“su -"命令


su的用法:

若要完整地切换到新用户的环境,必须要使用“su -username”或"su - l username",才会连同PATH/USER/MAIL等变量都转成新用户的环境。

如果仅想要执行一次root的命令,可以利用“su - -c命令串”的方式来处理。

使用root切换称为任何用户时,并不需要输入新用户的密码。

sudo

相对于su需要了解新切换的用户密码(经常是需要root的密码),sudo的执行则仅需要自己的密码即可。甚至可以设置不需要密码即可执行sudo.由于sudo可以让你以其他用户的身份执行命令(通常是使用root的身份来执行命令),因此并非所有人都能够执行sudo,而是仅有/etc/sudoers内的用户才能够执行sudo这个命令。


1. 当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo的权限;

2. 若用户具有可执行sudo的权限后,便让用户输入用户自己的密码来确认;

3. 若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码);

4. 若欲切换的身份与执行者身份相同,那也不需要输入密码。

所以说,sudo执行的重点是,能否使用sudo必须要看/etc/sudoers的设置值。

使用visudo而不是vi去编辑/etc/sudoers这个文件,这是因为/etc/sudoers是由语法的,如果设置错误那会造成无法使用sudo命令的不良后果,因此才会使用visudo去修改,并在结束离开修改界面时,系统会去检验/etc/sudoers的语法。












0 0
原创粉丝点击