WEB开发网      濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻锝夊箣閿濆棭妫勯梺鍝勵儎缁舵岸寮诲☉妯锋婵鐗嗘慨娑氱磽娴e搫鈻堢紒鐘崇墵瀵顓奸崼顐n€囬梻浣告啞閹歌顫濋妸鈺佺闁靛繒濮Σ鍫熺箾閸℃ê濮囨い搴㈡崌濮婃椽宕ㄦ繝鍌氼潓閻庢鍠栭悥濂哥嵁閺嶎厼绠涙い鏃傚亾閿涘繘姊洪崨濠冨瘷闁告洦鍋呴悾顒勬⒒娴e摜鏋冩い顐㈩樀瀹曞綊宕稿Δ鈧粻鏍煃閸濆嫬鏆婇柛瀣崌瀹曠兘顢橀悙鎰╁灪閵囧嫰濡烽敂鍓х杽濠殿喖锕ら幖顐f櫏闂佹悶鍎滈埀顒勫磻閹炬緞鏃堝川椤撶媴绱遍梻浣筋潐瀹曟﹢顢氳椤㈠﹪姊绘担鍛婂暈婵炶绠撳畷褰掑箥椤斿彞绗夊┑鐐村灟閸ㄦ椽鎮¢弴鐔翠簻闁规澘澧庣粙鑽ょ磼閳ь剟宕橀埞澶哥盎闁硅壈鎻槐鏇熸櫏婵犳鍠栭敃銊モ枍閿濆洤鍨濇繛鍡楃箚閺嬪酣鏌熼鍡楀暙椤ユ劙姊婚崒娆戭槮闁硅姤绮嶉幈銊╂偨缁嬭法顦┑鐐叉閸旀帞鎹㈤崱娑欑厽闁靛繆鎳氶崷顓犵焼閻庯綆鍋佹禍婊堟煛瀹ュ啫濮€濠㈣锕㈤弻娑㈡倷椤忓嫬顫囧┑顔硷攻濡炶棄螞閸愵煁褰掑Χ閸℃瑢濮囬梺鐟板槻閹虫﹢鐛幘璇茬鐎广儱鎷嬪Λ婊堟⒒閸屾瑧顦︽繝鈧柆宥呯?闁靛牆顦埀顒€鍟村畷鍗炩槈濡厧骞堥梻浣告贡閸庛倝銆冮崱娑欏亗闁哄洢鍨洪悡娑㈡煕閵夛絽鍔氬┑锛勫帶闇夋繝濠傚閻鏌曢崶褍顏紒鐘崇洴閺佹劙宕ㄩ鐘垫綁闂傚倷绀侀幖顐e緞閸ヮ剙鐒垫い鎺嗗亾缁剧虎鍙冨鎶藉幢濞戞瑥鈧敻鏌ㄥ┑鍡涱€楀褌鍗抽弻锟犲幢濞嗗繆鏋呴梺鍝勭潤閸曨偒鍤ゅ┑鐐叉閸ㄧ敻宕哄畝鍕拺闂傚牊绋掗ˉ鐐烘偨椤栨稑娴柨婵堝仜閳规垹鈧綆鍋勬禍妤呮煙閼圭増褰х紒鎻掋偢閹粙鎳¢妶鍥╋紳婵炶揪缍€椤曟牕鈻撻弴銏$厱闁靛ǹ鍎虫禒銏°亜椤愩垻绠崇紒杈ㄥ笒铻i悹鍥ф▕閳ь剚鎸剧槐鎾存媴閸︻厸妲堝銈嗗灥閹冲酣鍩㈤幘娲绘晣闁绘劏鏅滈弬鈧俊鐐€栧褰掑几婵犳艾绀傛い鎺戝€荤壕濂告煟濡寧鐝€规洖鐭傞弻鏇㈠幢閺囩媭妲銈庡亝缁诲牓鐛崶銊﹀闁稿繐顦伴悗鍛婄節閻㈤潧啸闁轰礁鎲¢幈銊╊敇閵忕姷锛涢梺瑙勫礃缁夘喛銇愰幒鎾存珳闂佹悶鍎弬鍌炲焵椤掆偓閿曨亪寮婚敓鐘茬劦妞ゆ帊鑳堕々鐑芥倵閿濆骸浜為柛妯挎閳规垿鍩ラ崱妤冧画濡炪倖鍨堕悷鈺佺暦閻㈢鍋撻敐搴″幋闁稿鎸鹃幉鎾礋椤掆偓娴犫晠姊虹粙鎸庡攭缂侇噣绠栭幃姗€宕橀瑙f嫼缂傚倷鐒﹂埣銈夘敂閸曢潧娈ㄩ梺鍓插亝濞叉牠鎮块鈧弻锝夊箛椤旇姤姣勭紒鐐劤閵堟悂寮诲☉姘勃闁绘劦鍓涘▓銈夋煛娴e摜澧﹂柟顔筋殘閹叉挳宕熼鍌ゆО缂傚倷绶¢崰鏍崲濡寧顥ら梺璇查叄濞佳囧箺濠婂吘娑㈩敍閻愬鍘靛銈嗙墪濡梻绮堟担鍦浄妞ゆ洍鍋撻柟顔筋殔閳绘捇宕归鐣屼邯闂備胶绮悧婊堝储瑜旈幃楣冩倻閼恒儱浜楅柟鐓庣摠钃辨い顐㈢Т閳规垿鍩ラ崱妤冧户闁荤姭鍋撻柨鏇炲€归崐鐢碘偓瑙勬礀濞层劎澹曟禒瀣厱閻忕偛澧介幊鍛存煕閺傝法校闁靛洤瀚版俊鎼佸Ψ閿旂粯顥i梻浣风串缁插墽鎹㈤崼銉у祦闁哄秲鍔嶆刊瀛樻叏濠靛棙婀伴柟韫嵆濮婄粯鎷呴搹鐟扮濠碘槅鍋勯崯纾嬫"闂佽宕橀褍效閺屻儲鍊甸柨婵嗛閺嬬喖鏌i幘璺烘瀾濞e洤锕俊鍫曞磼濮橆偄顥氶梻鍌欒兌缁垶銆冮崨顓囨稑螖閸涱厾鍘洪梺鍦亾缁剁偤寮崼婵嗙獩濡炪倖妫侀~澶屸偓姘偢濮婃椽鎳¢妶鍛呫垺绻涢懠顒€鈻堥柛鈹惧亾濡炪倖甯掗崯顖炴偟椤忓牊鐓熼煫鍥э工娴滈箖姊婚崒姘偓椋庣矆娓氣偓楠炴牠顢曢敃鈧粻鐘绘煙闁箑骞楅柛娆忕箻閺岀喓绱掗姀鐘崇亶闂佺ǹ顑傞弲鐘诲蓟閿濆围閹艰揪绱曟禒婊勭箾鐎涙ḿ鐭婄紓宥咃躬瀵鎮㈤崗鐓庘偓缁樹繆椤栨繂浜归柣锝嗘そ濮婃椽宕崟顒€娅ょ紓浣筋嚙閻楀棝锝炶箛鎾佹椽顢旈崪浣诡棃婵犵數鍋為崹鍫曟嚌妤e啨鈧倿宕崟銊︽杸闂佸疇妫勫Λ妤佺濠靛鐓熼柣鏂垮级濞呭﹪鏌曢崱鏇狀槮闁宠閰i獮鎺楀籍閸屾稒绶梻鍌欑閹碱偊宕锕€纾瑰┑鐘崇閸庡﹪鏌涢鐘插姕闁抽攱鍨堕幈銊╂偡閻楀牊鎮欓梺璇茬箰瀵墎鎹㈠☉娆愬闁告劖褰冮顐c亜閳哄啫鍘撮柡灞诲姂瀵挳鎮欏ù瀣壕鐟滅増甯楅崑鍌炴煛閸ャ儱鐏柣鎾崇箰閳规垿鎮欓懠顑胯檸闂佸憡鏌i崐婵嬪蓟濞戙垹鐓涢悗锝庡墰钃辨俊鐐€戦崝濠囧磿閻㈢ǹ绠栨繛鍡樻尭缁狙囨煙鐎涙ḿ绠ユ繛鍏肩娣囧﹪濡堕崶顬儵鏌涚€n剙浠遍柡浣稿暣婵偓闁靛牆鍟犻崑鎾存媴缁洘鐎婚梺鍦亾濞兼瑥鈻撻幇鐗堚拺闁告劕寮堕幆鍫熴亜閹存繃鍠橀柣娑卞櫍婵偓闁靛牆妫岄幏濠氭⒑缁嬫寧婀伴柣鐕傚缁﹪鎮ч崼娑楃盎濡炪倖鍔戦崺鍕i幖浣圭厽闁挎繂鎳庡Σ濠氭懚閿濆鐓犳繛鏉戭儐濞呭洭鏌i幘鎰佸剰妞ゎ亜鍟存俊鍫曞幢濮楀棙鈷栭梻浣芥硶閸犲棝宕曢懠顒傜焿鐎广儱鐗勬禍褰掓煙閻戞ɑ灏甸柛妯兼暬濮婅櫣绱掑Ο铏逛桓闁藉啴浜堕幃妯跨疀閿濆懎绠归梻鍥ь槹缁绘繃绻濋崒姘缂備礁顦遍崕銈夊箞閵婏妇绡€闁告侗鍣禒鈺冪磽娴d粙鍝洪悽顖涘笩閻忔帡姊洪幆褏绠婚柍褜鍓氱粙鎺椼€佸鈧濠氬磼濞嗘垵濡介柣搴g懗閸忕姴鎼鍏煎緞婵犲嫭鐓f繝鐢靛仦閸ㄥ墎鍒掓惔銏㈩洸闂侇剙绉甸埛鎺懨归敐鍛暈闁哥喓鍋炵换娑氭嫚瑜忛悾鐢碘偓瑙勬礀缂嶅﹪寮婚崱妤婂悑闁告侗鍨伴獮鍫ユ⒒娴d警鏀伴柟娲讳邯濮婁粙宕熼娑樹簵濠电偛妫欓幐濠氭偂閻樺磭绠鹃柡澶嬪焾閸庢劖绻涢崨顓熷櫣闂囧鏌eΟ铏癸紞闁活厼锕弻宥囨喆閸曨偆浼岄梺鎼炲姂缁犳牠骞冨▎鎾村癄濠㈣泛顦崹婵嬫⒒閸屾瑦绁版い鏇熺墵瀹曟澘螖閸涱偀鍋撻崘顔煎窛闁哄鍨归崣鈧┑鐘灱閸╂牠宕濋弴鐘典笉闁规儼濮ら悡娆撴煙椤栧棗鑻▓鍫曟偡濠婂嫭绶叉繛灞傚妿濡叉劙骞樼拠鑼紲濠电偛妫欓崹鑲╃玻濡ゅ懏鈷戦柛婵勫劚鏍¢梺缁橆殘婵炩偓闁靛棔绶氬浠嬵敇閻愯尙鐛╅梻浣告贡閳峰牓宕㈡禒瀣柧闁挎繂顦伴埛鎴犵磼鐎n厽纭剁紒鐘冲▕閺屾稑螣閻樺弶鍣烘い鎰矙閺岋綁骞囬鍓х槇缂備浇顕уΛ娆撳Φ閸曨垰鍐€闁靛ě鍛帓闂佹眹鍩勯崹杈╃矙閹烘梹宕叉繛鎴欏灩瀹告繃銇勯幘璺烘瀻闁哄濮撮埞鎴︻敊绾嘲濮涚紓渚囧櫘閸ㄥ爼鐛箛娑樺窛閻庢稒锚娴狀參姊绘笟鍥у伎缂佺姵鍨甸埢鎾斥攽閸垻锛濋梺绋挎湰閻燂妇绮婇悧鍫涗簻闁哄洤妫楀ú銈囧瑜版帗鐓曟い顓熷灥濞呮﹢鏌涢妶鍡樼缂佽鲸鎸婚幏鍛嫻椤栨粎绐楃紓鍌欒濡狙囧磻閹剧粯鈷掑ù锝堫潐閸嬬娀鏌涙惔顔肩仸鐎规洘绻傞濂稿川椤忓懐鈧椽姊洪幖鐐插姶闁告挻宀搁崺娑㈠箣閻樼數锛滈柣搴秵閸嬪嫰顢氬⿰鍕瘈闁逞屽墴楠炲秹顢欓崜褝绱查梺璇插嚱缂嶅棝宕戦崨顓犳殾鐎光偓閳ь剟鍩€椤掑喚娼愭繛鎻掔箻瀹曡绂掔€n亞鐣烘繛瀵稿Т椤戝懎顔忓┑鍡忔斀闁绘ɑ褰冮鈺傤殽閻愭惌娈滄慨濠冩そ閹兘寮堕幐搴♀偓顖炴⒑娴兼瑧绉靛ù婊庝簻閻i鎲撮崟顓犵槇濠殿喗锕╅崜娑㈠储閹扮増鈷戦柛婵嗗閸屻劑鏌涢妸锔姐仢闁诡噯绻濇俊鐑芥晜閽樺浼庢繝纰樻閸ㄤ即鎮樺┑瀣亗闁规壆澧楅悡鐔兼煙閹规劖纭鹃柡瀣洴閺岋綁骞欓崘銊ゅ枈閻庤娲栭悥鍏间繆閻戣棄唯闁靛鍎涢幋鐘电=闁稿本鐟чˇ锔姐亜閹存繄澧曢柣锝囧厴閹粙宕归顐g稐闂備礁婀遍崕銈咁潖閼姐倕顥氶柛蹇涙?缁诲棙銇勯弽銊х畵濞存粌缍婇弻锝夋晲閸噥浠╃紓浣介哺閹稿骞忛崨瀛樻優闁荤喐澹嗛鑲╃磽閸屾瑦绁版い鏇嗗洦鍋嬮柛鈩冪⊕閸嬧晝鈧懓瀚伴崑濠傖缚閵娾晜鐓冪憸婊堝礈濮橆厾鈹嶅┑鐘插亞濞兼壆鈧厜鍋撳┑鐘插敪閵娧呯=闁稿本鐟︾粊鏉款渻閺夋垶鎲搁柟骞垮灲瀹曠厧鈹戦幇顓犵▉缂傚倸鍊烽悞锕佹懌婵犳鍨伴顓犳閹烘垟妲堟慨妤€妫楅崜鏉库攽閻愯尙澧涢柛鏃€鐟ラ~蹇撁洪鍕啇闂佺粯鍔栬ぐ鍐€栭崱娑欌拺闁告稑饪村▓鏃堟煕閻旈攱鍋ラ柟顕€绠栭幃婊呯驳鐎n偅娅栭梻浣虹帛閸旀ḿ浜稿▎鎰垫闁搞儺鍓氶埛鎴︽煟閻旂厧浜伴柛銈囧枎閳规垿顢氶埀顒€岣胯閸┿垽骞樺ǎ顒€浜濋梺鍛婂姀閺備線骞忛搹鍦=闁稿本鐟ч崝宥夋嫅闁秵鐓冮梺鍨儏濞搭噣鏌$仦鐣屝㈤柣锝忕節楠炲秹顢欑亸鏍у緧闂佽瀛╅鏍闯椤曗偓瀹曟垶绻濋崒婊勬闂佸湱鍎ら〃鍡涘磹閻戣姤鍊甸柣銏㈡瑜版帞宓侀柛顐犲劜閳锋帒霉閿濆洦鍤€闁崇粯娲熼弻鈩冪瑹閸パ勭彎閻庤娲橀崹鍧楃嵁濡偐纾兼俊顖滃帶楠炴劙姊绘担鍛婂暈濞撴碍顨婂畷鏉款潩鐠鸿櫣鐤囬梺鍛婁緱閸犳洜鎹㈤崱娑欑厱婵炲棗娴氬Σ绋库攽椤斿吋鍠橀柟钘夌埣閺佹劖寰勭€n亙鍝楁繝鐢靛仦閸ㄥ墎鏁幒鎾存珷闁哄被鍎查悡娑㈡煕鐏炵虎娈斿ù婊堢畺濮婂宕掑顑藉亾閻戣姤鍤勯柛鎾茬閸ㄦ繃銇勯弽顐粶缂佲偓婢舵劖鐓涢柛銉㈡櫅閳ь剨缍侀幃銏ゅ传閵壯呮闂備焦鎮堕崕婊堝礃閳轰礁濮冮梻鍌氬€烽懗鍓佸垝椤栫偛钃熼柕濞炬櫆閸庡秵绻濋棃娑卞剰缂備讲鏅犻弻銈夊箒閹烘垵濮屾繛瀛樼矋缁捇寮婚敓鐘茬闁靛⿵绠戦ˇ鈺侇渻閵堝啫鍔氭い锔炬暬瀵鈽夐姀鐘愁棟闁荤姴娲︾粊鎾磻閹炬枼鏀介悗锝庝簽椤旀垿姊洪崜鎻掍簼婵炲弶锕㈠畷鎰版倻閼恒儳鍘介梺鐟邦嚟閸嬪秶绱撳鑸电厱婵せ鍋撳ù婊嗘硾椤繐煤椤忓嫪绱堕梺鍛婃处閸撴瑩宕戝澶嬧拺闁告稑锕ラ悡銉╂煛閸偄澧寸€殿喗鐓″畷濂稿即閵婏附娅栭梻浣虹帛閸旀洟顢氶銏犲偍闁告鍋愰弨浠嬫煟閹邦剙绾фい銉︾矌缁辨帞绱掑Ο铏诡儌缂備緡鍠氱划顖滄崲濠靛棭娼╂い鎾跺Т楠炴劙姊虹拠鑼闁稿鍠栧鏌ヮ敃閿濆棙鐝¢梻浣筋嚙濮橈箓锝炴径濞掓椽鏁冮崒姘憋紱婵犵數濮撮崐濠氬汲閿曞倹鐓熼柡鍐ㄥ€甸幏锟犳煛娴e憡顥㈤柡灞界Х椤т線鏌涢幘瀵告噰闁糕斂鍨归鍏煎緞鐎n偅鐝抽梻浣规偠閸庮噣寮插┑瀣櫖婵犻潧娲ㄧ粻楣冨级閸繂鈷旂紒瀣吹閹叉悂寮堕崹顔芥缂備礁鍊哥粔褰掑箖濞嗘搩鏁嗛柛灞剧矌濡插洭姊绘笟鈧ḿ褎顨ヨ箛鏇炵筏闁告挆鍕幑闂佺粯鍔﹂崗娆愮濠婂牊鐓欓悗娑欋缚缁犳牜鈧懓鎲$换鍕閹烘鏁婇柛鎾楀啰顐奸梻渚€娼ч悧鐐电礊娴e摜鏆︽慨妞诲亾闁糕晪绻濆畷姗€濡搁妷褜鍚嬮梻鍌氬€峰ù鍥敋瑜忛埀顒佺▓閺呮繄鍒掑▎鎾崇闁瑰濮寸粻鐢告煟閻樺厖鑸柛鏂垮缁嬪顓奸崱妯哄伎濠碉紕鍋犻褎绂嶆ィ鍐┾拺闁告繂瀚~锕傛煕閺傝法鐒搁柛鈹垮劜瀵板嫭绻涢姀銏犳瀾鐎垫澘瀚伴幆鍌炲传閵夘灖鎴︽⒑闂堟稒鎼愰悗姘卞娣囧﹪骞栨担瑙勬珳闂佸憡渚楅崢鑹邦杺闂傚倸鍊峰ù鍥敋閺嶎厼绐楁俊銈呮噺閸嬶繝鏌嶉崫鍕櫡闁逞屽厸缁舵艾顕i鈧畷鐓庘攽閸偅效濠碉紕鍋戦崐鏍箰閼姐倖宕查柛鏇ㄥ幘閻棝鏌涢弴銊ョ仭闁抽攱甯¢弻娑氫沪閸撗勫櫗缂備椒鑳舵晶妤呭Φ閸曨垰鍗抽柣鏂挎惈閳峰矂鎮楃憴鍕;闁告鍟块锝嗙鐎e灚鏅濋梺闈涚墕濞村倸危缁嬪簱鏀介柣妯虹仛閺嗏晛鈹戦鑺ュ唉鐎规洘鍔栫换婵嗩潩椤掍浇绶㈤梻浣瑰濞叉牠宕愯ぐ鎺撳亗婵炲棙鍔戞禍婊堟煛瀹ュ骸浜滃ù鐘崇矊闇夋繝濠傛噹椤g厧菐閸パ嶈含闁瑰磭濮甸敍鎰攽閸℃﹩鍞查梻鍌欑閻ゅ洭锝炴径鎰瀭闁秆勵殔閺勩儵鏌涢弴銊ョ仩缂佲偓閸愵喗鐓忓┑鐐戝啯鍣烽柛瀣р偓鏂ユ斀闁挎稑瀚禍濂告煕婵炲灝鈧繂鐣烽姀掳鍋呴柛鎰╁妿椤ρ冣攽閳藉棗鐏熼悹鈧敃鍌氬惞闁哄洢鍨洪崑锝夋煕閵夛絽濡块柕鍫濈摠娣囧﹪骞撻幒鏂库叺闂佸搫鏈ú婵堢不濞戙垹鍗抽柣鎴濇缂嶅矂姊绘担绋挎毐闁圭⒈鍋婇獮濠呯疀濞戞瑥浜楅棅顐㈡处閹尖晠鎮㈤崱娑欏仯濡わ附瀵ч鐘差熆瑜庡ú鐔煎蓟濞戙垹绫嶉柍褜鍓熼獮鎰板箮閽樺鎽曞┑鐐村灟閸ㄧ懓螞濡崵绠鹃柛鈩冪懃娴滄儳螖閺冨倻纾介柛灞剧懄缁佹澘顪冪€涙ɑ鍊愭鐐村姈缁绘繂顫濋鍌ゅ數闂備礁鎲℃笟妤呭垂閹惰姤鍎楁繛鍡樻尭缁犲綊鎮楀☉娅虫垹浜搁鐏荤懓饪伴崼銏㈡毇闂佸搫鏈粙鎴﹀煘閹达箑绀嬫い鎰╁灩琚橀梻鍌欑劍濡炲潡宕㈡禒瀣濡わ絽鍟粻鐔兼煙闂傚鍔嶉柛瀣儔閺屾盯顢曢敐鍥╃暭闂佽崵鍠嗛崝鎴濐潖濞差亜浼犻柛鏇㈡涧閸擃喚绱撴担钘夌厫鐎光偓缁嬫鍤曞┑鐘崇閸嬪嫰鏌i幘铏崳妞わ富鍙冮幃宄扳堪閸愵亞顔婇梺杞扮贰閸犳牠鍩ユ径鎰潊闁挎稑瀚獮鎰版⒒娴e憡鍟炲〒姘殜瀹曟澘螖閸涱厾锛欓梺瑙勫婢ф鎮″☉銏″€堕柣鎰邦杺閸ゆ瑥鈹戦鐓庘偓鍧楀蓟閻旂⒈鏁婇柛婵嗗閸嬫挸鈹戦崱娆愭闂佸湱鍎ら崹鐔肺i崼鐔稿弿婵°倐鍋撴俊顐f⒒濡叉劙鏁撻敓锟� ---闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚敐澶婄闁挎繂鎲涢幘缁樼厱濠电姴鍊归崑銉╂煛鐏炶濮傜€殿噮鍣e畷濂告偄閸涘⿴鍞堕梻鍌欒兌鏋い鎴濇楠炴劙宕滆閸ㄦ繃銇勯幘璺轰汗婵℃彃鐗婃穱濠囶敍濮橆厽鍎撶紓浣哄Ь椤曆囧煘閹达附鍊烽柛娆忣槴閺嬫瑦绻涚€涙ḿ鐭嬬紒顔芥崌楠炲啴鍨鹃弬銉︻潔闂侀潧楠忕槐鏇㈠储閸楃偐鏀介柣鎰綑閻忋儳鈧娲﹂崜鐔兼偘椤斿槈鐔沸ч崶锔剧泿闂備礁鎼崐鍦偓绗涘泚澶愬閳╁啫寮挎繝鐢靛Т閹冲繘顢旈悩缁樼厵闁荤喐婢橀顓炩攽閳╁啯鍊愬┑锛勫厴閺佸倿骞嗚缁嬪牓姊婚崒姘偓鐑芥嚄閸洖绠犻柟鎹愵嚙閸氬綊鏌″搴″箹缂佺媭鍨堕弻銊╂偆閸屾稑顏�
开发学院操作系统Linux/Unix 基于角色的访问控制,第 1 部分 阅读

基于角色的访问控制,第 1 部分

 2008-09-06 08:19:46 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸瀵ч悗顒勬⒑閻熸澘鈷旂紒顕呭灦瀹曟垿骞囬悧鍫㈠幍缂傚倷鐒﹂敋缂佹う鍥ㄧ厓鐟滄粓宕滈敃鍌氱煑闁告劦鐓堝ḿ鏍煕濠靛棗鐝旂憸鏂跨暦閹偊妲炬繛瀵稿Т閵堢ǹ顫忛搹瑙勫珰闁肩⒈鍓涢澶愭⒑閻撳海绉虹紒鐘崇墵楠炲啯銈i崘鈺佲偓濠氭煢濡警妲奸柟鑺ユ礋濮婃椽妫冨☉杈€嗘繝纰樷偓铏枠鐎规洏鍨介幃浠嬪川婵炵偓瀚奸梺鑽ゅ枑閻熴儳鈧氨鍏樺畷顖濈疀濞戞瑧鍘遍梺缁樏壕顓熸櫠閻㈠憡鐓忛柛鈩冾殔閳ь剙婀辩紓鎾寸鐎n亜绐涙繝鐢靛Т鐎氼剟鐛崼銉︹拺缁绢厼鎳庨ˉ宥夋煙濞茶绨芥俊鍙夊姍瀵挳鎮㈤崫鍕ㄥ彏闂傚倸鍊搁崐椋庢濮橆兗缂氱憸宥囧弲闂侀潧鐗嗗ú鐘诲磻閹炬剚娼╂い鎰╁灩缁侇噣姊虹紒妯圭繁闁革綇缍侀悰顕€骞掗幊铏閸┾偓妞ゆ帒鍊绘稉宥夋煥濠靛棙顥犵紒鈾€鍋撻梻鍌氬€搁悧濠勭矙閹达箑姹叉繛鍡楃贩閻熸壋鍫柛顐犲灮閺嗩偊姊洪崫鍕効缂傚秳鐒﹂幈銊╁焵椤掑嫭鐓冮柟顖滃绾偓绻濋埀顒佹綇閵娧呭骄闂佸搫娲ㄩ崰鎾跺姬閳ь剙鈹戦鏂や緵闁告﹢绠栧畷銏ゆ偨閸涘ň鎷虹紓鍌欑劍閿氬┑顕嗙畵閺屾盯骞橀弶鎴濇懙闂佽鍠楄摫婵炵厧绻樻俊鎼佸Χ閸モ晝鏆伴梻鍌欑濠€杈╁垝椤栨粍鏆滈柣鎰摠濞呯姵绻涢幋鐐寸殤缁炬崘鍋愮槐鎾存媴鐠愵垳绱板┑鐐村絻椤曨參鍩€椤掑喚娼愭繛鍙夌墪閻g兘顢楅崘顏冪胺闂傚倷绀侀幉锟犲礉閺囥垹鐤柣妯款嚙缁€鍫熺節闂堟稓澧涚€规洖寮剁换娑㈠箣閻愩劎绱伴梺鍝勬濡鍩為幋锔藉亹閺夊牜鍋勯崢锟犳⒑鏉炴壆鍔嶉柣妤佺矌濡叉劙骞樼€涙ê顎撴繛瀵稿Т椤戝懘骞楅悽鍛娾拺闁革富鍘介崵鈧┑鐐茬湴閸婃繈骞冩ィ鍐╁€婚柦妯侯槺椤斿﹪姊虹憴鍕剹闁告ü绮欏畷鎾绘偨閸涘ň鎷洪梺鑽ゅ枑濠㈡﹢骞冩笟鈧弻锝夊箳閻愮數鏆ら梺璇″枟椤ㄥ﹪鐛弽銊﹀闁稿繐顦扮€氳棄鈹戦悙鑸靛涧缂佹彃娼″畷鏇㈠Χ婢跺﹤鎯為梺閫炲苯澧存慨濠冩そ楠炴牠鎮欏ù瀣壕闁哄稁鍘介崑瀣煟濡灝鍚圭€规挷绶氶悡顐﹀炊閵娧€濮囬梺鍝勬噺閹倿寮婚妸鈺傚亞闁稿本绋戦锟�濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻锝夊箣閿濆棭妫勯梺鍝勵儎缁舵岸寮诲☉妯锋婵鐗婇弫楣冩⒑閸涘﹦鎳冪紒缁樺灴婵$敻宕熼姘鳖啋闂佸憡顨堥崑鐔哥閼测晝纾藉ù锝呮惈椤庡矂鏌涢妸銉у煟鐎殿喛顕ч埥澶愬閻樼數鏉搁梻鍌氬€搁悧濠勭矙閹烘鍊堕柛顐犲劜閸婄敻鏌i悢鍝勵暭闁哥喓鍋熺槐鎺旀嫚閹绘帗娈绘繝纰夌磿閺佽鐣烽悢纰辨晬婵﹢纭搁崯瀣⒑鐠囨煡鍙勬繛浣冲洤绠烘繝濠傜墛閸嬧晛鈹戦崒姘暈闁抽攱鍨归惀顏堫敇閻愭潙顎涘┑鐐插悑閸旀牜鎹㈠☉銏″殤妞ゆ巻鍋撻柡瀣閵囧嫰顢曢姀銏㈩唺缂備浇椴哥敮鎺曠亽闂佸吋绁撮弲婊堝吹瀹€鍕拻濞撴埃鍋撻柍褜鍓涢崑娑㈡嚐椤栨稒娅犳い鏃囧亹閺嗗棝鏌ㄥ┑鍡欏闁告柨鐏氶妵鍕晜閻e苯寮ㄩ梺璇″櫙缁绘繃淇婇懜闈涚窞閻庯綆鍓欑敮楣冩⒒娴gǹ顥忛柛瀣噽閹广垽宕橀鑲╋紱濡炪倕绻愰幊鎰不閸撗€鍋撻悷鏉款棌闁哥姵娲滈懞杈ㄧ節濮橆剛鐣鹃梺缁樻煥閸氬鍩涢幋锔藉€甸柛锔诲幖鏍¢梺闈涙閸熸挳寮婚妶澶婄闁肩⒈鍓欓悡鐔兼倵鐟欏嫭绀冪紒璇茬墦瀵偊宕橀鑲╁姦濡炪倖甯掔€氀囧焵椤掍焦顥堢€规洘锕㈤、娆撳床婢诡垰娲﹂悡鏇㈡煃閳轰礁鏋ゆ繛鍫燂耿閺岋綁鎮㈢粙鍨潚濠殿喖锕ュ浠嬪箖閳╁啯鍎熼柍鈺佸暞閻︼綁姊绘担铏瑰笡闁绘娲熸俊鍓佺矙鐠恒劍娈鹃梺缁樺灦宀h法寮ч埀顒勬⒑閹肩偛鍔€闁告劑鍔庨妶顕€姊婚崒娆戠獢婵炰匠鍕垫闊洦娲橀~鏇㈡煛閸ャ儱鐏╅柛灞诲妽閵囧嫯绠涢幘璺侯杸闂佹娊鏀遍崹鍧楀蓟閻斿吋鍤冮柍杞版缁爼姊洪崨濠冣拹妞ゃ劌锕濠氭晸閻樻彃绐涘銈嗘閺侇喗鎱ㄩ崶鈺冪=濞达絿枪閳ь剙婀遍弫顕€鎮㈡俊鎾虫川閳ь剟娼ч幗婊呭婵傜ǹ绾ч柛顐g☉婵¤偐绱掑Δ浣侯暡缂佺粯鐩幃鈩冩償閿濆浂鍟嬮梻浣虹《閺備線宕滃┑瀣闁告稑鐡ㄩ悡銉╂倵閿濆懐浠涚紓宥嗩殜濮婂宕掑顑藉亾瀹勬噴褰掑炊瑜滃ù鏍煏婵炵偓娅嗛柛濠傛健閺屻劑寮撮悙娴嬪亾閸濄儳涓嶉柡灞诲劜閻撴洟鏌曟径妯烘灈濠⒀屽櫍閺岋紕鈧絺鏅濈粣鏃堟煛瀹€鈧崰鏍х暦濠婂棭妲鹃柣銏╁灡閻╊垶寮婚敓鐘插窛妞ゆ棁妫勯埀顒佸姍閺岋紕浠︾拠鎻掝潎闂佽鍠撻崐婵嗙暦閹烘垟妲堟慨妤€妫旂槐锟�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚敐澶婄闁挎繂鎲涢幘缁樼厱闁靛牆鎳庨顓㈡煛鐏炶鈧繂鐣烽锕€唯闁挎棁濮ら惁搴♀攽閻愬樊鍤熷┑顕€娼ч~婵嬪Ω瑜庨~鏇㈡煙閹规劦鍤欑痪鎯у悑缁绘盯宕卞Ο铏圭懆闂佸憡锕槐鏇犳閹惧鐟归柛銉戝嫮褰梻浣规偠閸斿矂鎮ラ崗闂寸箚闁圭虎鍠栫粈鍐┿亜閺冨倸甯剁紒鎰洴濮婃椽宕崟鍨ч梺鎼炲妼缂嶅﹤鐣烽姀鐘嗘椽顢旈崨顓涘亾閸偒娈介柣鎰皺娴犮垽鏌涢弮鈧喊宥夊Φ閸曨垱鏅滈悹鍥皺娴犳悂鎮楃憴鍕┛缂佺粯绻堥悰顔芥償閵婏箑娈熼梺闈涳紡閸愩劌顩梻鍌氬€搁オ鎾磻閸曨個娲晝閳ь剛鍙呴梺鍝勭Р閸斿孩鏅堕敓鐘斥拻闁稿本鐟︾粊鐗堛亜閺囧棗鎳夐崑鎾诲垂椤愩垺璇為悗瑙勬礃缁捇骞冮姀锛勯檮濠㈣泛顑囩粙渚€姊绘担鐟板姢缂佺粯鍔曢敃銏℃綇閳轰緡妫滈梺绋跨箻濡法鎹㈤崱妯镐簻闁哄秲鍔庨。鏌ユ煙椤栨氨澧涢柕鍥у椤㈡洟濮€閳惰¥鍨洪妵鍕敂閸曨偅娈绘繝纰樷偓宕囧煟鐎规洖宕灃闁逞屽墴閿濈偞鎯旈妸锔规嫼闂佸憡绋戦オ鎾倿婵傚憡鐓曢柕澶嬪灥閹冲骸顕i妸銉㈡斀闁绘﹩鍠栭悘杈ㄧ箾婢跺顬奸柣褍鐭傚铏圭磼濡崵鍙嗛梺鍛婅壘椤戝骞冮敓鐘参ㄩ柍鍝勫€搁埀顒傛暬閺屻劌鈹戦崱娑扁偓妤呮煕濡粯灏﹂柡灞剧〒閳ь剨缍嗛崑鍛焊閹殿喚纾肩紓浣贯缚缁犳挻銇勯锝囩疄妞ゃ垺锚閳藉鈻庤箛锝勭椽闂傚倷娴囧畷鐢稿窗閹邦喖鍨濋幖娣灪濞呯姵淇婇妶鍛殲闁哄棙绮撻弻鐔兼倻濡鏆楀銈傛櫆瑜板啴婀侀梺缁樻尭濞寸兘骞楅悩缁樼厽闁规儳鐡ㄧ粈瀣煛瀹€鈧崰鏍嵁閸℃凹妾ㄩ梺鎼炲€楅崰鏍蓟瀹ュ瀵犲鑸瞪戦埢鍫ユ⒑閸濆嫯瀚扮紒澶婂濡叉劙骞掗幊宕囧枛閹筹繝濡堕崨顓熻緢婵犵绱曢崑鎴﹀磹閵堝纾婚柛娑卞灡瀹曟煡鏌涢鐘插姎缂佺姷濮电换婵囩節閸屾稑娅i梺鍝勵儏閻楀﹥绌辨繝鍥舵晬婵犲灚鍔曞▓顓烆渻閵堝懐绠扮紓宥咃工椤繑绻濆顒傦紲濠电偛妫欓崺鍫澪i鈧铏规兜閸滀礁娈濈紓浣介哺濞叉粓宕氶幒鎴旀瀻闁规儳纾娲⒑閹稿孩鐓ラ柟纰卞亝缁傚秵绺介崨濞炬嫼闂佸憡绻傜€氬嘲危瑜版帗鐓曢柕濞у啯鐏堥悗娈垮枟閹倸顕i鈧畷濂告偄閸濆嫬绠伴梻鍌欑閹诧繝宕濊瀵板﹪鎳為妷褜娲搁梺鍛婃寙閸涱垽绱冲┑鐐舵彧缂嶁偓婵炲拑绲块弫顔尖槈濮樿京锛滈柣搴秵閸嬪懐浜搁幍顔剧<闁稿本绋戝ù顕€鏌℃担绋挎殻鐎规洘甯掗~婵嬪箟鐎n剙绨ユ繝鐢靛У椤旀牠宕板Δ鍛櫇闁冲搫鎳庣粈鍫ユ煥閺囩偛鈧綊宕愰悽鍛婄厵闁诡垱婢樿闂佹娊鏀辩敮鎺楁箒闂佹寧绻傞幊蹇涘箟閹间焦鐓ユ繛鎴炨缚鑲栫紓浣介哺鐢繝銆佸璺哄窛妞ゆ挾濮冲鎾翠繆閵堝洤啸闁稿鍋ゅ畷褰掑垂椤旂偓娈鹃梺鍓插亝濞诧箓寮崱娑欑厱閻忕偟鍋撻惃鎴︽煏閸剛鐣垫慨濠呮閹风娀骞撻幒鎴炵槪缂傚倸鍊哥粔鏉懳涘▎鎴犵焿鐎广儱顦崘鈧銈嗘尵閸嬬喖宕Δ浣虹閻庣數枪瀛濆銈嗗灥濡繈骞冮垾鏂ユ瀻闁瑰墽琛ラ幏鍝勵渻閵堝棙灏柛鏂块叄閹箖宕¢悜鍡欏數閻熸粍绮撳畷褰掓焼瀹ュ憘锕傛煕閺囥劌鐏犳俊顐o耿閺屾盯鈥﹂幋婵囩亐闂佺ǹ顑嗛幐楣冨箟閹绢喖绀嬫い鎾寸⊕閺侀潧鈹戦悩鍨毄濠殿喗娼欑叅闁挎洖鍊哥壕褰掓⒑閸噮鍎嶅ù婊勭矒閻擃偊宕堕妸锕€纰嶅銈呯箞閸婃繈寮诲☉姘e亾閿濆骸浜濈€规洖鐬奸埀顒侇問閸犳牠鍩€椤掑倸娅忔俊淇卞妼閳规垿鎮欓幓鎺撳€梺缁橆殕濞茬喖宕洪悙鍝勭闁挎棁妫勬禍褰掓煟鎼粹剝璐″┑顔芥尦钘熸繝闈涱儐閳锋垹绱掔€n厼鍔垫い顐畵閺屾盯寮崸妤€寮板Δ鐘靛仜椤︻垶锝為姀鐘垫殕闁逞屽墴閹潡鍩€椤掆偓閳规垿鎮欓弶鎴犱桓鐎光偓閿濆懏鍋ラ柟顔兼健瀹曘劎鈧稒菤閹锋椽姊洪棃鈺佺槣闁告瑢鍋撳┑锛勫亾閹倿寮诲☉銏″亹闁归鐒﹂悿渚€鎮楀▓鍨灍闁绘搫绻濋悰顕€寮介妸锕€顎撻梺闈╁瘜閸樼厧顕i幎鑺モ拻濞达綀娅g敮娑欑箾閸欏澧电€规洘鍔欏畷鐑筋敇濞戞ü澹曞┑顔结缚閸嬫挾鈧熬鎷�
核心提示:AIX V6 和基于角色的访问控制 (RBAC)AIX V6 引入了增强 RBAC,即向一个或者多个普通用户帐户委派角色和授权的方法,基于角色的访问控制,第 1 部分,RBAC 允许系统管理员将某些任务委派给普通用户,而传统的做法是,设置 default_roles=ALL 将对会话分配所有的用户角色,如果为用户分配了

AIX V6 和基于角色的访问控制 (RBAC)

AIX V6 引入了增强 RBAC,即向一个或者多个普通用户帐户委派角色和授权的方法。

RBAC 允许系统管理员将某些任务委派给普通用户,而传统的做法是,这些任务由 root 用户,或者通过 setuid/setgid 执行。

RBAC 的优点之一是,通过限制分配给某个命令的权限(仅为命令分配执行其任务所必需的权限),可以尽可能地减少 setuid/setgid 程序的使用。

AIX V6 中没有提供遗留或者增强模式 RBAC 的特定安装包。大多数增强 RBAC 命令都包含在 bos.rte.security 文件集中。

下面的部分将对增强 RBAC 中所包括的组件进行介绍和深入地讨论。

传统的 AIX 管理方法

这里,我们将介绍传统的 AIX 管理方法,以及用于该目的的一些工具。

超级用户管理帐户

