Linux命令--su與sudo

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

相關命令:su - 與sudotomcat

1、Linux下su命令與su - 命令有什麼區別?
      su是切換到其餘用戶,可是不切換環境變量(好比說那些export命令查看一下,就知道兩個命令的區別了)
      su - 是完整的切換到一個用戶環境
      因此建議你們切換用戶的時候,儘可能使用 su - root,不然可能發現某些命令執行不了
      從超級用戶root變成普通用戶,輸入exit命令便可安全

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

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

     若在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命令時,就不會提示輸入密碼了變量

相關文章
相關標籤/搜索