sudo 臨時切換用戶和環境變量的傳遞


sudo命令可讓用戶以其他的身份來執行指定的指令,預設的身份為root。

在 /etc/sudoers 中設置了可執行sudo指令的用戶。若其未經授權的用戶企圖使用sudo,則會發出警告的郵件給管理員。

用戶使用sudo時,必須先輸入密碼,之后有5分鍾的有效期限,超過期限則必須重新輸入密碼。  

 

1、sudo -i 

sudo -i 這是臨時賦予你root的權限
sudo -i 和 su 近似,只是有root權限而已,並不是把當前用戶改成root
用了sudo -i切換到root時,輸入命令who am i 還是顯示普通用戶

cybercarematoMacBook-Pro:~ cybercare$ sudo -i
Password:
cybercarematoMacBook-Pro:~ root# who am i
cybercare ttys001 May 17 09:30
cybercarematoMacBook-Pro:~ root#

http://baike.baidu.com/view/1138183.htm

 

2、sudo 環境變量的加載

當前用戶的環境變量不會應用到sudo啟動的程序,除非使用-E選項:

 

  sudo使一般用戶不需要知道超級用戶的密碼即可獲得權限。

  sudo程序本身就是一個設置了SUID位的二進制文件。我們可以檢查一下它的權限:

  $ls -l /usr/bin/sudo
  ---s--x--x 2 root root 106832 02-12 17:41 /usr/bin/sudo

  它的所有者是root,所以每個用戶都可以像root那樣執行該程序。設置了SUID的程序在運行時可以給使用者以所有者的EUID。這也是為什么設置了SUID的程序必須小心編寫。但是設置一個命令文件的SUID 和用sudo來運行它是不同的概念,它們起着不同的作用。

  首先超級用戶將普通用戶的名字、可以執行的特定命令、按照哪種用戶或用戶組的身份執行等信息,登記在特殊的文件中(通常是/etc/sudoers),即完成對該用戶的授權(此時該用戶稱為“sudoer”);

  在一般用戶需要取得特殊權限時,其可在命令前加上“sudo”,此時sudo將會詢問該用戶自己的密碼(以確認終端機前的是該用戶本人),回答后系統即會將該命令的進程以超級用戶的權限運行。

  之后的一段時間內(默認為5分鍾,可在/etc/sudoers自定義),使用sudo不需要再次輸入密碼。

 

 

https://wiki.archlinux.org/index.php/Sudo_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E6.89.AF.E6.B7.A1

http://my.oschina.net/alphajay/blog/28811

http://bbs.chinaunix.net/thread-1065619-1-1.html

http://bbs.csdn.net/topics/300067894

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM