52AV手機A片王|52AV.ONE
標題: Linux 下 su v.s sudo 指令比較 [打印本頁]
作者: media 時間: 2014-12-21 14:08
標題: Linux 下 su v.s sudo 指令比較
本帖最後由 media 於 2014-12-21 14:12 編輯 ) I( {7 S) e7 L1 G. d
2 L5 v. l B% i4 K$ ?+ L( [
su=switch user ,轉換到root 帳號( X: A j8 }1 F5 T2 a: {# I6 e2 e
sudo 是以root權限執行相關命令,例如: sudo service mysqld restart,兩者說明如下:
% m4 x2 Y" ~' K
6 C {* X# z& D' \Linux安裝套件與系統設定都需要root的權限,就是super-user privileges (最高權限),也就是管理員權限。如何擁有root的權限?我們可以直接用ssh登入root的帳號,或用su(substitute user)指令來切換使用者,再不然就是使用sudo指令。 * ^* i C. F- A7 D. M: P
% O( ~3 K& M) g( K2 k( U1. 使用su指令
- #用su切換使用者! S: w# Q( x8 }6 S, D
- [aaron@phoenix ~]$ su#使用su切換為root/ g$ D: W5 u! M3 G# {4 \
- Password:[輸入root密碼]
i, B: x7 y. U4 s( ~/ r - , _3 e4 B& M! ]
- [root@phoenix aaron]# service httpd restart#已切換為root
* B' [- R& J. ?. p# G5 h - Stopping httpd: [ OK ]
5 X6 }, q# \( z& K3 M# H) I5 M - Starting httpd: [ OK ]
9 n" _- }5 `6 n2 P) _# W - 3 E* U m) ?$ D4 G/ j% s5 o) A
- [root@phoenix aaron]# exit#切換回aaron
8 p/ D2 x: d8 A1 I - 6 J8 P1 D3 j$ O
- #執行單一指令,不需要切換為root F* _* h' k& }1 v5 ]0 _
- [aaron@phoenix ~]$ su -c "service httpd restart"
/ P9 C/ E& D3 H8 @# k" `1 t+ B - Password:[輸入root密碼]
! a' g- T$ Z; w& S5 S - Stopping httpd: [ OK ]/ H. D9 M' |& E5 o, g
- Starting httpd: [ OK ]
) v' R; ~) J" e3 t& w
. ^7 s7 W: _$ t" m# R* K& E- #執行su與su -的差別(Shell環境是否跟著切換)7 V. Y+ r+ S! Q" e2 R5 A
- [aaron@phoenix ~]$ su0 f( D) T) ~& g
- Password:[輸入root密碼]9 ^- a% J3 v: J& G- N$ Q4 E8 ^9 k$ u6 v
- [root@phoenix aaron]# echo $PATH#列印PATH變數,發現還使用aaron的PATH變數8 E& H* ^0 p- v0 w/ Y% S# m- Z# K3 m/ V
- /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/aaron/bin6 b5 d6 U, Y, B
- % ^1 P) \4 I0 ]. W
- [aaron@phoenix ~]$ su -
- ~$ Q) M6 s4 f7 f- w0 o' ^, ~$ V - Password:[輸入root密碼]( ?2 i' [9 j3 d6 t6 \0 _8 `
- [root@phoenix aaron]# echo $PATH#列印PATH變數,使用root的PATH變數8 V& @+ U' O( w) l- g
- /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
複製代碼
, d4 t) s1 x3 l# R2 Z, z2. 設定sudoer
- V3 b$ O# z" \' ?
- [aaron@phoenix ~]$ su
- _4 O* A1 ~$ w/ l' f2 N - Password:[輸入root密碼]- U; e0 P9 ^& F$ \+ y f
- * B4 \2 x1 T/ n! V. a
- [root@phoenix aaron]# vim /etc/sudoers3 c6 w Z% a3 k- f K8 c* r# r
$ i |" R. \( Q" G8 |- ## Allow root to run any commands anywhere J7 f( ^' e; c m9 n9 [! j
- root ALL=(ALL) ALL# o& z! W4 ~7 ~9 g. e8 {' S
- 4 d/ R- D/ o% f: C& k
- ## Allow users to run any commands anywhere
% s' j( t9 z& M - aaron ALL=(ALL) ALL#新增這條允許aaron可以執行管理員權限
複製代碼
5 x: E: f1 X c3. 範例- #沒有最高權限,所以就被擋了
* m, g, `1 J8 H, c. R- @( B2 i6 T - [aaron@phoenix ~]$ service httpd restart
' ~7 x4 H% B4 R8 I, i: k6 m2 H - Stopping httpd:0 A3 u% w- Q4 a! n2 X, H
- rm: cannot remove `/var/run/httpd/httpd.pid': Permission denied
8 x' ]; G% ^ P0 s% v1 n
& g9 N! R/ Z. X- Starting httpd:
1 j; e: ?- e+ r# t! U - touch: cannot touch `/var/lock/subsys/httpd': Permission denied
4 J+ ?+ a H$ W0 t3 q3 p
6 o$ B, l0 g5 ]6 Q( k# D- #用sudo就可以" S+ T, J+ e8 B
- [aaron@phoenix ~]$ sudo service httpd restart: q% i2 T% b& c9 ]! q* c
- [sudo] password for aaron:[輸入密碼]
1 c% _. i9 k* B$ l# @" A1 K* h - Stopping httpd: [ OK ]# I1 v+ B9 J3 V4 T
- Starting httpd: [ OK ]
複製代碼 #su與sudo的差別在於是否要讓一般使用者知道root的密碼,如果用su就必須將root密碼分享出去,很有可能造成系統被侵入的危險。而sudo則是讓一般使用者有管理員權限,只要輸入自己的密碼即可,但同樣有風險,因為擁有管理員權限。7 a# g: Y% @4 L) j w
可參考http://kezeodsnx.pixnet.net/blog/post/25810396
| 歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av.one/) |
Powered by Discuz! X3.2 |