我們知道,在linux下對很多檔案進行修改都需要有root(管理員)許可權,比如對/ect/profile等檔案的修改。很多情況下,我們在進行開發的時候都是使用普通使用者進行登入的,尤其在進行一些環境變數的配置工作時,常常需要對一些檔案進行修改。那麼我們如何獲取管理員許可權呢?
一般來說,有兩種方法。一是:利用su命令切換到root使用者,在root使用者下對那些檔案進行修改,完成相關配置工作。二是:利用su命令切換到root使用者,修改/etc/sudoers檔案,讓普通使用者具有sudo許可權,然後利用su命令切換回普通使用者,在執行相關命令前加上sudo。下面我會先介紹這兩個命令。
linux su命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。
使用許可權:所有使用者。
su
[-fmp]
[-c command]
[-s shell]
[--help]
[--version]
[-][user [arg]
]
選項
說明-c《指令》或–command=《指令》
執行完指定的指令後,即恢復原來的身份;
-f或——fast
適用於csh與tsch,使shell不用去讀取啟動檔案;
-l或——login
改變身份時,也同時變更工作目錄,以及home,shell,user,logname。此外,也會變更path變數;
-m,-p或–preserve-environment
變更身份時,不要變更環境變數;
-s或–shell=
指定要執行的shell;
–help
顯示幫助;
–version
顯示版本資訊。
變更帳號為 root 並在執行 ls 指令後退出變回原使用者
su -c ls root
變更帳號為 root 並傳入 -f 引數給新執行的 shell
su root -f
變更帳號為 clsung 並改變工作目錄至 clsung 的家目錄(home dir)
su - clsung
切換使用者
hnlinux@ylg:~$ whoami //顯示當前使用者
hnlinux
hnlinux@wylg:~$ pwd //顯示當前目錄
/home/hnlinux
hnlinux@ylg:~$ su root //切換到root使用者
密碼:
root@ylg:/home/hnlinux# whoami
root
root@ylg:/home/hnlinux# pwd
/home/hnlinux
切換使用者,改變環境變數
hnlinux@ylg:~$ whoami //顯示當前使用者
hnlinux
hnlinux@ylg:~$ pwd //顯示當前目錄
/home/hnlinux
hnlinux@ylg:~$ su - root //切換到root使用者
密碼:
root@ylg:/home/hnlinux# whoami
root
root@ylg:/home/hnlinux# pwd //顯示當前目錄
/root
linux sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers
中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。
sudo(選項)
(引數)
選項
說明-b
在後台執行指令;
-h顯示幫助;
-h將home環境變數設為新身份的home環境變數;
-k結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l列出目前使用者可執行與無法執行的指令;
-p改變詢問密碼的提示符號;
-s執行指定的shell;
-u《使用者》
以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份;
-v延長密碼有效期限5分鐘;
-v顯示版本資訊。
sudo命令使用
$ sudo
ls[sudo] password for hnlinux:
hnlinux is not in the sudoers file. this incident will be reported.
指定使用者執行命令
# sudo -u userb ls -l
以root許可權執行上一條命令
$ sudo
!!
以特定使用者身份進行編輯文字
$ sudo -u uggc vi ~www/index.html
//以 uggc 使用者身份編輯 home 目錄下www目錄中的 index.html 檔案
一般情況下,linux下root使用者預設是沒有密碼,要利用su命令切換到root使用者,需要先利用sudo passwd root命令對root使用者設定初始密碼
sudo
passwd root #設定初始密碼
在修改完root使用者的密碼之後,我們利用su root
命令,輸入root使用者的密碼就可以切換到root使用者下來了。
在執行命令前加上sudo讓使用者獲得管理員許可權,首先需要在root使用者下,具有管理員許可權對/etc/sudoers
檔案進行修改。
我們需要先利用su命令切換到root使用者下,輸入visudo -f /etc/sudoers
命令進行編輯
visudo -f /etc/sudoers
進入檔案之後,找到root all=(all) all
這條語句所在的地方,將root替換成你想要具有管理員許可權的使用者名稱(比如:ylg),在這行語句下面輸入ylg all=(all) all
,然後進行儲存
root all=
(all) all
# 新增
ylg all=
(all) all
在給普通使用者管理員許可權之後,以後為了修改檔案就可以直接在命令前加上sudo即可,如
sodu vi /etc/profile
Linux下su和sudo命令詳解
su 用以切換成不同的使用者的身份 預設只是切換身份,並沒有切換環境變數,環境變數依然是普通使用者的 切換使用者身份時,使用者的環境變數也切換成新使用者的環境變數,所以 不能省略,不然有些操作無法執行 sudo 使用超級使用者來執行命令,一般指的是root使用者 想要使用sudo首先得在 ect s...
學習linux命令su和sudo
出於安全考慮,我們往往不使用root登入,而用一般賬號來管理,但有時一些許可權不夠,必須要用root使用者,其實系統提供了兩個命令su和sudo來解決這個問題,這裡先介紹這兩個命令的常見用法,然後對它們使用再進行下對比。su是簡單用法 su的用途是讓使用者暫時改變登入者的身份,變更時要輸入所要變更使...
Linux基礎命令之su和sudo
su su 用於使用者之間的切換。但是切換前的使用者依然保持登入狀態。如果是 root 向普通或虛擬使用者切換不需要密碼,反之普通使用者切換到其它任何使用者都需要密碼驗證。su 在不加任何引數,預設為切換到 root 使用者,但沒有轉到 root 使用者根目錄下 su 加引數 表示預設切換到 roo...