Linux命令--su與sudo


su(switch user)命令的作用:切換用戶,一般是普通用戶與root用戶之間的切換。
例:
>su                #輸入su命令
Password:      #提示輸入密碼

相關命令:su - 與sudo

一、Linux下su命令與su - 命令有什么區別?
      su是切換到其他用戶,但是不切換環境變量(比如說那些export命令查看一下,就知道兩個命令的區別了)
      su - 是完整的切換到一個用戶環境
      所以建議大家切換用戶的時候,盡量使用 su - root,否則可能發現某些命令執行不了
      從超級用戶root變成普通用戶,輸入exit命令即可

二、Linux下su和sudo的區別
      由於su(或是su - root)切換到超級權限用戶root后,權限無限制,可以使用root的所有權限
      如果多個普通用戶同時切換到root用戶對系統進行操作,可能會出現不同人對同一個文件進行不同操作,那很不安全
      最好是有針對性的放開權限,明確哪些工作是由哪個用戶進行操作,並且約定其使用哪個命令來完成與其相關的工作,此時sudo命令可以解決該問題
      通過sudo,我們能把某些root賬號擁有的權限針對性的賦權給普通用戶,並且不需要普通用戶知道root密碼
      所以sudo 相對於權限無限制性的su來說,還是比較安全的,因此sudo被稱為受限制的su或授權許可的su
      sudo 執行命令的流程是當前用戶切換到root(或其它指定切換到的用戶),然后以root(或其它指定的切換到的用戶)身份執行命令
      執行完成后,直接退回到當前用戶。而這些的前提是要通過修改配置文件/etc/sudoers來進行授權

三、配置sudo必須用超級用戶使用visudo編輯/etc/sudoers文件,之所以用visudo編輯有兩個原因:
      一是它能夠防止兩個用戶同時修改它;二是它也能進行有限的語法檢查

     若在sudoers文件中寫入以下一行:
     tomcat ALL=(ALL)    ALL
     第一個ALL是指網絡中的主機,我們后面把它改成了主機名,它指明tomcat可以在此主機上執行后面的命令;(可以通過hostname命令來查看本台linux機器的主機名)
     第二個括號里的ALL是指目標用戶,也就是以誰的身份去執行命令;
     最后一個ALL指命令名。
     寫入以上語句后,表示tomcat和root擁有一樣的權限,什么命令都可以使用,這樣子的話,對於系統來說太不安全了,
     讓tomcat用戶可以執行某些命令(例:ifconfig和ls),在sudoers文件中寫入以下一行:
     tomcat hostname=    /sbin/ifconfig,   /bin/ls

     在crt上輸入命令查看:
     [tomcat@localhost ~]$ sudo ls /root
     PassWord:
     此時的問題是:登錄后,每次使用sudo還要輸入密碼。若是使用sudo命令時不想輸入密碼,這樣修改配置文件:
     tomcat localhost=NOPASSWD:     /bin/cat, /bin/ls
     再次用sudo cat或是sudo ls命令時,就不會提示輸入密碼了

 


免責聲明!

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



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