su身份切换梳理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了su身份切换梳理相关的知识,希望对你有一定的参考价值。

linux中可以用su来进行身份的切换,不过有些细节值得注意

1)su,使用的是以root的权限但non-login的方式来登入系统,所以其mail和PATH都是su之前的账号信息

2)su - username,这样可以完全切换到username的权限及身份(环境变量也是username的),离开用exit就能返回之前的身份

3)su - -c,一次性的使用root身份执行指令,指令完成后变成普通身份

su切换身份缺点:都要用到root密码,如果很多人使用,安全隐患大

对此,可以使用sudo来完成

sudo基础语法:sudo -b  将后续的指令放到背景中让系统自行执行,而不与目前的 shell 产生影响

                      sudo -u  后面可以接欲切换的使用者,若无此项则代表切换身份为 root

示例:

[[email protected] ~]# sudo -u sshd touch /tmp/mysshd

以sshd的身份去执行 touch /tmp/mysshd

注意,我们无法su -sshd去切换系统账号,因为系统账号登入方式都是non-login登入方式

如果要让普通账号使用sudo,得用visudo指令来修改/etc/sudoers文件,其格式如下:

使用者账号   登入者的来源主机名    =    (可切换的身份)    可下达的指令 

    root                 ALL                 =        (ALL)                     ALL         <==这是默认值

一个个设定麻烦的话可以用%groupname,群组功能

如果信任的过用户,可以免输入密码,在(可切换的身份)即(ALL)加NOPASSWD,即可,这样用sudo的话,自己的密码也可以不用输入

另外,visudo里可以用别名,以便简化操作,示例如下:

[[email protected] ~]# visudo <==注意是 root 身份

User_Alias ADMPW = pro1, pro2, pro3, myuser1, myuser2

Cmnd_Alias ADMPWCOM = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root

使用者账号   登入者的来源主机名    =    (可切换的身份)    可下达的指令 

 ADMPW                 ALL              =            (root)         ADMPWCOM


本文出自 “101010...010101” 博客,请务必保留此出处http://legendland.blog.51cto.com/2043145/1973717

以上是关于su身份切换梳理的主要内容,如果未能解决你的问题,请参考以下文章

linux之切换用户su(switch user)

Linux系统中切换用户身份su与sudo的用法与实例

身份切换与sudo

Linux切换用户身份(su)

su切换用户

Linux命令_用户身份切换