Permissions
以普通使用者的身份創建一個包含 root 擁有的文件的 tar
我想以普通(非root)使用者的身份建構一個tar文件,其中包含一些準備好的二進製文件和配置文件;
etc/binaries.conf usr/bin/binary1 usr/bin/binary2
這意味著要提取到
/
目錄下的文件系統中。像傳統的軟體包 .deb、.rpm 等,但我需要“獨立於包管理器”。所以可能我只會有一個 .tar 文件(也許應該將一些 gzip、bzip、lzip 添加到組合中,但那是在外面)。
問題/問題
我的問題是我不想以****root使用者身份建構這個tar ,我想知道是否有辦法將這個tar建構為普通(非root)使用者,然後當.tar文件被分發到機器並且真正的
root
使用者提取那些二進製文件,它們將作為root使用者或提取二進製文件的使用者擁有的文件安裝?例子
因為現在,當我以普通(非 root)使用者的身份創建 .tar 文件時
$ tar cf dist.tar dist/
然後將 .tar 提取為root使用者
# tar xf dist.tar -C /
我看到二進製文件和配置文件以普通使用者為所有者,而不是 root 使用者。
$ ls -la /usr/bin/binary1 -rwxr-xr-x 1 user user 30232 jun 20 19:06 /usr/bin/binary1
我想擁有
$ ls -la /usr/bin/binary1 -rwxr-xr-x 1 root root 30232 jun 20 19:06 /usr/bin/binary1
澄清一下,這種手工打包非常適合封閉基礎設施中的某些任務,所以現在,使用 .deb、.rpm 或任何其他更複雜的打包系統不是一種選擇。
提取決定所有權,而不是存檔的創建。您可以通過查看存檔的目錄來看到這一點,例如,
tar tvf dist.tar
如果以普通使用者身份創建文件
tar --owner 0 --group 0 dist.tar dist
做魔術