在 AIX 操作系统中,传统的特权管理方法依赖于名为 root 的单个系统管理员帐户。我们将 root 帐户作为超级用户,这是因为 root 用户帐户有权执行 AIX 系统中所有特权的系统管理任务。通常将 root 用户的用户标识/uid 指定为 0。

仅依赖单个超级用户来完成系统管理中各方面的操作,将在管理职责分离方面产生一些问题。尽管在某些业务环境中,可以仅使用一个管理帐户,但很多环境都需要多个管理员,其中各个管理员负责执行不同的任务。

如果仅使用一个管理帐户,那么就可能需要在两个或者更多系统管理员之间共享使用超级用户的角色。在某些环境中,需要将所有特权的系统管理任务集中于一个单独的个体,那么这种共享的管理方法可能会破坏其中的业务审核指导原则。

共享超级用户角色的一种替代方法是,创建与 root 用户具有相同 UID 的另一个用户。

从安全的角度来说,无论采用这两种方式中的任何一种,都可能产生各种各样的问题,因为向每个管理员授予了系统的全部控制权限。没有办法限制任何给定的管理员所能够执行的操作。因为 root 用户是权限最高的用户,所以该用户可能执行未经授权的操作,还可以删除对这些活动的任何审核信息,因此要对其管理操作进行跟踪,几乎是不可能的。

