自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux系統(tǒng)管理員需知:權(quán)限管理之 su 與 sudo

系統(tǒng)
在Linux系統(tǒng)上進(jìn)行有關(guān)權(quán)限的操作時(shí),往往會(huì)碰到很多不同的問(wèn)題,比如說(shuō):多人使用同一臺(tái)主機(jī),在授權(quán)很多用戶具有root權(quán)限的時(shí)候如何保證安全性?本文將依次為你解答。

 在Linux系統(tǒng)上進(jìn)行有關(guān)權(quán)限的操作時(shí),往往會(huì)碰到這樣的問(wèn)題:

  • 為什么安裝軟件需要在apt-get之前加上sudo?剛剛安裝完畢,再次運(yùn)行apt-get卻不需要再在前面加sudo?
  • 為何有時(shí)運(yùn)行sudocommand的時(shí)候顯示useris not in the sudoers?
  • su和sudo有什么不同?
  • 多人使用同一臺(tái)主機(jī),在授權(quán)很多用戶具有root權(quán)限的時(shí)候如何保證安全性?

本文將主要為你解答上述問(wèn)題。

  1.su

  su–運(yùn)行替換用戶和組標(biāo)識(shí)的shell,修改有效用戶標(biāo)識(shí)和組標(biāo)識(shí)為USER的.

  1.1 對(duì)比su與su– root(后者等于su-)

  實(shí)例比較:

  hyk@hyk-linux:~$su
  Password:(注意,切換以后的pwd并沒(méi)有改變)
  root@hyk-linux:/home#echo $HOME
  /root
  root@hyk-linux:/home#exit(后面顯示exit)
  exit
  hyk@hyk-linux:~$su - root
  Password:(切換以后pwd改變了)
  root@hyk-linux:~#echo $HOME
  /root
  root@hyk-linux:~#exit(后面顯示logout)
  logout

  從以上實(shí)例,看出:su-,以root身份登錄,執(zhí)行實(shí)際用戶login以后的所有操作(包括環(huán)境變量的設(shè)置等);而前者只是簡(jiǎn)單的用戶切換,pwd等信息。

  1.2 su的缺點(diǎn)

  1)不安全su工具在多人參與的系統(tǒng)管理中,并不是***的選擇,su只適用于一兩個(gè)人參與管理的系統(tǒng),畢竟su并不能讓普通用戶受限的使用;超級(jí)用戶root密碼應(yīng)該掌握在少數(shù)用戶手中。

  2)麻煩:需要把root密碼告知每個(gè)需要root權(quán)限的人。

  2.sudo

  2.1 sudo的出現(xiàn)背景

  由于su對(duì)切換到超級(jí)權(quán)限用戶root后,權(quán)限的無(wú)限制性,所以su并不能擔(dān)任多個(gè)管理員所管理的系統(tǒng)。如果用su來(lái)切換到超級(jí)用戶來(lái)管理系統(tǒng),也不能明確哪些工作是由哪個(gè)管理員進(jìn)行的操作。特別是對(duì)于服務(wù)器的管理有多人參與管理時(shí),***是針對(duì)每個(gè)管理員的技術(shù)特長(zhǎng)和管理范圍,并且有針對(duì)性的下放給權(quán)限,并且約定其使用哪些工具來(lái)完成與其相關(guān)的工作,這時(shí)我們就有必要用到sudo。

  通過(guò)sudo,我們能把某些超級(jí)權(quán)限有針對(duì)性的下放,并且不需要普通用戶知道root密碼,所以sudo相對(duì)于權(quán)限無(wú)限制性的su來(lái)說(shuō),還是比較安全的,所以sudo也能被稱為受限制的su;另外sudo是需要授權(quán)許可的,所以也被稱為授權(quán)許可的su;

  sudo執(zhí)行命令的流程是當(dāng)前用戶切換到root(或其它指定切換到的用戶),然后以root(或其它指定的切換到的用戶)身份執(zhí)行命令,執(zhí)行完成后,直接退回到當(dāng)前用戶;而這些的前提是要通過(guò)sudo的配置文件/etc/sudoers來(lái)進(jìn)行授權(quán);

  注意:

  hyk@hyk-linux:~$sudo apt-get install aaaa
  [sudo]password for hyk:

  看到?jīng)]有,執(zhí)行sudo的時(shí)候,我們需要輸入的是當(dāng)前用戶hyk的密碼,而不是root密碼。

  2.2 Sudo的特性:

  • sudo能夠限制用戶只在某臺(tái)主機(jī)上運(yùn)行某些命令。
  • sudo提供了豐富的日志,詳細(xì)地記錄了每個(gè)用戶干了什么。它能夠?qū)⑷罩緜鞯街行闹鳈C(jī)或者日志服務(wù)器。
  • sudo使用時(shí)間戳文件來(lái)執(zhí)行類似的“檢票”系統(tǒng)。當(dāng)用戶調(diào)用sudo并且輸入它的密碼時(shí),用戶獲得了一張存活期為5分鐘的票(這個(gè)值可以在編譯的時(shí)候改變)。也就是說(shuō),我剛剛輸入了sudocat /etc/issue 然后可以再次只需要輸入cat/etc/issue即可,不需要再次輸入sudo。
  • sudo的配置文件是sudoers文件,它允許系統(tǒng)管理員集中的管理用戶的使用權(quán)限和使用的主機(jī)。它所存放的位置默認(rèn)是在/etc/sudoers,屬性必須為0411。

  2.3 sudo的使用

  權(quán)限:在/etc/sudoers中有出現(xiàn)的使用者

  使用方式:sudo-V

  sudo-h
  sudo-l
  sudo-v
  sudo-k
  sudo-s
  sudo-H
  sudo[ -b ] [ -p prompt ] [ -u username/#uid] -s

  用法:sudocommand

  說(shuō)明:以系統(tǒng)管理者的身份執(zhí)行指令,也就是說(shuō),經(jīng)由sudo所執(zhí)行的指令就好像是root親自執(zhí)行

  參數(shù):

  • -V顯示版本編號(hào)
  • -h會(huì)顯示版本編號(hào)及指令的使用方式說(shuō)明
  • -l顯示出自己(執(zhí)行sudo的使用者)的權(quán)限
  • -v因?yàn)閟udo在***次執(zhí)行時(shí)或是在N分鐘內(nèi)沒(méi)有執(zhí)行(N預(yù)設(shè)為五)會(huì)問(wèn)密碼,這個(gè)參數(shù)是重新做一次確認(rèn),如果超過(guò)N分鐘,也會(huì)問(wèn)密碼
  • -k將會(huì)強(qiáng)迫使用者在下一次執(zhí)行sudo時(shí)問(wèn)密碼(不論有沒(méi)有超過(guò)N分鐘)
  • -b將要執(zhí)行的指令放在背景執(zhí)行
  • -pprompt可以更改問(wèn)密碼的提示語(yǔ),其中%u會(huì)代換為使用者的帳號(hào)名稱,%h會(huì)顯示主機(jī)名稱
  • -uusername/#uid不加此參數(shù),代表要以root的身份執(zhí)行指令,而加了此參數(shù),可以以u(píng)sername的身份執(zhí)行指令(#uid為該username的使用者號(hào)碼)
  • -s執(zhí)行環(huán)境變數(shù)中的SHELL所指定的shell,或是/etc/passwd里所指定的shell
  • -H將環(huán)境變數(shù)中的HOME(家目錄)指定為要變更身份的使用者家目錄(如不加-u參數(shù)就是系統(tǒng)管理者root)

  command要以系統(tǒng)管理者身份(或以-u更改為其他人)執(zhí)行的指令:

  范例:

  • sudo-l列出目前的權(quán)限
  • sudo-V列出sudo的版本資訊

  2.4 sudoers的配置

  sudoers是sudo的主要配置文件,linux下通常在/etc目錄下,如果是solaris,缺省不裝sudo的,編譯安裝后通常在安裝目錄的etc目錄下,不過(guò)不管sudoers文件在哪兒,sudo都提供了一個(gè)編輯該文件的命令:visudo來(lái)對(duì)該文件進(jìn)行修改。強(qiáng)烈推薦使用該命令修改sudoers,因?yàn)樗鼤?huì)幫你校驗(yàn)文件配置是否正確,如果不正確,在保存退出時(shí)就會(huì)提示你哪段配置出錯(cuò)的。

  言歸正傳,下面介紹如何配置sudoers

  首先寫(xiě)sudoers的缺省配置:

  #sudoers file.
  # This file MUST be edited with the 'visudo'command as root.
  # See the sudoers man page for the detailson how to write a sudoers file.
  # Host alias specification
  #User alias specification
  # Cmnd alias specification
  # Defaultsspecification
  # User privilege specification
  root ALL=(ALL)ALL
  # Uncomment to allow people in group wheel to run allcommands
  # %wheel ALL=(ALL) ALL
  # Same thing without apassword
  # %wheel ALL=(ALL) NOPASSWD: ALL
  # Samples
  # %usersALL=/sbin/mount /cdrom,/sbin/umount /cdrom
  # %userslocalhost=/sbin/shutdown -hnow

  2.4.1 最簡(jiǎn)單的配置,讓普通用戶support具有root的所有權(quán)限

  執(zhí)行visudo之后,可以看見(jiàn)缺省只有一條配置:

  rootALL=(ALL) ALL

  那么你就在下邊再加一條配置:

  supportALL=(ALL) ALL

  這樣,普通用戶support就能夠執(zhí)行root權(quán)限的所有命令

  以support用戶登錄之后,執(zhí)行:

  sudosu -

  然后輸入support用戶自己的密碼,就可以切換成root用戶了

  2.4.2 讓普通用戶support只能在某幾臺(tái)服務(wù)器上,執(zhí)行root能執(zhí)行的某些命令

  首先需要配置一些Alias,這樣在下面配置權(quán)限時(shí),會(huì)方便一些,不用寫(xiě)大段大段的配置。Alias主要分成4種

  Host_Alias
  Cmnd_Alias
  User_Alias
  Runas_Alias

  1)配置Host_Alias:就是主機(jī)的列表

  Host_AliasHOST_FLAG = hostname1, hostname2, hostname3

  2)配置Cmnd_Alias:就是允許執(zhí)行的命令的列表,命令前加上!表示不能執(zhí)行此命令.

  命令一定要使用絕對(duì)路徑,避免其他目錄的同名命令被執(zhí)行,造成安全隱患,因此使用的時(shí)候也是使用絕對(duì)路徑!

  Cmnd_AliasCOMMAND_FLAG = command1, command2, command3 ,!command4

  3)配置User_Alias:就是具有sudo權(quán)限的用戶的列表

  User_AliasUSER_FLAG = user1, user2, user3

  4)配置Runas_Alias:就是用戶以什么身份執(zhí)行(例如root,或者oracle)的列表

  Runas_AliasRUNAS_FLAG = operator1, operator2, operator3

  5)配置權(quán)限

  配置權(quán)限的格式如下:

  USER_FLAGHOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG

  如果不需要密碼驗(yàn)證的話,則按照這樣的格式來(lái)配置:

  USER_FLAGHOST_FLAG=(RUNAS_FLAG) NOPASSWD:COMMAND_FLAG

  配置示例:

  #sudoers file.
  # This file MUST be edited with the 'visudo'command as root.
  # See the sudoers man page for the detailson how to write a sudoers file.
  # Host aliasspecification
  Host_Alias EPG = 192.168.1.1, 192.168.1.2
  # Useralias specification
  # Cmnd alias specification
  Cmnd_Alias SQUID= /opt/vtbin/squid_refresh, !/sbin/service, /bin/rm
  Cmnd_AliasADMPW = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd, !/usr/bin/passwdroot
  # Defaults specification
  # User privilegespecification
  root ALL=(ALL) ALL
  support EPG=(ALL) NOPASSWD:SQUID
  support EPG=(ALL) NOPASSWD: ADMPW
  # Uncomment to allowpeople in group wheel to run all command
  # %wheel ALL=(ALL) ALL
  #Same thing without a password
  # %wheel ALL=(ALL) NOPASSWD: ALL
  #Samples
  # %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
  #%users localhost=/sbin/shutdown -hnow

  注意:每種linux的發(fā)行版往往對(duì)sudoers文件進(jìn)行了自己的處理,此時(shí),我們往往需要通過(guò)mansudoers來(lái)查找相關(guān)變量的定義,然后進(jìn)行設(shè)置

  2.5 授權(quán)管理sudo實(shí)例

  1)問(wèn)題:

  用戶權(quán)限不夠:

  hyk@hyk-linux:~$cat /etc/shadow
  cat:/etc/shadow: Permission denied

  2)解決辦法:指定用戶,授權(quán)特定命令

  使用Visudo可以查看/etc的代碼如下:

  Defaults env_reset
  Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  #Host alias specification
  #User alias specification
  #Cmnd alias specification
  #User privilege specification
  root ALL=(ALL:ALL) ALL
  #Members of the admin group may gain root privileges
  %adminALL=(ALL) ALL
  #Allow members of group sudo to execute any command
  %sudo ALL=(ALL:ALL) ALL
  #See sudoers(5) for more information on "#include"directives:
  #includedir/etc/sudoers.d

  注意:

  env_reset:Ifset, sudo will reset the environment to only contain theLOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
  variables. Any variables in the caller's environment thatmatch the env_keep and env_check lists are then added. The default contents of the env_keep and env_checklists are displayed when sudo is run by root withthe -V option. If the secure_path option is set, itsvalue will be used for the PATH environment variable. This flag is on by default.
  secure_path:Pathused for every command run from sudo.This optionis not set by default.

  加入這一行:%guestALL=/bin/cat表示guest用戶組可以切換到root下執(zhí)行cat來(lái)查看文件,保存,退出。實(shí)際上,由于secure_path的作用,guestone用戶已經(jīng)能夠運(yùn)行more等所有位于/bin下面的命令了

  3)驗(yàn)證:

  查看guestone的通過(guò)sudo能執(zhí)行哪些命令:

  命令行輸入:guestone@hyk-linux:~$sudo -l

