tar ディレクトリには、ルートファイルが非ルートファイルとして含まれています。

tar ディレクトリには、ルートファイルが非ルートファイルとして含まれています。

ルート以外のユーザーを使用してディレクトリを圧縮したいと思います。ただし、このディレクトリにはroot権限を持つファイルもあります。

例:

foo@bar:~ $ ls -l tmp/
insgesamt 8
-rw-r--r-- 1 foo  foo  6 Mär 16 08:38 test.1
-rw------- 1 root root 6 Mär 16 08:38 test.2

ユーザー「foo」で tar コマンドを実行すると、「権限が拒否されました」というエラーが発生します。例:

foo@bar:~ $ tar -czf --preserve-permissions test.tar.gz ./tmp
tar: tmp/test.2: function open failed. Permission denied.

この権限の問題をどのように解決できますか?可能であれば、root以外のユーザーを使用することをお勧めします。

ベストアンサー1

あなたはできません。

ファイルの場合はtar読んでください。しかし、rootただ読むそしてファイルに書き込みます。 (権限はrw-------/です600。)

owner = rw-
group = ---
others = ---

所有者rootfooおそらく他の人


foo権限を変更したら、次のユーザーを使用してファイルを読み取ることができます。

# give read permission (+r) to others (o) 
sudo chmod o+r ./tmp/test.2

または

# Set specific permissions value -> 6=rw- 4=r--
sudo chmod 644 ./tmp/test.2

または所有者を次のように変更しますfoo

sudo chown foo: ./tmp/test.2

ユーザーがそのコンピュータにいない場合でも、sudoerrootコンソールまたはライブシステムでこれを行うことができます。


これにより、コマンドは問題なく動作します。

foo@bar:~ $ tar -czf --preserve-permissions test.tar.gz ./tmp

おすすめ記事