自主访问控制 (DAC)

自主访问控制 (DAC) 是一些安全方面的特性,它们受到某个文件或者目录的所有者的控制。

在 AIX 中,可以使用所有者/组/其他用户和读/写/执行的传统文件对象权限位的方法来实现 DAC。

通过使用文件对象权限位,每个用户可以确定另一个用户或者组是否需要访问某个特定文件对象中的数据。DAC 通常需要了解相关的标准,并相应地授予权限或者拒绝访问。这种类型的访问建立在用户所属的 UID 和 GID 的基础之上。所有的文件系统对象都具有相关的权限,以描述所有者、组和其他用户的访问权限。

注意事项:使用 DAC ,可以将某个用户 ID 指定为一个可执行文件的所有者,以便只有该用户可以运行这个文件。如果这个用户离开了公司,那么系统管理员就必须修改该文件的 DAC ,否则任何其他用户都无法运行该文件。在通过组 ID 使用 DAC 时,同样也会出现这种情况。

在示例 1 中,我们可以看到 oper1 用户的 home 目录中所包含的文件对象。文件 MyBankBallance.txt 是关于如何使用 DAC 来限制某些用户或者组对文件进行访问的示例。

示例 1 用户“oper1”的文件对象权限位 DAC

oper1@trinity:/home/oper1# ls -ltra total 48
-rwxr----- 1 oper1 staff 254 Apr 18 07:34 .profile drwxr-xr-x 10 bin bin 256 Apr 18 07:35
-rw-r--r-- 1 oper1 staff 553 Apr 19 23:24 smit.transaction
-rw-r--r-- 1 oper1 staff 418 Apr 19 23:24 smit.script
-rw-r--r-- 1 oper1 staff 1079 Apr 19 23:24 smit.log drwxr-xr-x 2 oper1 staff 256 Apr 20
-rw------- 1 oper1 staff 79 Apr 20 01:59 MyBankBallance.txt
-rw------- 1 oper1 staff 390 Apr 20 02:00 .sh_history oper1@trinity:/home/oper1#

使用用户 ID (UID) 和组 ID (GID) 进行授权

如前所述,DAC 能够基于读、写或者执行权限,限制对文件对象的访问。尽管通过使用 AIX 文件权限和所有权,DAC 提供了某些控制粒度,但是 DAC 无法保护对文件对象的权限或所有权的恶意或者意外修改。如果某个文件对象是一个可执行程序,要进一步进行限制的方法之一是使用 UID/GID 访问控制,仅允许具有合适的 UID/GID 的用户对其进行访问。

如果一个可执行程序中包含 UID/GID 检查,那么只有在进程 UID/GID 与该可执行程序中所包括的嵌入 UID/GID 相匹配的时候,该程序才能够成功地执行。

在下面的示例中,我们说明了以下内容:

1. 修改一个特权文件对象的 DAC 设置,以允许所有的用户对其进行操作

2. 尝试使用非 root 用户、或者 shutdown 组之外的用户执行 shutdown 命令。

