遷移到Linux:使用sudo
sudo 機(jī)制可以讓你輕松以普通用戶偶爾執(zhí)行管理任務(wù)。讓我們來學(xué)習(xí)一下。
本文是我們關(guān)于遷移到 Linux 的系列文章的第五篇。如果你錯(cuò)過了之前的那些,你可以在這里趕上:
你可能一直想了解 Linux。也許它在你的工作場所使用,如果你每天使用它,你的工作效率會(huì)更高?;蛘?,也許你想在家里的某些計(jì)算機(jī)上安裝 Linux。無論是什么原因,這一系列文章都是為了讓過渡更容易。
與許多其他操作系統(tǒng)一樣,Linux 支持多用戶。它甚至支持多個(gè)用戶同時(shí)登錄。
用戶帳戶通常會(huì)被分配一個(gè)可以存儲文件的家目錄。通常這個(gè)家目錄位于:
/home/<login name>
這樣,每個(gè)用戶都有存儲自己的文檔和其他文件的獨(dú)立位置。
管理任務(wù)
在傳統(tǒng)的 Linux 安裝中,常規(guī)用戶帳戶無權(quán)在系統(tǒng)上執(zhí)行管理任務(wù)。典型的安裝 Linux 的系統(tǒng)會(huì)要求用戶以管理員身份登錄以執(zhí)行某些任務(wù),而不是為每個(gè)用戶分配權(quán)限以執(zhí)行各種任務(wù)。
Linux 上的管理員帳戶稱為 root。
Sudo 解釋
從歷史上看,要執(zhí)行管理任務(wù),必須以 root 身份登錄,執(zhí)行任務(wù),然后登出。這個(gè)過程有點(diǎn)乏味,所以很多人以 root 登錄并且整天都以管理員身份工作。這種做法可能會(huì)導(dǎo)致災(zāi)難性的后果,例如,意外刪除系統(tǒng)中的所有文件。當(dāng)然,root 用戶可以做任何事情,因此沒有任何保護(hù)措施可以防止有人意外地執(zhí)行影響很大的操作。
創(chuàng)建 sudo
工具是為了使你更容易以常規(guī)用戶帳戶登錄,偶爾以 root 身份執(zhí)行管理任務(wù),而無需登錄、執(zhí)行任務(wù)然后登出。具體來說,sudo
允許你以不同的用戶身份運(yùn)行命令。如果你未指定特定用戶,則假定你指的是 root 用戶。
sudo
可以有復(fù)雜的設(shè)置,允許用戶有權(quán)限使用 sudo
運(yùn)行某些命令,而其他的不行。通常,安裝的桌面系統(tǒng)會(huì)使創(chuàng)建的***個(gè)帳戶在 sudo
中有完全的權(quán)限,因此你作為主要用戶可以完全管理 Linux 安裝。
使用 Sudo
某些安裝 Linux 的系統(tǒng)設(shè)置了 sudo
,因此你仍需要知道 root 帳戶的密碼才能執(zhí)行管理任務(wù)。其他人,設(shè)置 sudo
輸入自己的密碼。這里有不同的哲學(xué)。
當(dāng)你嘗試在圖形環(huán)境中執(zhí)行管理任務(wù)時(shí),通常會(huì)打開一個(gè)要求輸入密碼的對話框。輸入你自己的密碼(例如,在 Ubuntu 上)或 root 帳戶的密碼(例如,Red Hat)。
當(dāng)你嘗試在命令行中執(zhí)行管理任務(wù)時(shí),它通常只會(huì)給你一個(gè) “permission denied” 錯(cuò)誤。然后你在前面用 sudo
重新運(yùn)行命令。例如:
systemctl start vsftpd
Failed to start vsftpd.service: Access denied
sudo systemctl start vsftpd
[sudo] password for user1:
何時(shí)使用 Sudo
以 root 身份運(yùn)行命令(在 sudo
或其他情況下)并不總是解決權(quán)限錯(cuò)誤的***解決方案。雖然將以 root 身份運(yùn)行會(huì)消除 “permission denied” 錯(cuò)誤,但有時(shí)***尋找根本原因而不是僅僅解決癥狀。有時(shí)文件擁有錯(cuò)誤的所有者和權(quán)限。
當(dāng)你在嘗試一個(gè)需要 root 權(quán)限來執(zhí)行操作的任務(wù)或者程序時(shí)使用 sudo
。如果文件恰好由另一個(gè)用戶(包括 root 用戶)擁有,請不要使用 sudo
。在第二種情況下,***正確設(shè)置文件的權(quán)限。