Linux 和目錄消失(和重新出現)的神秘案例

Linux 和目錄消失(和重新出現)的神秘案例

我已經設定了我的第一個 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
chownmyuserusersmyuser

答案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 中建立資料夾,那將是我最後的選擇。

相關內容