shutdown 命令是 root 用户所拥有的 Shell 脚本,并且 shutdown 组拥有读和执行权限。shutdown Shell 脚本包括用以检查 UID/GID 是否为 root:shutdown 的 UID/GID 检查机制。如果 UID/GID 不符合,那么 shutdown Shell 脚本将调用 exec_shutdown 可执行程序。

为了使系统中的所有用户都能够执行 shutdown 命令,我们必须修改其权限,以允许 shutdown 组之外的用户进行读和执行操作。

在示例 2 中,我们修改了 shutdown 和 exec_shutdown 命令,以允许系统中的所有用户都能够执行这两个命令。

示例 2 修改 DAC 权限以允许执行

root@trinity:/root# ls -ltra /usr/sbin/shutdown
-r-xr-x--- 1 root shutdown 42939 Apr 17 10:26 /usr/sbin/shutdown
root@trinity:/root# ls -ltra /usr/sbin/exec_shutdown
-r-xr-x--- 1 root shutdown 2694 Apr 17 10:26 /usr/sbin/exec_shutdown
root@trinity:/root# chmod 555 /usr/sbin/shutdown
root@trinity:/root# chmod 555 /usr/sbin/exec_shutdown
root@trinity:/root# ls -ltr /usr/sbin/shutdown
-r-xr-xr-x 1 root shutdown 42939 Apr 17 10:26 /usr/sbin/shutdown
root@trinity:/root# ls -ltra /usr/sbin/exec_shutdown
-r-xr-xr-x 1 root shutdown 2694 Apr 17 10:26 /usr/sbin/exec_shutdown
root@trinity:/root#

现在,我们已经修改了 shutdown 和 exec_shutdown 命令的 DAC 权限,以允许系统中的任何用户都能够执行这两个命令,我们将使用用户 oper1 进行登录,并执行 shutdown 命令。用户 oper1 具有 UID 208,并且属于 staff 组。

在示例 3 中,我们将使用用户 oper1 执行 shutdown 命令。

示例 3 使用用户 oper1 执行 shutdown 命令

oper1@trinity:/home/oper1# id uid=208(oper1) gid=1(staff)
oper1@trinity:/home/oper1# ls -ltra /usr/sbin/shutdown
-r-xr-xr-x 1 root shutdown 42939 Apr 17 10:26 /usr/sbin/shutdown
oper1@trinity:/home/oper1# ls -ltra /usr/sbin/exec_shutdown
-r-xr-xr-x 1 root shutdown 2694 Apr 17 10:26 /usr/sbin/exec_shutdown
oper1@trinity:/home/oper1# shutdown -F
oper1@trinity:/home/oper1#

虽然执行了 shutdown 命令,但是并没有执行系统关闭的任务,该命令在没有执行预期的系统关闭操作的情况下就退出了。这是因为 exec_shutdown 可执行程序还将检查 UID/GID 是否为 root:shutdown。如果 UID/GID 不能匹配 exec_shutdown 可执行程序中所编码的值,那么该程序将会退出。

在 AIX 5L 中,UID/GID 访问检查的这个示例并没有得到广泛使用。并非所有关键的命令都已经按照这种方式进行了编码,以确保不管 DAC 的设置如何,这些命令只有在使用特权 UID/GID 的时候才能够执行相应的操作。

在图1 中,我们概括了 shutdown 命令所使用的 UID/GID 流程,以确定 oper1 用户是否具有执行该命令和 shutdown 程序的适当授权。

图 1 UID/GID 授权控制的说明

基于角色的访问控制,第 1 部分

通过设置用户标识 (setuid) 提升权限

在 AIX 中,传统的访问控制方法是通过使用与进程相关联的用户标识来实现的,以便根据可执行程序的 DAC 权限来确定访问控制。然而,通常允许 ID 为 0 的 root 用户绕过权限检查,因此对于以 root 用户的身份所执行的进程,可以顺利地通过系统中的任何访问检查,并执行任何所需的操作。在使用 setuid 应用程序的时候,这一点就成为了一个安全问题。

setuid 的概念允许命令以调用该命令的用户以外的另一个用户标识来执行。当普通用户需要完成特权任务的时候,setuid 可能是非常有必要的。passwd 命令就是这种情况的一个示例。/etc/passwd 文件使用了 DAC 权限,限制为只有 root 用户具有对该文件的读/写访问权限。因为除了 root 用户之外的任何用户都不能对存储用户密码的文件进行访问,所以普通用户需要具有附加的权限才能更改他们的密码。

出于这个原因,可以将 passwd 命令的用户标识设置为 root 用户。当以 root 用户之外的其他用户调用 passwd 命令的时候,对于操作系统来说,就好像 root 用户正在访问该文件,并且该访问是允许的。

尽管 setuid 概念允许实现一些所需的访问控制功能,但它具有某种固有的安全风险。因为 setuid 程序可以在 root 用户的上下文中有效地执行,如果在某个程序(正使用相应的 setuid 位执行的程序)退出之前,攻击者成功地接管了该程序,那么该攻击者将拥有 root 用户的所有权限。然后,该攻击者就能够绕过所有的访问检查,因为该攻击者可以保持有效的 root 用户权限,并且能够执行 root 用户可以执行的所有操作。

对于特权命令的执行,一种更安全的解决方案是,只为程序分配 root 用户权限的一个子集,即遵循最少权限原则,从而减少相应的威胁。

最少权限原则是一种保障安全的方法,它仅为一个进程或者个人授予执行某项特定任务所需的职权或者权限。

该用户对其他文件或者命令的访问权限,将根据需要进行限制。

RBAC 的介绍

在这个部分中,我们将对 RBAC 中所包括的组件进行介绍。

遗留模式与增强模式 RBAC 的对比

在 AIX V4.2 中就引入了 RBAC 的实现,但具有一定的局限性。从 AIX Version 6.1 开始,所包含的 RBAC 的新实现提供了很好的细粒度机制,通过这种机制可以更好地控制各种管理任务,与特权命令执行控制相比,为管理员提供了一种更加精确、并且可以自定义的方法。

因为 RBAC 的这两种实现在其操作范围和功能方面具有显著的区别,所以这两种 RBAC 实现将使用下面的术语来描述它们的相关实现:

遗留 RBAC 模式——AIX V 4.2.1 中引入的 AIX 角色的历史行为

增强 RBAC 模式

——AIX Version 6.1 中所引入的新实现

在 AIX V6 中,同时支持这两种操作模式,然而,增强模式 RBAC 在最近安装的系统中是缺省启用的。

遗留模式 RBAC

在 AIX V4.2.1 发行的时候,AIX 安全基础设施就开始提供有限的 RBAC 功能。现在将这种功能称为遗留模式 RBAC,它允许 root 用户之外的其他用户执行某些特权的系统管理任务。在遗留 RBAC 实现中,当 root 用户之外的其他某个用户调用一个给定的管理命令时,所执行的命令中的代码将确定是否已经向该用户分配了具有所需授权的角色。如果该用户是经过授权的,那么将继续执行;如果该用户没有经过授权,那么该命令的执行将会失败,并显示一个错误。为了使经过授权的调用者具有适当的权限以完成相应的操作,遗留 RBAC 通常需要将由授权控制的命令的用户标识设置为 root 用户。

遗留 RBAC 实现还引入了一组预定义的授权,它们可用于确定对一些管理命令的访问权限。管理员可以扩展这些预定义的授权。此外,还提供了用于创建角色、为角色分配授权,以及为用户分配角色的管理命令和接口的框架。

尽管遗留 RBAC 实现提供了对管理职责进行部分划分的能力,但是它也具有下列局限性:

要使得命令/应用程序支持 RBAC,框架需要对其进行相应的更改。

预定义授权的粒度不如增强模式 RBAC。

为了执行某个命令,用户通常需要作为某个组中的成员,并且拥有具有给定授权的角色。

很难实现真正的职责分离。如果为一个用户分配了多种角色,那么所分配的所有角色始终都是活动的。无法仅激活分配给该用户的某个角色,而同时不激活为该用户分配的其他所有角色。

操作系统中没有采用最少权限原则。通常,必须将特权命令的用户标识设置为 root 用户。

尽管将继续支持遗留 RBAC,但我们强烈建议管理员尽量使用增强 RBAC。增强 RBAC 提供了粒度更细的授权控制,并且减少了对 setuid 程序的依赖。

增强模式 RBAC

从 AIX V6 开始,提供了 RBAC 的进一步实现。

这种增强模式 RBAC 允许将需要一些管理权限以执行某些操作的应用程序集成到增强 RBAC 基础设施所包括的新功能中。

增强 RBAC 集成选项使用细粒度的权限和授权,并允许管理员将系统中的任何命令配置为特权命令。对于从 AIX V6 开始的所有安装,在缺省情况下都会安装并启用增强 RBAC 的各种特性。

通过增强 RBAC 安全数据库,增强 RBAC 允许管理员提供自定义的授权、角色、特权命令、设备和文件的集合。

对于增强 RBAC,其安全数据库可以存储于本地文件系统中,也可以通过 LDAP 对其进行远程管理。

增强 RBAC 由下面的安全数据库文件组成:

授权数据库

角色数据库

特权命令数据库

特权设备数据库

特权文件数据库

