x13
|
發表於 2013-3-10 05:18 AM |
引用: innova寫到:
那 sudo su -
跟 sudo -i
有什麼不同?
結果是一樣的但是過程不一樣XD
這問題很像i++跟++i
假設user x13是sudoer或wheel群組 可以執行sudo
su -i
這個密碼是root的密碼
sudo su -i
這個密碼是sudo要求的,所以鍵入的是x13的密碼,sudo代表的是root權限去執行一件事,而root執行su是不用密碼的
這是真正切換成root身分
sudo -i
這個密碼是x13的密碼
sudo -i的意義是「模擬」root登入的執行環境,並不是真正切換身分,所以一舉一動都被sudo log起來
大概是這樣不要再考我了XD
| |
innova
|
發表於 2013-3-9 03:53 PM |
那 sudo su -
跟 sudo -i
有什麼不同?
| |
x13
|
發表於 2013-3-9 11:13 AM |
su 是 shell
su - 是 login shell
sudo su 還是shell
sudo -i 是 login shell
login shell 跟 shell 的差別 以bash為例 簡單說大概像底下這樣
login shell:
登入時
如果有 /etc/profile 就source它
如果有 ~/.bash_profile 就source它
不然如果有~/.bash_login 就source它
再不然如果有 ~/.profile 就source它
登出時
如果有 .bash_logout 就source它
shell:
如果有 ~/.bashrc 就source它
所以哪些東西要放.bash_profile哪些東西要放.bashrc是有學問的
還有用sudo vi/vim 是個很糟的習慣
應該用sudoedit
猜猜原因是什麼?
[x13 在 2013-3-9 12:47 PM 作了最後編輯]
| |
innova
|
發表於 2012-12-19 03:24 PM |
啊~
這...
縮針的
這還真的不清楚哩...
(看起來似乎是一樣的東西?)
不過 這輩子沒用過 sudo -i
因為... su - 明顯少打很多字! XD
| |
pcca
|
發表於 2012-12-3 10:33 AM |
但是,若你不知道 root password (root不想告訴你密碼)
你用 su 當然不可能變成 root (因為密碼不正確)
但是 你用 `sudo su` 只需要輸入自己密碼 即可變成 root
那 sudo su 和 sudo -i 有何
| |
innova
|
發表於 2012-12-1 11:32 PM |
你用一般user login (遠端連線 也只准許用非root login)
然後
你知道 另一個 user password
你可以 用`su user` 變成那個人,只需要輸入他的密碼即可
同樣的
你知道 root 密碼
你 su 變成 root
只需輸入正確 root password即可
但是,若你不知道 root password (root不想告訴你密碼)
你用 su 當然不可能變成 root (因為密碼不正確)
但是 你用 `sudo su` 只需要輸入自己密碼 即可變成 root
這是 純`su` 跟 `sudo su`的不同
---
su 跟 su -
你現在 不是 root
你有自己的工作環境(env)
你想繼續用現有一般user環境 去執行某些需要 root權限工作的事情
請直接用 su
你想用純root權限去做事情
請用 `su -`
最簡單的解釋 就是 PATH設定
一般 user自己安裝了某工具在自己目錄下,並已在 $PATH環境變數中添加該工具執行路徑與環境
但是有些工作需要較高權限,請直接用 `su`
若是為了避免一般user誤入歧途,預設PATH中並未參考到 /sbin/之類的路徑
root執行環境必定會參考該路徑
為了避免執行命令時的問題,請使用 `su -`
否則,請使用完整路徑 /sbin/reboot
| |
pcca
|
發表於 2012-11-8 09:17 AM |
照 Wikipedia 的說法:
sudo is a program for Unix-like computer operating systems that allows users to run programs with the security privileges of another user (normally the superuser, or root).
所以 sudo 應該是指讓使用者用自己的身份可以去執行一些需要安全權限的指令。
不過我比較在意的是 su -, sudo -i, sudo -s, sudo su - 這幾個指令在實際使用上究竟有什麼差別, 例如 shell 和使用者的環境轉換之間
的差異。
* sudo可以設定成不用輸入自己密碼就可以直接執行指令的。
| |
Ralse
|
發表於 2012-11-7 11:45 PM |
引用: 這個嘛寫到:
鳥哥的網站寫的
以『 su - 』直接將身份變成 root 即可,但是這個指令卻需要 root 的密碼,也就是說,如果你要以 su 變成 root 的話,你的一般使用者就必須要有 root 的密碼才行;
以『 sudo 指令 』執行 root 的指令串,由於 sudo 需要事先設定妥當,且 sudo 需要輸入使用者自己的密碼, 因此多人共管同一部主機時, sudo 要比 su 來的好喔!至少 root 密碼不會流出去!
sudo需要事先編輯一個allow list (或稱為white list),只有在該list內的使用者可以使用sudo這個指令
且sudo指令可以取代su成root,使用時要輸入目前登入帳號的密碼,且執行的命令會被紀錄下來
一般來說只有進行系統設定或安裝軟體時才會遇到root權限,但是為了安全考量,最好養成使用sudo的習慣
免得不小心就把系統搞掛了
| |
這個嘛
|
發表於 2012-11-7 08:35 PM |
鳥哥的網站寫的
以『 su - 』直接將身份變成 root 即可,但是這個指令卻需要 root 的密碼,也就是說,如果你要以 su 變成 root 的話,你的一般使用者就必須要有 root 的密碼才行;
以『 sudo 指令 』執行 root 的指令串,由於 sudo 需要事先設定妥當,且 sudo 需要輸入使用者自己的密碼, 因此多人共管同一部主機時, sudo 要比 su 來的好喔!至少 root 密碼不會流出去!
| |
pcca
|
發表於 2012-11-7 08:51 AM |
Linux從一般使用者轉換成root的方法有很多, 說實在的我也有點混亂, 有沒有人可以解說一下?
1. su -
2. sudo -i
3. sudo -s
4. sudo su -
| |