我們知道,在Linux下對很多文件進行修改都需要有root(管理員)權限,比如對/ect/profile等文件的修改。很多情況下,我們在進行開發的時候都是使用普通用戶進行登錄的,尤其在進行一些環境變量的配置工作時,常常需要對一些文件進行修改。那么我們如何獲取管理員權限呢?
一般來說,有兩種方法。一是:利用su命令切換到root用戶,在root用戶下對那些文件進行修改,完成相關配置工作。二是:利用su命令切換到root用戶,修改/etc/sudoers文件,讓普通用戶具有sudo權限,然后利用su命令切換回普通用戶,在執行相關命令前加上sudo。下面我會先介紹這兩個命令。
su
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=<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
sudo
Linux sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設置了可執行sudo指令的用戶。若其未經授權的用戶企圖使用sudo,則會發出警告的郵件給管理員。用戶使用sudo時,必須先輸入密碼,之后有5分鍾的有效期限,超過期限則必須重新輸入密碼。
語法
sudo(選項)(參數)
選項
| 選項 | 說明 |
|---|---|
| -b | 在后台執行指令; |
| -h | 顯示幫助; |
| -H | 將HOME環境變量設為新身份的HOME環境變量; |
| -k | 結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。 |
| -l | 列出目前用戶可執行與無法執行的指令; |
| -p | 改變詢問密碼的提示符號; |
| -s<shell> | 執行指定的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