增强 RBAC 安全数据库文件都是文本文件,并且不需要在 AIX V6 系统中安装附加的数据库子系统。

在本章稍后的部分中,将对增强 RBAC 数据库进行更深入讨论。

增强 RBAC 模式引入了一种新的授权命名约定,它允许创建授权的层次结构。增强 RBAC 包括一组细粒度的、系统定义的授权,并允许管理员根据需要创建更多的用户定义的授权。

注意:在发布的时候,增强 RBAC 可以通过命令行或者 SMIT 工具来进行管理。 WebSM 中不包括对增强 RBAC 的支持。

授权

在增强 RBAC 中,授权是与安全相关功能或者命令相关联的文本字符串。授权提供了一种机制,以便为用户授予相应的权限以执行某些特权操作,并对不同类别的用户提供不同的功能级别。通常先将授权分配给角色,然后再将角色分配给用户。

当执行由某个授权所管理的命令时,仅在调用该命令的用户具有所需授权的情况下,才能够为其授予访问权限。出于这个原因,可以将授权看作解锁一个或者多个命令的钥匙。

角色

对于增强 RBAC,角色的行为得到了进一步发展,以便提供职责功能的分离。增强 RBAC 还为 AIX 引入了角色会话(role sessions)的概念。一个角色会话定义为一个进程,该进程具有与其相关联的一个或者多个角色。增强 RBAC 允许用户为他们所分配的任何角色选择激活一个角色会话。在缺省情况下,登录时不激活任何用户角色,这使用户能够激活当前活动所需的角色。

角色得到了进一步增强,以支持用户在激活角色之前必须进行身份验证的需求。这种身份验证需要在激活该用户所分配的任何角色之前,对用户的登录密码进行身份验证。

这种授权增强有助于防止攻击者接管用户会话,因为如果攻击者想要激活该用户的角色,仍然需要通过输入该用户的登录密码来进行身份验证。

权限

特权命令数据库的引入允许实现最少权限原则。最少权限原则是一种为用户分配完成某项任务/命令/进程所需的最少权限的方法。

增强 RBAC 增加了系统中的权限粒度,允许为某个命令授予显式权限,并执行需要由授权进行管理的命令。

有了特权命令数据库之后,就不再需要使用 setuid 和 setgid 程序,它允许管理员仅分配成功执行命令所需的权限,而不需要更改实际命令的代码。

特权设备数据库允许对由权限控制的设备进行读写访问。

特权文件数据库将允许未经权限的用户根据授权对受限的文件进行读写访问。

特权命令数据库、特权命令和特权文件数据库提高了系统管理任务的粒度,可以将这些任务分配给一些并不具备特权的用户。

内核安全表

增强 RBAC 提供了一种机制,以收集和验证增强 RBAC 安全数据库中的信息,然后将这些信息发送到指定为内核安全表(Kernel Security Tables,KST)的内核区域。KST 中的数据可以确定系统的安全策略。直到信息经过验证、并更新到 KST(也称为内核级)中之后,才能将文件或者 LDAP(也称为用户级)RBAC 安全数据库中经过修改的条目用于安全决策。

可以使用 setkst 命令更新 KST。可以使用 lskst 命令显示 KST 的内容。

使用 LDAP 提供远程数据库支持

在包括许多服务器的环境中,在一个集中的位置维护 RBAC 安全数据库,可能更为有效。在需要跨所有的系统实现和加强公共安全策略的企业环境中,情况也是如此。

当控制安全策略的 RBAC 安全数据库独立地存储于各个系统中时,安全策略的管理就成为了指定管理员的负担。

在 AIX V6 中,增强 RBAC 模式允许在 LDAP 中存储增强 RBAC 安全数据库。这允许为 LDAP 环境中所有的系统集中地管理安全策略。

AIX V6 中支持将所有的增强 RBAC 安全数据库放置于 LDAP 中,具体包括以下数据库:

授权数据库

角色数据库

特权命令数据库

特权设备数据库

特权文件数据库

局限性:存储在 LDAP 中的授权数据库将仅包含用户定义的授权。系统定义的授权无法存储在 LDAP 中,它们将保存在各个客户端系统的本地。

AIX V6 中所提供的各种实用工具允许管理员进行以下操作:

将本地 RBAC 安全数据库的数据导出到 LDAP。

配置 AIX V6 客户端,以便使用 LDAP 中的 RBAC 数据。

控制 RBAC 安全数据库数据的域查找。

管理来自客户端系统的 RBAC 安全数据库 LDAP 数据。

表 1 比较 RBAC 各种模式中可用的特性。

特性 遗留 RBAC 模式 增强 RBAC 模式
选择性的角色激活在缺省情况下,所有的用户角色都是活动的。 在缺省情况下,所有的角色都是非活动的。可以使用 swrole 命令来使用相应的角色。
default_roles 属性
swrole 命令
角色管理命令
授权管理命令
授权层次结构 支持授权层次结构的概念
授权检查仅当命令需要在执行时检查授权的情况下强制进行。 在执行时,通过特权命令数据库或者通过命令检查授权强制进行。
细粒度权限
pvi 命令
内核安全表
RBAC 数据库位置 本地文件 本地文件或者 LDAP

表 2 显示了增强 RBAC 的大小限制。

描述 局限性
角色名称的最大长度 63 个可打印的字符
每个会话可以拥有的最大角色数目 8
授权名称的最大长度 63 个可打印的字符
授权层次结构中所允许的最大层次数目(包括顶层的父节点) 9
每个命令可以拥有的访问授权的最大数目 8
每个命令可以拥有的最大授权特权集合 8

配置 RBAC

在这个部分中,我们将简要介绍如何在 AIX V6 中安装和配置 RBAC。

配置 RBAC 操作模式

“RBAC 的介绍”部分中所描述的,在安装 AIX V6 时,在缺省情况下将以增强模式激活 RBAC。要确定 RBAC 的当前运行模式,可以显示 sys0 资源的 enhanced_RBAC 模式。

在示例 4 中,我们使用 lsattr 命令和 sys0 资源显示了当前活动的 RBAC 模式。

示例 4 显示 RBAC 模式

root@trinity:/root# lsattr -El sys0 -a enhanced_RBAC
enhanced_RBAC true Enhanced RBAC Mode True root@trinity:/root#

注意:在 WPAR 环境中,只能够从全局系统对系统的 RBAC 模式进行配置,并且系统的 RBAC 模式将按照统一的方式影响全局系统以及系统中的所有 WPAR 。

切换到遗留 RBAC 模式

如果您希望切换到遗留 RBAC 模式,那么可以通过将 enhanced_RBAC 属性设置为 false 来完成这项任务。更改 RBAC 模式需要重新启动服务器。

在示例 5 中,我们使用了 chdev 命令,以便将 RBAC 模式从增强模式更改为遗留模式。

示例 5 将 RBAC 模式从增强模式更改为遗留模式

root@trinity:/root# lsattr -El sys0 -a enhanced_RBAC
enhanced_RBAC true Enhanced RBAC Mode True
root@trinity:/root# chdev -l sys0 -a enhanced_RBAC=false sys0 changed
root@trinity:/root# lsattr -El sys0 -a enhanced_RBAC
enhanced_RBAC false Enhanced RBAC Mode True
root@trinity:/root# shutdown -Fr

root 用户和增强 RBAC

当采用增强 RBAC 模式使用 RBAC 的时候,root 用户将继续生效(与以前的 AIX 5L 发行版中一样),并且可以保持其作为超级用户帐户的传统角色。

增强 RBAC 具有一个特性,即能够禁用 root 用户帐户,并通过一个或者多个用户帐户,执行所有的特权管理和命令。

RBAC 中的预定义角色

在这个部分中,我们将讨论如何为用户添加一个预定义的角色。

随着 AIX V6 中增强 RBAC 的发布,在 RBAC 的缺省配置中包括了三个预定义的角色和几个子角色。

这三个预定义角色分别是:

ISSO:信息系统安全官 (Information System Security Officer)

ISSO 角色负责创建和分配角色,因而是系统中功能最强大的用户定义角色。ISSO 的职责包括:

建立和维护安全策略

设置用户密码

网络配置

设备管理

SA:系统管理员 (Systems Administrator)

SA 角色提供了日常的管理功能,并负责以下事项:

用户管理(除了密码设置以外)

文件系统管理

软件安装更新

网络守护进程管理

设备分配

SO:系统操作员 (System Operator)

SO 角色提供了日常操作所需的功能,并负责以下事项:

系统关闭和重新启动

文件系统备份、恢复和配额

系统错误日志记录、跟踪和统计

工作负载管理

这些预定义角色中的每一种角色都具有预配置的授权定义,并且如果需要的话,可以进行进一步自定义。

注意: Trusted AIX 将使用 ISSO 、 SA 和 SO 角色。如果您的环境中包括 Trusted AIX ,那么您可能会希望通过使用用户定义的角色来自定义您的 RBAC 环境。

为用户添加一个角色

正如在本部分中前面所讨论的,SO 预定义角色包括用以执行 reboot 和 shutdown 命令的授权。

如果我们不知道某个预定义角色是否包括 shutdown 和 reboot 命令,那么可以执行如下的过程:

1. 确定需要执行的特权命令。在这个示例中,需要执行的是 shutdown 和 reboot 命令。

将完全限定的特权命令添加到 smitty 菜单的条目字段区域,并选择 Enter 键。

