Linux使用者切換命令的使用 su sudo

2021-08-21 02:38:47 字數 3264 閱讀 1747

su用於使用者之間的切換,但是切換前的使用者依然保持登入狀態。如果是root向普通切換則不需要密碼,反之普通使用者切換到其它任何使用者則都需要密碼驗證。

su不加任何引數預設切換到root使用者,但沒有轉到root使用者根目錄下;su 加引數-,表示預設切換到 root 使用者,並轉到 root 使用者根目錄下。

su的明顯不足在於如果某個使用者需要使用 root 許可權、則必須要把root密碼告訴此使用者。

退出返回之前的使用者:exit

切換到git使用者

[root@iz2ze9twtxjrbirmldp9owz ~]# su git

[git@iz2ze9twtxjrbirmldp9owz root]$ pwd

/root

[git@iz2ze9twtxjrbirmldp9owz root]$ exit

exit

[root@iz2ze9twtxjrbirmldp9owz ~]#

以下操作是使用haha使用者登入客戶端操作的

[haha@centos6-1 ~]$ su

password

: [root@centos6-1 haha]# pwd

/home/haha

[root@centos6-1 haha]# exit

exit

[haha@centos6-1 ~]$ su -

password

: [root@centos6-1 ~]# pwd

/root

[root@centos6-1 ~]#

sudo是為所有想使用root許可權的普通使用者設計的,可以讓普通使用者具有臨時使用root許可權的權利,只需輸入自己賬戶的密碼即可。當然這個普通使用者必須在/etc/sudoers檔案中有配置項才具有使用sudo的權利。

沒有配置許可權之前,普通使用者無法進行 root 許可權操作:

[haha@centos6-1 ~]$ pwd

/home/haha

[haha@centos6-1 ~]$ ll /root/

ls: cannot open directory /root/:

permission denied

[haha@centos6-1 ~]$

沒有配置許可權之前,不能使用sudo

[haha@centos6-1 ~]$ sudo ls /root/

[sudo] password for

haha:

haha is not

in the sudoers file. this incident will be reported.

[haha@centos6-1 ~]$

使用root使用者登入配置haha使用者的sudo許可權,命令列輸入 visudo,開啟/etc/sudoers 檔案。注意,官方不建議直接vi /etc/sudoers對其進行修改

## allow root to run any commands anywhere

root all=(all) all //在檔案中找到這一行

haha all=(all) all //並在其下面新增此行,這樣haha就可以使用sudo執行root許可權的命令了

## allows members of the 'sys' group

to run networking, software,

# %sys all = networking, software, services, storage, delegating, processes, locate, drivers

用haha使用者再次登入客戶端操作,發現成功了

[haha@centos6-1 ~]$ sudo ls /root/

[sudo] password for haha:

anaconda-ks.cfg install.log install.log.syslog license notice

[haha@centos6-1 ~]$

sudo的工作過程如下:

1. 當使用者執行 sudo 時,系統會主動尋找/etc/sudoers 檔案,判斷該使用者是 否有執行 sudo 的許可權

2. 確認使用者具有可執行 sudo 的許可權後,讓使用者輸入使用者自己的密碼確認

3. 若密碼輸入成功,則開始執行 sudo 後續的命令

/etc/sudoers檔案中配置的含義

haha all=(all) all

第乙個 all 是指網路中的主機,我們可以指定主機名,這樣 haha 只可以 在此主機上執行後面的命令。第二個括號裡的 all 是指目標使用者,也就是以誰的 身份去執行命令。最後乙個 all 是指命令名了。

haha centos6-1=(zaomianbao)/bin/kill //只允許haha使用者以zaomianbao使用者的身份在centos6-1上執行kill命令

haha centos6-1=nopasswd:/bin/ls, /bin/cat //只允許haha使用者以root身份在centos6-1上執行ls 、cat命令

我們修改haha為第二個形式haha centos6-1=nopasswd:/bin/ls, /bin/cat

[haha@centos6-1 ~]$ sudo ls /root/

anaconda-ks.cfg install.log install.log.syslog license notice

[haha@centos6-1 ~]$ sudo cat /root/anaconda-ks.cfg

# kickstart file automatically generated by anaconda.

#version=devel

install

cdrom

[haha@centos6-1 ~]$ sudo vi /root/anaconda-ks.cfg

[sudo] password for

haha:

sorry, user haha is not allowed to execute '/bin/vi /root/anaconda-ks.cfg' as root on centos6-1.

[haha@centos6-1 ~]$

可以看到,haha使用者具有ls和cat的許可權,但是沒有vi的許可權

Linux命令 使用者身份切換

格式為 su username,後面可以跟 也可以不跟。普通使用者的su命令不加username時,就相當於切換到root使用者,反之亦然。當su 命令加上 後,會初始化當前使用者的各種環境變數。如果不加 切換到root使用者時,當前目錄沒有變化 而如果加上 切換到root賬戶時,當前目錄為root...

Linux命令 使用者身份切換

格式為 su username,後面可以跟 也可以不跟。普通使用者的su命令不加username時,就相當於切換到root使用者,反之亦然。當su 命令加上 後,會初始化當前使用者的各種環境變數。如果不加 切換到root使用者時,當前目錄沒有變化 而如果加上 切換到root賬戶時,當前目錄為root...

linux 切換使用者命令su

su命令來切換使用者,su是switch user切換使用者的縮寫。可以是從普通使用者切換到root使用者,也可以是從root使用者切換到普通使用者。從普通使用者切換到root使用者需要輸入密碼,從root使用者切換到普通使用者不需要輸入密碼。命令格式 su 引數 使用者名稱 使用者名稱的預設值為r...