<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 13.4 使用者身份切換 什么?在 Linux 系統當中還要作身份的變換?這是為啥?可能有下面幾個原因啦! * 使用一般帳號:系統平日操作的好習慣 事實上,為了安全的緣故,一些老人家都會建議你,盡量以一般身份使用者來操作 Linux 的日常作業!等到需要設置系統環境時, 才變換身份成為 root 來進行系統管理,相對比較安全啦!避免作錯一些嚴重的指令,例如恐怖的“ rm -rf / ”(千萬作不得!) * 用較低權限啟動系統服務 相對于系統安全,有的時候,我們必須要以某些系統帳號來進行程序的執行。 舉例來說, Linux 主機上面的一套軟件,名稱為 apache ,我們可以額外創建一個名為 apache 的使用者來啟動 apache 軟件啊,如此一來,如果這個程序被攻破,至少系統還不至于就損毀了~ * 軟件本身的限制 在遠古時代的 [telnet](http://linux.vbird.org/linux_server/0310telnetssh.php#telnet) 程序中,該程序默認是不許使用 root 的身份登陸的,telnet 會判斷登陸者的 UID, 若 UID 為 0 的話,那就直接拒絕登陸了。所以,你只能使用一般使用者來登陸 Linux 服務器。 此外, [ssh](http://linux.vbird.org/linux_server/0310telnetssh.php#ssh) [[3]](#ps3) 也可以設置拒絕 root 登陸喔!那如果你有系統設置需求該如何是好啊?就變換身份啊! 由于上述考慮,所以我們都是使用一般帳號登陸系統的,等有需要進行系統維護或軟件更新時才轉為 root 的身份來動作。 那如何讓一般使用者轉變身份成為 root 呢?主要有兩種方式喔: * 以“ su - ”直接將身份變成 root 即可,但是這個指令卻需要 root 的密碼,也就是說,如果你要以 su 變成 root 的話,你的一般使用者就必須要有 root 的密碼才行; * 以“ sudo 指令 ”執行 root 的指令串,由于 sudo 需要事先設置妥當,且 sudo 需要輸入使用者自己的密碼, 因此多人共管同一部主機時, sudo 要比 su 來的好喔!至少 root 密碼不會流出去! 下面我們就來說一說 su 跟 sudo 的用法啦! ### 13.4.1 su su 是最簡單的身份切換指令了,他可以進行任何身份的切換唷!方法如下: ``` [root@study ~]# su [-lm] [-c 指令] [username] 選項與參數: - :單純使用 - 如“ su - ”代表使用 login-shell 的變量文件讀取方式來登陸系統; 若使用者名稱沒有加上去,則代表切換為 root 的身份。 -l :與 - 類似,但后面需要加欲切換的使用者帳號!也是 login-shell 的方式。 -m :-m 與 -p 是一樣的,表示“使用目前的環境設置,而不讀取新使用者的配置文件” -c :僅進行一次指令,所以 -c 后面可以加上指令喔! ``` 上表的解釋當中有出現之前[第十章](../Text/index.html)談過的 [login-shell](../Text/index.html#settings_bashrc_shell) 配置文件讀取方式,如果你忘記那是啥東西, 請先回去第十章瞧瞧再回來吧!這個 su 的用法當中,有沒有加上那個減號“ - ”差很多喔! 因為涉及 login-shell 與 non-login shell 的變量讀取方法。這里讓我們以一個小例子來說明吧! ``` 范例一:假設你原本是 dmtsai 的身份,想要使用 non-login shell 的方式變成 root [dmtsai@study ~]$ su &lt;==注意提示字符,是 dmtsai 的身份喔! Password: &lt;==這里輸入 root 的密碼喔! [root@study dmtsai]# id &lt;==提示字符的目錄是 dmtsai 喔! uid=0(root) gid=0(root) groups=0(root) context=unconf.... &lt;==確實是 root 的身份! [root@study dmtsai]# env &#124; grep 'dmtsai' USER=dmtsai &lt;==竟然還是 dmtsai 這家伙! PATH=...:/home/dmtsai/.local/bin:/home/dmtsai/bin &lt;==這個影響最大! MAIL=/var/spool/mail/dmtsai &lt;==收到的 mailbox 是 vbird1 PWD=/home/dmtsai &lt;==并非 root 的主文件夾 LOGNAME=dmtsai # 雖然你的 UID 已經是具有 root 的身份,但是看到上面的輸出訊息嗎? # 還是有一堆變量為原本 dmtsai 的身份,所以很多數據還是無法直接利用。 [root@study dmtsai]# exit &lt;==這樣可以離開 su 的環境! ``` 單純使用“ su ”切換成為 root 的身份,讀取的變量設置方式為 non-login shell 的方式,這種方式很多原本的變量不會被改變, 尤其是我們之前談過很多次的 PATH 這個變量,由于沒有改變成為 root 的環境, 因此很多 root 慣用的指令就只能使用絕對路徑來執行咯。其他的還有 MAIL 這個變量,你輸入 mail 時, 收到的郵件竟然還是 dmtsai 的,而不是 root 本身的郵件!是否覺得很奇怪啊!所以切換身份時,請務必使用如下的范例二: ``` 范例二:使用 login shell 的方式切換為 root 的身份并觀察變量 [dmtsai@study ~]$ su - Password: &lt;==這里輸入 root 的密碼喔! [root@study ~]# env &#124; grep root USER=root MAIL=/var/spool/mail/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root HOME=/root LOGNAME=root # 了解差異了吧?下次變換成為 root 時,記得最好使用 su - 喔! [root@study ~]# exit &lt;==這樣可以離開 su 的環境! ``` 上述的作法是讓使用者的身份變成 root 并開始操作系統,如果想要離開 root 的身份則得要利用 exit 離開才行。 那我如果只是想要執行“一個只有 root 才能進行的指令,且執行完畢就恢復原本的身份”呢?那就可以加上 -c 這個選項啰! 請參考下面范例三! ``` 范例三:dmtsai 想要執行“ head -n 3 /etc/shadow ”一次,且已知 root 密碼 [dmtsai@study ~]$ head -n 3 /etc/shadow head: cannot open `/etc/shadow' for reading: Permission denied [dmtsai@study ~]$ su - -c "head -n 3 /etc/shadow" Password: &lt;==這里輸入 root 的密碼喔! root:$6$wtbCCce/PxMeE5wm$KE2IfSJr.YLP7Rcai6oa/T7KFhOYO62vDnqfLw85...:16559:0:99999:7::: bin:*:16372:0:99999:7::: daemon:*:16372:0:99999:7::: [dmtsai@study ~]$ &lt;==注意看,身份還是 dmtsai 喔!繼續使用舊的身份進行系統操作! ``` 由于 /etc/shadow 權限的關系,該文件僅有 root 可以查閱。為了查閱該文件,所以我們必須要使用 root 的身份工作。 但我只想要進行一次該指令而已,此時就使用類似上面的語法吧!好,那接下來,如果我是 root 或者是其他人, 想要變更成為某些特殊帳號,可以使用如下的方法來切換喔! ``` 范例四:原本是 dmtsai 這個使用者,想要變換身份成為 vbird1 時? [dmtsai@study ~]$ su -l vbird1 Password: &lt;==這里輸入 vbird1 的密碼喔! [vbird1@study ~]$ su - Password: &lt;==這里輸入 root 的密碼喔! [root@study ~]# id sshd uid=74(sshd) gid=74(sshd) groups=74(sshd) ... &lt;==確實有存在此人 [root@study ~]# su -l sshd This account is currently not available. &lt;==竟然說此人無法切換? [root@study ~]# finger sshd Login: sshd Name: Privilege-separated SSH Directory: /var/empty/sshd Shell: /sbin/nologin [root@study ~]# exit &lt;==離開第二次的 su [vbird1@study ~]$ exit &lt;==離開第一次的 su [dmtsai@study ~]$ exit &lt;==這才是最初的環境! ``` su 就這樣簡單的介紹完畢,總結一下他的用法是這樣的: * 若要完整的切換到新使用者的環境,必須要使用“ su - username ”或“ su -l username ”, 才會連同 PATH/USER/MAIL 等變量都轉成新使用者的環境; * 如果僅想要執行一次 root 的指令,可以利用“ su - -c "指令串" ”的方式來處理; * 使用 root 切換成為任何使用者時,并不需要輸入新使用者的密碼; 雖然使用 su 很方便啦,不過缺點是,當我的主機是多人共管的環境時,如果大家都要使用 su 來切換成為 root 的身份,那么不就每個人都得要知道 root 的密碼,這樣密碼太多人知道可能會流出去, 很不妥當呢!怎辦?通過 sudo 來處理即可! ### 13.4.2 sudo 相對于 su 需要了解新切換的使用者密碼 (常常是需要 root 的密碼), sudo 的執行則僅需要自己的密碼即可! 甚至可以設置不需要密碼即可執行 sudo 呢!由于 sudo 可以讓你以其他用戶的身份執行指令 (通常是使用 root 的身份來執行指令),因此并非所有人都能夠執行 sudo , 而是僅有規范到 /etc/sudoers 內的用戶才能夠執行 sudo 這個指令喔!說的這么神奇,下面就來瞧瞧那 sudo 如何使用? ![鳥哥的圖示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鳥哥的圖示") **Tips** 事實上,一般用戶能夠具有 sudo 的使用權,就是管理員事先審核通過后,才開放 sudo 的使用權的!因此,除非是信任用戶,否則一般用戶默認是不能操作 sudo 的喔! * sudo 的指令用法 由于一開始系統默認僅有 root 可以執行 sudo ,因此下面的范例我們先以 root 的身份來執行,等到談到 visudo 時,再以一般使用者來討論其他 sudo 的用法吧! sudo 的語法如下: ![鳥哥的圖示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鳥哥的圖示") **Tips** 還記得在安裝 CentOS 7 的第三章時,在設置一般帳號的項目中,有個“讓這位使用者成為管理員”的選項吧?如果你有勾選該選項的話, 那除了 root 之外,該一般用戶確實是可以使用 sudo 的喔(以鳥哥的例子來說, dmtsai 默認竟然可以使用 sudo 了!)!這是因為創建帳號的時候,默認將此用戶加入 sudo 的支持中了!詳情本章稍后告知! ``` [root@study ~]# sudo [-b] [-u 新使用者帳號] 選項與參數: -b :將后續的指令放到背景中讓系統自行執行,而不與目前的 shell 產生影響 -u :后面可以接欲切換的使用者,若無此項則代表切換身份為 root 。 范例一:你想要以 sshd 的身份在 /tmp 下面創建一個名為 mysshd 的文件 [root@study ~]# sudo -u sshd touch /tmp/mysshd [root@study ~]# ll /tmp/mysshd -rw-r--r--. 1 sshd sshd 0 Jul 21 23:37 /tmp/mysshd # 特別留意,這個文件的權限是由 sshd 所創建的情況喔! 范例二:你想要以 vbird1 的身份創建 ~vbird1/www 并于其中創建 index.html 文件 [root@study ~]# sudo -u vbird1 sh -c &lt;u&gt;"mkdir ~vbird1/www; cd ~vbird1/www; \&lt;/u&gt; &gt; &lt;u&gt;echo 'This is index.html file' &gt; index.html"&lt;/u&gt; [root@study ~]# ll -a ~vbird1/www drwxr-xr-x. 2 vbird1 vbird1 23 Jul 21 23:38 . drwx------. 6 vbird1 vbird1 4096 Jul 21 23:38 .. -rw-r--r--. 1 vbird1 vbird1 24 Jul 21 23:38 index.html # 要注意,創建者的身份是 vbird1 ,且我們使用 sh -c "一串指令" 來執行的! ``` sudo 可以讓你切換身份來進行某項任務,例如上面的兩個范例。范例一中,我們的 root 使用 sshd 的權限去進行某項任務! 要注意,因為我們無法使用“ su - sshd ”去切換系統帳號 (因為系統帳號的 shell 是 /sbin/nologin), 這個時候 sudo 真是他 X 的好用了!立刻以 sshd 的權限在 /tmp 下面創建文件!查閱一下文件權限你就了解意義啦! 至于范例二則更使用多重指令串 (通過分號 ; 來延續指令進行),使用 sh -c 的方法來執行一連串的指令, 如此真是好方便! 但是 sudo 默認僅有 root 能使用啊!為什么呢?因為 sudo 的執行是這樣的流程: 1. 當使用者執行 sudo 時,系統于 /etc/sudoers 文件中搜尋該使用者是否有執行 sudo 的權限; 2. 若使用者具有可執行 sudo 的權限后,便讓使用者“輸入使用者自己的密碼”來確認; 3. 若密碼輸入成功,便開始進行 sudo 后續接的指令(但 root 執行 sudo 時,不需要輸入密碼); 4. 若欲切換的身份與執行者身份相同,那也不需要輸入密碼。 所以說,sudo 執行的重點是:“能否使用 sudo 必須要看 /etc/sudoers 的設置值, 而可使用 sudo 者是通過輸入使用者自己的密碼來執行后續的指令串”喔!由于能否使用與 /etc/sudoers 有關, 所以我們當然要去編輯 sudoers 文件啦!不過,因為該文件的內容是有一定的規范的,因此直接使用 vi 去編輯是不好的。 此時,我們得要通過 visudo 去修改這個文件喔! * visudo 與 /etc/sudoers 從上面的說明我們可以知道,除了 root 之外的其他帳號,若想要使用 sudo 執行屬于 root 的權限指令,則 root 需要先使用 visudo 去修改 /etc/sudoers ,讓該帳號能夠使用全部或部分的 root 指令功能。為什么要使用 visudo 呢?這是因為 /etc/sudoers 是有設置語法的,如果設置錯誤那會造成無法使用 sudo 指令的不良后果。因此才會使用 visudo 去修改, 并在結束離開修改畫面時,系統會去檢驗 /etc/sudoers 的語法就是了。 一般來說,visudo 的設置方式有幾種簡單的方法喔,下面我們以幾個簡單的例子來分別說明: * I. 單一使用者可進行 root 所有指令,與 sudoers 文件語法: 假如我們要讓 vbird1 這個帳號可以使用 root 的任何指令,基本上有兩種作法,第一種是直接通過修改 /etc/sudoers ,方法如下: ``` [root@study ~]# visudo ....(前面省略).... root ALL=(ALL) ALL &lt;==找到這一行,大約在 98 行左右 vbird1 ALL=(ALL) ALL &lt;==這一行是你要新增的! ....(下面省略).... ``` 有趣吧!其實 visudo 只是利用 vi 將 /etc/sudoers 文件調用出來進行修改而已,所以這個文件就是 /etc/sudoers 啦! 這個文件的設置其實很簡單,如上面所示,如果你找到 98 行 (有 root 設置的那行) 左右,看到的數據就是: ``` 使用者帳號 登陸者的來源主機名稱=(可切換的身份) 可下達的指令 root ALL=(ALL) ALL &lt;==這是默認值 ``` 上面這一行的四個元件意義是: 1. “使用者帳號”:系統的哪個帳號可以使用 sudo 這個指令的意思; 2. “登陸者的來源主機名稱”:當這個帳號由哪部主機連線到本 Linux 主機,意思是這個帳號可能是由哪一部網絡主機連線過來的, 這個設置值可以指定用戶端計算機(信任的來源的意思)。默認值 root 可來自任何一部網絡主機 3. “(可切換的身份)”:這個帳號可以切換成什么身份來下達后續的指令,默認 root 可以切換成任何人; 4. “可下達的指令”:可用該身份下達什么指令?這個指令請務必使用絕對路徑撰寫。 默認 root 可以切換任何身份且進行任何指令之意。 那個 ALL 是特殊的關鍵字,代表任何身份、主機或指令的意思。所以,我想讓 vbird1 可以進行任何身份的任何指令, 就如同上表特殊字體寫的那樣,其實就是復制上述默認值那一行,再將 root 改成 vbird1 即可啊! 此時“vbird1 不論來自哪部主機登陸,他可以變換身份成為任何人,且可以進行系統上面的任何指令”之意。 修改完請儲存后離開 vi,并以 vbird1 登陸系統后,進行如下的測試看看: ``` [vbird1@study ~]$ tail -n 1 /etc/shadow &lt;==注意!身份是 vbird1 tail: cannot open `/etc/shadow' for reading: Permission denied # 因為不是 root 嘛!所以當然不能查詢 /etc/shadow [vbird1@study ~]$ sudo tail -n 1 /etc/shadow &lt;==通過 sudo We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. &lt;==這里僅是一些說明與警示項目 #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for vbird1: &lt;==注意啊!這里輸入的是“ vbird1 自己的密碼 ” pro3:$6$DMilzaKr$OeHeTDQPHzDOz/u5Cyhq1Q1dy...:16636:0:99999:7::: # 看!vbird1 竟然可以查詢 shadow ! ``` 注意到了吧!vbird1 輸入自己的密碼就能夠執行 root 的指令!所以,系統管理員當然要了解 vbird1 這個用戶的“操守”才行!否則隨便設置一個使用者,他惡搞系統怎辦?另外,一個一個設置太麻煩了, 能不能使用群組的方式來設置呢?參考下面的第二種方式吧。 * II. 利用 wheel 群組以及免密碼的功能處理 visudo 我們在本章前面曾經創建過 pro1, pro2, pro3 ,這三個用戶能否通過群組的功能讓這三個人可以管理系統? 可以的,而且很簡單!同樣我們使用實際案例來說明: ``` [root@study ~]# visudo &lt;==同樣的,請使用 root 先設置 ....(前面省略).... %wheel ALL=(ALL) ALL &lt;==大約在 106 行左右,請將這行的 # 拿掉! # 在最左邊加上 % ,代表后面接的是一個“群組”之意!改完請儲存后離開 [root@study ~]# usermod -a -G wheel pro1 &lt;==將 pro1 加入 wheel 的支持 ``` 上面的設置值會造成“任何加入 wheel 這個群組的使用者,就能夠使用 sudo 切換任何身份來操作任何指令”的意思。 你當然可以將 wheel 換成你自己想要的群組名。接下來,請分別切換身份成為 pro1 及 pro2 試看看 sudo 的運行。 ``` [pro1@study ~]$ sudo tail -n 1 /etc/shadow &lt;==注意身份是 pro1 ....(前面省略).... [sudo] password for pro1: &lt;==輸入 pro1 的密碼喔! pro3:$6$DMilzaKr$OeHeTDQPHzDOz/u5Cyhq1Q1dy...:16636:0:99999:7::: [pro2@study ~]$ sudo tail -n 1 /etc/shadow &lt;==注意身份是 pro2 [sudo] password for pro2: &lt;==輸入 pro2 的密碼喔! pro2 is not in the sudoers file. This incident will be reported. # 仔細看錯誤訊息他是說這個 pro2 不在 /etc/sudoers 的設置中! ``` 這樣理解群組了吧?如果你想要讓 pro3 也支持這個 sudo 的話,不需要重新使用 visudo ,只要利用 [usermod](../Text/index.html#usermod) 去修改 pro3 的群組支持,讓 pro3 用戶加入 wheel 群組當中,那他就能夠進行 sudo 啰! 好了!那么現在你知道為啥在安裝時創建的用戶,就是那個 dmstai 默認可以使用 sudo 了嗎?請使用“ id dmtsai ”看看, 這個用戶是否有加入 wheel 群組呢?嘿嘿!了解乎? ![鳥哥的圖示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鳥哥的圖示") **Tips** 從 CentOS 7 開始,在 sudoers 文件中,默認已經開放 %wheel 那一行啰!以前的 CentOS 舊版本都是沒有啟用的呢! 簡單吧!不過,既然我們都信任這些 sudo 的用戶了,能否提供“不需要密碼即可使用 sudo ”呢? 就通過如下的方式: ``` [root@study ~]# visudo &lt;==同樣的,請使用 root 先設置 ....(前面省略).... %wheel ALL=(ALL) NOPASSWD: ALL &lt;==大約在 109 行左右,請將 # 拿掉! # 在最左邊加上 % ,代表后面接的是一個“群組”之意!改完請儲存后離開 ``` 重點是那個 NOPASSWD 啦!該關鍵字是免除密碼輸入的意思喔! * III. 有限制的指令操作: 上面兩點都會讓使用者能夠利用 root 的身份進行任何事情!這樣總是不太好~如果我想要讓使用者僅能夠進行部分系統任務, 比方說,系統上面的 myuser1 僅能夠幫 root 修改其他使用者的密碼時,亦即“當使用者僅能使用 passwd 這個指令幫忙 root 修改其他用戶的密碼”時,你該如何撰寫呢?可以這樣做: ``` [root@study ~]# visudo &lt;==注意是 root 身份 myuser1 ALL=(root) /usr/bin/passwd &lt;==最后指令務必用絕對路徑 ``` 上面的設置值指的是“myuser1 可以切換成為 root 使用 passwd 這個指令”的意思。其中要注意的是: 指令字段必須要填寫絕對路徑才行!否則 visudo 會出現語法錯誤的狀況發生! 此外,上面的設置是有問題的!我們使用下面的指令操作來讓您了解: ``` [myuser1@study ~]$ sudo passwd myuser3 &lt;==注意,身份是 myuser1 [sudo] password for myuser1: &lt;==輸入 myuser1 的密碼 Changing password for user myuser3\. &lt;==下面改的是 myuser3 的密碼喔!這樣是正確的 New password: Retype new password: passwd: all authentication tokens updated successfully. [myuser1@study ~]$ sudo passwd Changing password for user root. &lt;==見鬼!怎么會去改 root 的密碼? ``` 恐怖啊!我們竟然讓 root 的密碼被 myuser1 給改變了!下次 root 回來竟無法登陸系統...欲哭無淚~怎辦? 所以我們必須要限制使用者的指令參數!修改的方法為將上述的那行改一改先: ``` [root@study ~]# visudo &lt;==注意是 root 身份 myuser1 ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root ``` 在設置值中加上驚嘆號“ ! ”代表“不可執行”的意思。因此上面這一行會變成:可以執行“ passwd 任意字符”,但是“ passwd ”與“ passwd root ”這兩個指令例外! 如此一來 myuser1 就無法改變 root 的密碼了!這樣這位使用者可以具有 root 的能力幫助你修改其他用戶的密碼, 而且也不能隨意改變 root 的密碼!很有用處的! * IV. 通過別名創建 visudo: 如上述第三點,如果我有 15 個用戶需要加入剛剛的管理員行列,那么我是否要將上述那長長的設置寫入 15 行啊? 而且如果想要修改命令或者是新增命令時,那我每行都需要重新設置,很麻煩ㄟ!有沒有更簡單的方式? 是有的!通過別名即可!我們 visudo 的別名可以是“指令別名、帳號別名、主機別名”等。不過這里我們僅介紹帳號別名, 其他的設置值有興趣的話,可以自行玩玩! 假設我的 pro1, pro2, pro3 與 myuser1, myuser2 要加入上述的密碼管理員的 sudo 列表中, 那我可以創立一個帳號別名稱為 ADMPW 的名稱,然后將這個名稱處理一下即可。處理的方式如下: ``` [root@study ~]# visudo &lt;==注意是 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 ``` 我通過 User_Alias 創建出一個新帳號,這個帳號名稱一定要使用大寫字符來處理,包括 Cmnd_Alias(命令別名)、Host_Alias(來源主機名稱別名) 都需要使用大寫字符的!這個 ADMPW 代表后面接的那些實際帳號。 而該帳號能夠進行的指令就如同 ADMPWCOM 后面所指定的那樣!上表最后一行則寫入這兩個別名 (帳號與指令別名), 未來要修改時,我只要修改 User_Alias 以及 Cmnd_Alias 這兩行即可!設置方面會比較簡單有彈性喔! * V. sudo 的時間間隔問題: 或許您已經發現了,那就是,如果我使用同一個帳號在短時間內重復操作 sudo 來運行指令的話, 在第二次執行 sudo 時,并不需要輸入自己的密碼!sudo 還是會正確的運行喔!為什么呢? 第一次執行 sudo 需要輸入密碼,是擔心由于使用者暫時離開座位,但有人跑來你的座位使用你的帳號操作系統之故。 所以需要你輸入一次密碼重新確認一次身份。 兩次執行 sudo 的間隔在五分鐘內,那么再次執行 sudo 時就不需要再次輸入密碼了, 這是因為系統相信你在五分鐘內不會離開你的作業,所以執行 sudo 的是同一個人!呼呼!真是很人性化的設計啊~ ^_^。不過如果兩次 sudo 操作的間隔超過 5 分鐘,那就得要重新輸入一次你的密碼了 [[4]](#ps4) * VI. sudo 搭配 su 的使用方式: 很多時候我們需要大量執行很多 root 的工作,所以一直使用 sudo 覺得很煩ㄟ!那有沒有辦法使用 sudo 搭配 su , 一口氣將身份轉為 root ,而且還用使用者自己的密碼來變成 root 呢?是有的!而且方法簡單的會讓你想笑! 我們創建一個 ADMINS 帳號別名,然后這樣做: ``` [root@study ~]# visudo User_Alias ADMINS = pro1, pro2, pro3, myuser1 ADMINS ALL=(root) /bin/su - ``` 接下來,上述的 pro1, pro2, pro3, myuser1 這四個人,只要輸入“ sudo su - ”并且輸入“自己的密碼”后, 立刻變成 root 的身份!不但 root 密碼不會外流,使用者的管理也變的非常方便! 這也是實務上面多人共管一部主機時常常使用的技巧呢!這樣管理確實方便,不過還是要強調一下大前提, 那就是“這些你加入的使用者,全部都是你能夠信任的用戶”!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看