- 积分
- 11013
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?开始注册
x
sudu命令
0 ~6 m, S: k$ [* J9 Q8 l3 r2 J* J( L; B8 f8 k3 P) J* ]
用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
& K o* h5 S5 [# g: W3 x m
( c7 u5 p9 t \: l' j( p) O- i x" i. X语法: sudo (选项) (参数)
9 x' l y4 v( m' v( H% ^1 c1 p. W选项: (该部分只做了解)
3 K: [3 f5 \0 |+ w& `8 h' O1 U-b:在后台执行指令;
4 ], r# ^( r j' a g5 H-h:显示帮助;! y) Z; Y5 x1 m1 z2 z, ?
-H:将HOME环境变量设为新身份的HOME环境变量;" i' Q* w0 E5 v, [4 T
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;
1 g* O" }3 i- G) l9 {& X: n9 h-l:列出目前用户可执行与无法执行的指令;3 @3 t9 D( P1 g" c0 x! Q
-p:改变询问密码的提示符号;
) X3 M+ f, n+ Y-s:执行指定的shell;
/ w1 d9 C: f& P3 `$ \. v-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;" N1 }$ |: B8 A9 h
-v:延长密码有效期限5分钟;
2 M. H1 K1 q1 u, p2 ~( q$ L-V :显示版本信息。
# x% k( j* n" r5 M6 X7 D6 P4 V p+ F) P4 u0 x
sudo文件配置5 E. L1 a5 B- `
8 H4 ^7 L$ F* ?" t
配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它。使用visudo命令编辑/etc/sudoers配置文件,操作方法同vi命令。当对多个命令设置速sudo权限时,需要用逗号加空格隔开。使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。
( {* A1 w4 d5 t) g
. \8 w# i8 e0 N[root@3 ~]# visudo 更改sudo配置文件
- \# I4 m; _* K) G: S) ^4 N
8 B- t6 R) {* Z) y8 e+ E# This file MUST be edited with the 'visudo' command as root.
! R# Z K7 h* e: M! i4 n; Q必须在root用户使用visudo命令!
3 j3 J) B4 C, y, S# \. H' I' E; N. T: | K2 Q/ n8 b' Q
## Allow root to run any commands anywhere
$ k" R' X0 b5 M+ troot ALL=(ALL) ALL
( c/ Z1 |/ ]' w2 ALL=(ALL) /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
' z! d! G; F H5 @; }7 U; j% h6 ]& f. C对2用户进行授权(授权完毕后保存退出)
8 _4 `9 }, r, u" G) m9 F
& t8 k; r5 {% ^1 Z+ U[root@3 ~]# su - 2 切换到普通用户4 T! L% H) L% }3 j* m
上一次登录:三 6月 14 10:23:01 CST 2017pts/1 上
8 D$ q; |. ? b9 a1 u[2@3 ~]$ ls /root/
3 \7 s. l1 W, g# G H% `ls: 无法打开目录/root/: 权限不够 ; m' B" ?) D% b4 \# I, ^% ?
(!!!即,普通用户没有访问root用户的权限)8 p' P/ L# M Q. ]6 @
[2@3 ~]$ sudo /usr/bin/ls /root/ ; o G5 U h+ Q5 x
使用sudo命下访问root用户* Z; L$ N0 R; |7 R. |2 s
[sudo] password for adai001: * W$ j5 ?+ S2 F1 j; Q1 |
anaconda-ks.cfg 访问成功!!!
. J& @/ d# h. a1 c5 \( P7 b' X[2@3 ~]$ sudo /usr/bin/ls /root/
6 K0 d: l% X9 ~9 oanaconda-ks.cfg 再次使用sudo命令时无需输入密码
F+ x- s1 Z2 b- M[2@3 ~]$ cat /root/
+ B7 M/ G1 L: ^+ ocat: /root/: 权限不够
9 C2 m7 n, z8 f: k' p9 h- a[2@3 ~]$ sudo /usr/bin/cat /root/8 F* U# f3 c; R- x4 W, Y2 V1 G
/usr/bin/cat: /root/: 是一个目录8 \" f! P! h& O2 `! T4 `& K
注:6 \* \: Z4 O: A# V# a) m5 G" g
1)在增添用户的同时需要对用户设置密码(此处设置的是12345678),用户和登录密码要同时成对存在!( g: e( @" u, W# n4 t6 O
2)在编辑sudo配置文件时可以使用"NOPASSWD"前缀设置无密码使用权限,即在使用sudo命令时不用再输入用户密码! ?" Y+ ^, |) ^4 y. s7 r4 I0 v
2 p1 u6 V& f. y
sudo -i 详解
" g* \7 u1 O; ]9 F2 E8 x& w, e. O X! m4 m' J% u6 h: W2 I
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。 I7 D- N+ a. B: r/ v& v
6 p3 c; r7 c+ [$ _8 k4 ~
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。% q0 w q, O/ {# f5 _+ h1 {0 g
* P5 k1 O4 K/ E& U' O/ h isudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。* x1 ~! ~( b) i& h) m" G
6 c# a) [3 N% v. Y: i其实,还有几个类似的用法: f: h( K, r# J( A/ V! S/ F
sudo /bin/bash:1 j% C5 x+ I% d4 ^6 e/ c* |
这个命令也会切换到root的bash下,但不能完全拥有root的所有环境变量,比如PATH,可以拥有root用户的权限。这个命令和 sudo -s 是等同的。
/ L' H3 h0 U6 z3 c6 P& k: I7 p
; {( a/ _, c; V& Osudo -s : 如上* K1 Z& y" V( h2 W) a! _2 Y. f5 r
- J) f+ y7 ]' K$ B. ?sudo su : 这个命令,也是登录到了root,但是并没有切换root的环境变量,比如PATH。/ Z! R! B4 |% j ^0 J( z+ i! P v
# b5 U% z2 N6 {3 Wsudo su - : 这个命令,纯粹的切换到root环境下,可以这样理解,先是切换到了root身份,然后又以root身份执行了 su -,此时跟使用root登录没有什么区别。此结果貌似跟sudo -i的效果是一样的,但是也有不同,sudo只是临时拥有了root的权限,而su则是使用root账号登录了linux系统。* l5 _4 c1 r1 L" P0 Z
所以,我们再来总结一下:' x. |$ n8 d4 a) }
0 z2 C/ _4 @/ k# ksudo su - 约等于 sudo -i- R+ `8 d3 U1 b6 m6 s; O
! J1 K$ E% e2 A
sudo -s 完全等于 sudo /bin/bash 约等于 sudo su
, i" C. ?: d0 Jsudo 终究被一个"临时权限的帽子"扣住,不能等价于纯粹的登录到系统里。
, Y% F* t& ]# T4 B( k1 K0 n7 h! n! M7 K8 ?8 n& o# g
sudo配置文件样例/ R$ j) ^' k" F. M/ _5 t
/ y6 ?5 o1 ~7 R" K* O8 a
#' m. @. H1 O1 i/ n+ X7 \
# Sample /etc/sudoers file. t' U8 k5 G `# N- w
#3 P! w, r* a1 l3 ]' e9 R o: a
# This file MUST be edited with the 'visudo' command as root.
4 D- M; h6 }+ J8 j" B' R l- T#
" k, ~) p, s2 @ M$ n; k7 V# See the sudoers man page for the details on how to write a sudoers file.5 x1 t3 g, j$ v0 [9 l, E
#
% s+ e2 i, D) V n" Y8 T B
( w5 H% D- O( h) {6 d. G6 Q##. W# C p2 v: ]9 C; H: k
# User alias specification
' ^! u! k4 W8 ^, }4 U& z) t##
0 [' X9 Y0 k; Z( JUser_Alias FULLTIMERS = millert, mikef, dowdy
8 I2 X6 b' p# S2 l/ e( h3 \# rUser_Alias PARTTIMERS = bostley, jwfox, crawl1 Z+ _8 V; r R9 a1 K
User_Alias WEBMASTERS = will, wendy, wim
: T9 f* j6 V+ z# W+ L- p8 R( V# L4 P
" X7 M* |2 N" `1 T, r' ?! r##, J9 L! n) z5 Q! Z( S: F/ g7 B+ O9 ?
# Runas alias specification4 U9 Q3 @- B+ m9 l2 S
##. k' ]% n2 b. `8 h. ~% l
Runas_Alias OP = root, operator
& r# y+ @* p" F7 f) L2 mRunas_Alias DB = oracle, sybase; d- G) R0 u: S3 ^8 B
0 N: U# x( j& z6 P
##9 D( ~4 w1 T( X6 {- ^) n3 v; V& p- `
# Host alias specification
( w" ?- X7 Y' B( W/ u9 H##
/ D' F$ V/ S1 i2 P* pHost_Alias SPARC = bigtime, eclipse, moet, anchor:\$ m# ]7 @3 P" I6 M* @
SGI = grolsch, dandelion, black:\
! _/ i7 \; A7 C ALPHA = widget, thalamus, foobar:\
$ `5 }) c4 T) Y8 X HPPA = boa, nag, python
. c) k% I: `: U( o' I9 L6 k8 UHost_Alias CUNETS = 128.138.0.0/255.255.0.0
2 @8 u$ R: m% s+ q* Y) E; ]5 r: i: B5 jHost_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.07 K. N8 `' |' n1 ~( O r
Host_Alias SERVERS = master, mail, www, ns
9 B' l9 i' B/ A) r U" dHost_Alias CDROM = orion, perseus, hercules& r/ @5 U3 V- {# B
% y U( f7 p, S' [4 H# D9 q##" c) _+ b1 `3 n* W& r) i) l" h: n
# Cmnd alias specification
+ B5 L: R7 Q4 k) g! m! R5 b& T##% m) @, [* _' n4 ?: Q! E" a
Cmnd_Alias DUMPS = /usr/sbin/dump, /usr/sbin/rdump, /usr/sbin/restore, \
4 E& n! c6 i$ L( F5 c# u# } /usr/sbin/rrestore, /usr/bin/mt
- B( W+ U: S/ L4 j' p; e4 _Cmnd_Alias KILL = /usr/bin/kill8 F/ b' L7 D. G9 U! ^
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
( h- v! t2 s A4 UCmnd_Alias SHUTDOWN = /usr/sbin/shutdown# Q6 ^7 h$ n) A
Cmnd_Alias HALT = /usr/sbin/halt
/ P3 {! ^- n3 aCmnd_Alias REBOOT = /usr/sbin/reboot
# d' \2 w* t/ ~' Q3 G X5 _Cmnd_Alias SHELLS = /sbin/sh, /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \7 Z% e$ w- \2 a# T) f- {' T g
/usr/local/bin/tcsh, /usr/bin/rsh, \
/ U. M ~# }6 G' c /usr/local/bin/zsh
1 F$ K% R: c: H9 a+ _+ U: ECmnd_Alias SU = /usr/bin/su
3 a( E1 D0 _+ I( W$ @1 _. f. O" e, aCmnd_Alias VIPW = /usr/sbin/vipw, /usr/bin/passwd, /usr/bin/chsh, \
8 }, h* P ]) @/ S) J$ p- H /usr/bin/chfn$ u- W& I% z3 j- J' q+ r& c
+ ^+ H, r; }3 P
##/ O! a( r- |0 m; O. Z/ D8 K* ~
# Override built-in defaults
0 e, a) C1 G6 N3 T f1 A& P$ V$ R##
: O, W% s* O. A, Q/ w/ ?; GDefaults syslog=auth; G, ]1 V3 a7 X7 K$ J9 ~" p" m ]4 l6 K
Defaults>root !set_logname
! }+ l7 a, Y$ H5 q" k0 d4 JDefaults:FULLTIMERS !lecture9 z- v- K8 t5 B- U8 V
Defaults:millert !authenticate
1 L+ E6 G( A3 o+ fDefaults@SERVERS log_year, logfile=/var/log/sudo.log
9 Q9 S8 S2 d' g+ [1 w* l, Q+ F" h* `, p, G, ]4 O
##
4 r& A- m: f' W% B, ]8 A* R: F# User specification
" l% H# c- q6 o3 m$ d, H/ t2 Q##
4 G! g1 ~! c# R3 o4 U8 X; \
8 K8 h5 l. V+ b4 H, d- m# root and users in group wheel can run anything on any machine as any user
) [6 k$ U6 p+ @9 s8 h; jroot ALL = (ALL) ALL
. L" @! I8 Y' g9 B& x) H%wheel ALL = (ALL) ALL
9 ] T* i+ v0 ]6 C, z3 y
1 P8 A$ F6 W$ u. O* Q( x$ A0 F1 ~# full time sysadmins can run anything on any machine without a password
1 M6 ?# W: F) }FULLTIMERS ALL = NOPASSWD: ALL6 |5 g& X1 w9 z' J# N
4 u, z- [8 J% R" b4 j+ V
# part time sysadmins may run anything but need a password2 D. Q; ~8 \) R5 f' z& h k4 |
PARTTIMERS ALL = ALL% \$ I! F) y& R) W
% Q' b; t5 o5 P; L4 C8 T2 K
# jack may run anything on machines in CSNETS: ~. B' R1 T8 _6 R+ d t
jack CSNETS = ALL
) k5 J! [9 J9 Y. [' I. V1 o. F
$ C2 Y7 N& }. E, `( d7 d" p# lisa may run any command on any host in CUNETS (a class B network); p& O+ Y2 e/ {" T5 O9 e3 Z+ i
lisa CUNETS = ALL
; Z# r: V r$ I9 s
, t) q" ~" c# n8 c; l# operator may run maintenance commands and anything in /usr/oper/bin/2 k$ e3 H0 Y% i a& q/ Q O
operator ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
0 j6 @8 U: `6 ? sudoedit /etc/printcap, /usr/oper/bin/+ C# k- ?% ^ Y- _/ m
7 D% G+ U, O+ x' ~6 P# u$ X# joe may su only to operator* A. h7 ]4 \4 w0 R
joe ALL = /usr/bin/su operator
4 K4 Q# s. f# h; ^: P& H2 I( Y. o* ^- M4 D G
# pete may change passwords for anyone but root on the hp snakes
- c/ u( \8 N! J" R: W: Qpete HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
& h4 S5 D0 ^) { y; X4 M1 Q
, u4 E0 a9 Y: J3 Z5 X' E# bob may run anything on the sparc and sgi machines as any user
5 I3 B; v0 ^4 E( ~2 l# listed in the Runas_Alias "OP" (ie: root and operator)+ m9 t+ e. V, F. D7 `" i$ w# ]! R" u
bob SPARC = (OP) ALL : SGI = (OP) ALL
: M" B4 n* e+ U- T6 W. K- T8 Q' }4 {2 a
# jim may run anything on machines in the biglab netgroup( h1 x5 Z7 R% y/ \
jim +biglab = ALL
. _6 J* w4 C9 G. {! Z+ ?
8 v4 j& Z# L, l: O: g' m# users in the secretaries netgroup need to help manage the printers
, j" [0 Z/ |( u# as well as add and remove users, w( e8 O! Z" j# ^1 a0 c3 u
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser- J/ o1 [& @; G' N* [7 F9 \+ Y
+ n" w- R5 _5 N7 Q( m
# fred can run commands as oracle or sybase without a password6 i2 |) J X, [4 \ C8 O; `
fred ALL = (DB) NOPASSWD: ALL" r6 r$ [4 `, |% Q# I5 R% }# t
* I/ e5 w, T3 n5 k# D8 g% n- o# on the alphas, john may su to anyone but root and flags are not allowed; t+ {2 i9 o/ b2 v+ n0 }; ~0 X
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*$ u' b9 \$ L8 h) E5 u
; Y3 O. v" T2 w, Q# jen can run anything on all machines except the ones) l4 a& b+ p7 C0 g; q. \0 |9 |
# in the "SERVERS" Host_Alias
% ?6 d- F+ {7 v7 t4 h' Ljen ALL, !SERVERS = ALL0 O2 _! _+ z6 Y2 e1 p$ f, A
! v6 w7 _. m7 l" g# jill can run any commands in the directory /usr/bin/, except for' r* K3 @6 l$ ]. c1 O
# those in the SU and SHELLS aliases.2 L, w3 f4 e3 ?+ S7 H \% X
jill SERVERS = /usr/bin/, !SU, !SHELLS. y5 T# z) O) y- U9 l+ y: h
$ ~9 s) D& u' f& A5 _
# steve can run any command in the directory /usr/local/op_commands/
0 H% K' ?7 ?6 [" t( `; Z5 Q# as user operator.
6 `3 P- |% M5 J" b. Gsteve CSNETS = (operator) /usr/local/op_commands/
; f! g& {2 G5 c( E$ L$ u
9 F6 K2 N+ U+ T: L& d" i; `* E' O# matt needs to be able to kill things on his workstation when& h9 |' X+ Y' a! x! Y$ B0 O
# they get hung.
4 e+ z9 ~ z' imatt valkyrie = KILL" `& x6 W1 `1 F( ^
2 X: _* j( v2 X( L W9 X$ O8 i7 X
# users in the WEBMASTERS User_Alias (will, wendy, and wim)
+ ?, r7 Y% s* w# may run any command as user www (which owns the web pages)
9 e0 l; q* B# P( h5 V9 e5 V+ @# or simply su to www.
c! v6 }3 ~' M; F' D9 BWEBMASTERS www = (www) ALL, (root) /usr/bin/su www
* X. ^9 P' |+ s5 e
- `5 {6 P$ G I$ V# anyone can mount/unmount a cd-rom on the machines in the CDROM alias
# q/ V, k3 e0 W! V# w5 eALL CDROM = NOPASSWD: /sbin/umount /CDROM,\0 n4 A9 Q1 M. T+ l, C
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM+ \. v9 Z2 i& ?) m! F& ?
文件编辑状态下可以用“/”进行关键词查找,输入“:set nu(=number)”显示行号。 |
|