責(zé)任編輯:黃丹 來(lái)源: 博客
相關(guān)推薦

2009-10-22 16:53:08

2010-12-27 17:40:31

2014-04-28 13:22:15

SSH系統(tǒng)管理員

2010-11-10 09:36:38

系統(tǒng)管理員守則

2013-06-27 09:19:08

2010-04-12 09:33:58

系統(tǒng)管理員

2010-08-11 17:11:15

2009-03-05 10:04:42

NTFS系統(tǒng)安全權(quán)限

2013-07-25 10:27:45

Linux系統(tǒng)管理員sudo

2010-05-07 16:35:44

2013-12-09 16:15:08

系統(tǒng)管理員WebminLinux服務(wù)

2014-02-11 09:53:11

2015-07-13 14:06:00

系統(tǒng)管理容器技術(shù)Docker

2012-11-01 11:33:11

IBMdw

2018-08-01 08:12:34

Linux管理員網(wǎng)絡(luò)管理

2013-10-18 09:31:03

Linux 系統(tǒng)Linux 發(fā)行版

2011-10-20 10:29:22

VMwareVMworld虛擬化

2013-06-26 09:29:30

系統(tǒng)管理員

2013-09-29 09:50:21

系統(tǒng)管理員Ubuntu JujuJuju

2012-06-06 10:41:37

系統(tǒng)管理員運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)