我已經設定了我的第一個 Ubuntu 伺服器並立即登入(作為myuser
)開始自訂它。我跑/opt
過去mkdir sandbox
。
mkdir:無法建立目錄「沙箱」:權限被拒絕
沒有權限?好的。所以我運行sudo -i
並輸入myuser
的密碼。重新運行mkdir
命令,瞧!目錄已建立。我退出。
我重新登入myuser
並導航到/opt
並運行ls
:什麼都沒有!裡面沒有可見的目錄/opt
!什麼!
所以我再次使用 sudosudo -i
並重新運行ls
。現在它看到了sandbox/
。
我認為我缺少一些關於使用者和 root 的基本 Linux 知識。在伺服器配置/安裝過程中,它要求我建立一個用戶,我這樣做了( myuser
)。我假定這也將是 root 用戶(具有完整的管理權限),因為它不僅是我在安裝過程中創建的用戶,而且是系統中的第一個用戶!
那為什麼不能myuser
:
/home/myuser
在沒有 sudo 的情況下建立目錄?- 查看在「sudo 模式」下建立的目錄
sudo
我對和su
用戶之間的區別也很模糊root
。
最終,除了充分理解這些基礎知識之外,我還希望在/opt/sandbox/
其下方安裝一堆可以全天候運行並與本機檔案系統互動的伺服器軟體。現在我不確定是否應該在簡單地以myuser
、 sudoed asmyuser
或其他方式登入時安裝這些應用程式。
這些伺服器位於安全的私人家庭區域網路內,因此我不需要「真正的管理」和瘋狂的安全控制。我只是為我正在編寫的一個小型軟體工具設定一個簡單的開發環境。預先感謝您對上述問題的任何幫助。
答案1
/opt 預設由使用者root
和群組擁有root
。
嘗試一下l /
,您會看到資料夾 /opt 屬於“ root root
”,分別是使用者和群組。
如果您確實想使用非 root 使用者建立和修改 /opt 內的文件,則需要在其中建立資料夾並修改其權限,以便非 root 使用者可以自由存取它。
例子:
sudo mkdir /opt/sandbox
sudo chown myuser:users /opt/sandbox
第一個 命令建立資料夾,但它由root
和群組擁有。root
chown
myuser
users
myuser
答案2
那為什麼 myuser 不能:...
嘗試
ls -l sandbox
getfacl sandbox
如果這些輸出不清楚或無法解釋您所看到的內容,請將輸出剪下並貼上到問題的編輯中。
我對 sudo、su 和 root 用戶之間的區別也很模糊。
sudo
只提供您一個指令的提升 root(即管理員)權限。 sudo 有一個設定文件,您可以在其中控制允許哪些使用者執行哪些操作。
su
透過為您提供一個有效使用者 ID 為 root 的新 shell 會話,為您提供多個命令的提升權限。
root 用戶是一個名為 root 的特殊用戶,您可以在 /etc/passwd 中看到它。在 Unix 或 Linux 系統中總會有十幾個其他使用者。人們通常有一個普通帳戶,並使用它來完成所有工作,除了絕對需要 root 權限的操作(例如安裝供系統上所有使用者使用的軟體)。這使得惡意軟體更難做壞事,也讓您更難犯下不可挽回的錯誤。
我想要安裝一堆伺服器軟體
我發現最好使用系統的套件管理器來安裝套件。我不想手動在 /opt 中建立資料夾,那將是我最後的選擇。