Backup

使用者組root的作用是什麼?

  • June 4, 2019

可能重複:

在第 0 組中意味著什麼?

我想避免使用 SSH root 登錄來備份我的遠端伺服器。因此,我在伺服器上設置了一個非 root 使用者帳戶並將其放在 root 組下,認為它將擁有與 root 使用者相同的權限。但我很快意識到它無法讀取未分組為 root 的文件和沒有組 root 讀取權限的文件。我現在的問題是:組根是否有任何特殊用途?備份遠端伺服器(root 或非 root)的常見做法是什麼?

“root”組不服務於特殊目的,而是服務於一般目的 - 每個文件都必須由使用者和組擁有,並且“root”作為 root 使用者擁有的預設組存在不屬於其他類別的文件,例如輪子(半舊學校)或垃圾箱。(這不是純粹的事實,它是由經驗支持的大量個人意見。)對於備份,正如 jordanm 所說,您很可能需要使用 root 使用者權限。

這是一篇文章,它已經涵蓋了您問題的第 0 組部分

常見做法

好吧,我不確定這是否是最好的解決方案,但這就是我所做的,我歡迎評論/改進/建議。

我最近為客戶的 drupal 網站設置了遠端備份,我的集中式備份伺服器正在訪問遠端伺服器並拉取。我遵循了這個原則。

  • 創建了一個我想用作管理員的使用者(遠端),該使用者被允許通過 ssh 登錄,但不能使用密碼,只能通過公鑰/私鑰。(您確實需要在您的管理位置保持安全並備份)。
  • 在遠端通過 ssh 禁用 root 登錄。
  • 允許我的管理員使用者通過 sudo 成為 root。

請注意,使用它的使用者是我,而且我不坐在備份伺服器上。所以我用它來設置下面的備份。

現在我可以遠端管理,root 不能只登錄我的特殊管理員使用者,只能通過密鑰證書登錄。

  • 在遠端和本地創建了一個備份使用者(將執行備份的使用者),它不是同一個使用者名,我稱她有點不尋常(在遠端),所以即使獲得了密鑰,他們也需要猜測遠端使用者名。使用者沒有特權,無法訪問遠端目錄(或在沒有密碼的情況下轉儲數據庫)。
  • 我允許遠端使用者在 /etc/sudoers myobscurebackupuser ALL=NOPASSWD: /usr/bin/rsync 中執行一個命令
  • 在我的中央備份伺服器上,在使用者(再次沒有特權)下,我儲存了公鑰/私鑰和我想要執行的備份腳本。只有該使用者可以訪問腳本/鍵以進行閱讀(遠離 root)。
  • 我的備份是兩個步驟
  • 第 1 步 'ssh -i /path/to/key/file obscureuser@remote mysqldump [options] | gzip' | gunzip > local_dbdump.sql _Note 前半部分在遠端執行(最多 gzip),後半部分在本地執行。
  • Step 2 rsync 遠端目錄結構

密碼和數據庫轉儲不儲存在遠端,它們通過 ssh 連接傳遞。db_dump 直接通過管道傳輸到 gzip,然後通過 stdout 將其發送回。我通過 gunzip 將其通過管道傳輸並將 stdout 引導到本地數據庫轉儲文件中。

引用自:https://unix.stackexchange.com/questions/63783