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

示例:

[root@www ~]# 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裏可以用別名,以便簡化操作,示例如下:

[root@www ~]# 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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章