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