Permissions

我可以避免使用 sudo 來備份 root 擁有的文件嗎?

  • February 3, 2020

rsync用來備份一組文件/etc。“源”文件位於ext4文件系統上,“目標”是ext4USB 拇指驅動器上的分區。我的咒語是這樣的:

rsync -av --recursive --files-from=my/etcfiles /etc ./my/backup/etc/

不出所料,我收到了錯誤,包括:

rsync: failed to set times on "/my/backup/etc/somefile": Operation not permitted (1)  
rsync: mkstemp "/my/backup/etc/somefile.erGL4a" failed: Permission denied (13)  
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]  

我認為這是因為保留了我正在備份的文件的所有權(root)的a選項,因此需要 root 權限才能完成的操作。rsync``rsync

rsync操作在執行時成功完成sudo,但我需要將其設置為cron作業,並且sudo在 a 中使用crontab會帶來我想避免的問題(密碼儲存)。

另一種可能性可能是在備份chown=USER:GROUP期間更改根擁有文件的所有權(使用該選項) 。rsync我沒有嘗試過,因為我突然想到,即使它在沒有sudo的情況下工作,如果需要備份,也必須恢復所有權。

一天的大部分時間裡,我一直在為此煩惱,並且越來越厭倦與rsync無數選擇的爭吵。所以 - 我的問題是:

我怎樣才能避免在不送出更糟糕sudo情況下使用來備份文件? /etc

設置一個root cron 作業,然後腳本無論如何都會以 root 身份執行。要訪問根 crontab,請執行sudo crontab -e.

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