图 2 显示了 smit setsecattr_cmdmod 快速路径。

基于角色的访问控制,第 1 部分

2. 确定该特权命令是否包括在授权中。如果预定义的授权中没有包括该命令,那么可能需要定义一个用户定义的授权。

smit setsecattr_cmdmod 命令显示了 /usr/sbin/exec_shutdown 命令的授权为 aix.system.boot.shutdown。

使用相同的方法,我们可以确定 aix.system.boot.reboot 授权中定义了 /usr/sbin/reboot 命令。

此外,可以使用 lssecattr 命令,在不调用 smitty 菜单的情况下,获取相关的信息。

图 3 显示了 lssecattr 命令

基于角色的访问控制,第 1 部分

图 4 显示了 exec_shutdown 命令和 smitty setsecattr_cmdmod

基于角色的访问控制,第 1 部分

3. 确定是否存在某个合适的角色包括了该授权。如果预定义的角色中没有包括合适的角色,那么可能需要定义一个用户定义的角色。

lsrole 命令可用于列出各种已定义的角色。可以组合使用 lsrole 和 grep 命令,以确定是否为角色分配了某个授权。

图 5 显示了 SO 角色包含几种授权,其中包括 aix.system.boot.reboot 和 aix.system.boot.shutdown。

图 5 lsrole 命令

基于角色的访问控制,第 1 部分

另一种选择是,使用 lsauth 命令和角色属性,以显示将某个授权所分配到的角色。

lsauth 命令可以与“*”通配符一起使用。可以在名称的末尾使用通配符,以列出整个层次结构。在通配符之前指定的整个字符串必须是一个有效的授权名称。

图 6 显示了与角色属性一起使用的 lsauth 命令

基于角色的访问控制,第 1 部分

通过使用 lsrole 和 lsauth 命令的组合,我们可以确定授权所分配到的一个角色或者多个角色、以及分配给角色的授权。

4. 将角色分配给用户。

可以使用 chuser 命令来分配 RBAC 角色。

图 7 显示了在将 so 角色分配给 oper1 用户之前,lsuser 命令的输出。当前没有为 oper1 用户分配任何角色,

因此角色值为空。

图 7 对没有分配任何角色的 oper1 执行 lsuser

基于角色的访问控制,第 1 部分

chuser 命令并不会为现有的角色追加新的角色。如果已经为 oper1 用户分配了一些现有的角色,那么需要在 chuser 命令的新角色值中包含这些现有的角色。

图 8 显示了使用 chuser 命令为 oper1 用户添加 so 角色的操作

基于角色的访问控制,第 1 部分

5. 激活角色。

在缺省情况下,在用户登录系统并使用 swrole 命令之前,所有的角色都是非活动的。如果 oper1 用户要在不激活 so 角色的情况下执行 shutdown 命令,那么 shutdown 命令将尝试以 oper1 用户来进行执行。因为在激活所分配的某个角色之前,oper1 用户并不具有任何特殊权限,所以 shutdown 命令将不能成功地完成。

通过激活 so 角色,oper1 用户将获得为 so 角色授予的访问控制权限。对于由 oper1 用户(包括在 so 角色所包含的某个授权中)所执行的任何命令,将使用执行该命令所需的权限来进行执行。

在图 9 中,我们以 oper1 用户的身份进行登录,并执行 rolelist -a 命令,以显示分配给 oper1 的角色和授权。

然后,我们执行 rolelist -a 命令,以显示有效的角色。可以将这些有效的角色看作当前处于活动状态、并且可供 oper1 用户使用的角色。

因为此时不存在任何处于活动状态的有效角色,所以由 oper1 用户执行的任何命令在执行时不使用任何附加权限,这样一来,shutdown -Fr 命令将会退出,而无法执行 shutdown 程序。

图 9 rolelist 命令

基于角色的访问控制,第 1 部分

要激活一个角色,可以使用 swrole 命令。

swrole 命令将启动一个新的 Shell,这个 Shell 需要用户使用他们的密码进行身份验证。

在对密码进行了身份验证之后,将激活该角色,并且将该角色所定义的授权中所包括的命令作为特权命令进行执行。

在图 10 中,我们执行了 swrole 命令。swrole 命令需要使用角色名作为参数,因此我们执行了 swrole so。这个操作将激活 so 角色。

一旦 so 角色处于活动状态,就可以使用 rolelist -ea 命令列出有效的角色和授权。

图 10 swrole 命令

基于角色的访问控制,第 1 部分

6. 现在,oper1 用户具有了处于活动状态的 so 角色,并且可以执行 shutdown 命令。

通过为用户 oper1 添加 so 角色,它允许该用户在不访问 root 用户或者成为 shutdown 组成员的情况下,执行 shutdown 和 reboot 程序。此外,不需要更改文件对象的 DAC。

在图 11 中,我们以 oper1 用户的身份来执行 shutdown 命令。

图 11 以 oper1 用户的身份执行 shutdown 命令

基于角色的访问控制,第 1 部分

注意:应该使用最少权限原则来分配角色。应该避免为用户分配这样的角色,其中所包括的授权超过了该用户所需要的授权。

激活角色

在缺省情况下,在使用增强 RBAC 的 AIX Version 6.1 中,缺省登录过程不分配或者激活任何用户定义的角色或者相关的授权。用户在登录时,将仅具有从 DAC 中所获得的权限、或者通过执行 setuid 程序所获得的任何权限。

要将角色关联于会话,用户必须执行 swrole 命令,该命令将激活为该用户所分配的某个角色。该用户只能使用已经分配给他的角色。

激活一个角色并使用相关的授权,这项操作称为“使用角色会话”。

在缺省情况下,用户在进入角色会话或者为其会话添加角色时,需要输入他们的登录密码来进行身份验证。通过使用 auth_mode 角色属性,可以选择将角色配置为不需要进行身份验证。此外,通过使用 default_roles 用户属性,可以将角色配置为在用户登录时自动地激活。

切换到一个新的角色会话,将创建一个新的 Shell 会话,但并不继承以前的角色会话的角色。通过为角色会话创建一个新的进程 Shell、并将新的角色 id (rid) 分配给该进程,可以完成这项任务。

创建新的角色会话,其过程与 su 命令的过程类似,只不过在角色会话中,仅更改进程的角色 ID,而不更改 uid 或者 gid。

swrole 命令将允许用户创建由一个角色或者多个角色组成的角色会话。用户可以从当前角色会话切换到新的角色会话,新的角色会话将是一个新的进程,这个新的角色会话不会从先前的角色会话中继承任何角色。为了恢复先前的角色会话,用户必须退出当前的角色会话。

可以通过在会话中调用 rolelist 命令,列出在角色会话中使用的任何角色、或者活动角色集合。此外,管理员可以使用 rolelist 命令,以列出系统中给定进程的活动角色集合。

角色身份验证

可以定义或者修改角色,以允许用户在不需要进行密码身份验证的情况下,激活所分配的某个角色。

在缺省情况下,当使用 swrole 命令激活一个角色的时候,需要用户通过输入其登录密码来进行身份验证。

chrole 命令可用于对角色进行修改,以便在激活角色的时候不需要进行身份验证。

如果没有对一个角色的 auth_mode 属性的缺省值进行修改,那么将不会显示 auth_mode 属性或者节。

在修改了 auth_mode 属性之后,将显示相应的节,其值为 auth_mode 属性的值。

图 12 显示了使用 chrole 命令更改 so 角色的 auth_mode 属性

基于角色的访问控制,第 1 部分

当最初使用 lsrole 命令来显示 auth_mode 节的时候,没有显示任何节信息或者属性值。这是因为还没有对 auth_mode 的缺省设置进行更改。

在将 auth_mode 设置为 NONE 之后,将显示相应的节和属性值,并且当使用 swrole 命令激活 so 角色的时候,将不再需要进行身份验证。

要恢复其缺省设置,可以执行 chrole 命令,将 auth_mode 节修改回原始值,以启用 INVOKER 授权。在使用 swrole 命令激活 so 角色时,又需要进行身份验证了。

注意:如果将一个角色修改为允许在不经过身份验证的情况下进行激活,那么这将允许用户在不输入其登录凭据的情况下激活该角色。但这样有可能会使攻击者能够使用空闲的、或者未锁定的用户会话来激活角色,并且在不进行任何身份验证检查的情况下执行受限的命令。

角色激活

通过使用 default_roles 用户属性,用户可以选择将已定义的角色配置为用户登录过程的一部分来进行激活。default_roles 是 AIX V6 中引入的一个用户属性,它适用于一些特殊的情况,其中代表用户所创建的进程总是需要与给定的角色集合相关联。

cron 进程是需要使用 default_roles 用户属性的情况的一个示例。cron 进程在后台运行,并使用已定义的用户执行相应的命令。可以想象,它所执行的某些命令需要相应的授权。这就需要能够为用户 ID 指定一组始终处于活动状态的角色,因为没有任何机制可以使得 cron 在晚些时候获得所需的角色。

可以对 default_roles 用户属性进行设置,最多包括八个角色名称、或者设置为特殊值 ALL。设置 default_roles=ALL 将对会话分配所有的用户角色。如果为用户分配了八个以上的角色,那么该会话只能启用前八个角色。

Tags:基于 角色 访问

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接