
ルート以外のユーザーを使用してディレクトリを圧縮したいと思います。ただし、このディレクトリには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 = ---
所有者root
はfoo
おそらく他の人。
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
ユーザーがそのコンピュータにいない場合でも、sudoer
rootコンソールまたはライブシステムでこれを行うことができます。
これにより、コマンドは問題なく動作します。
foo@bar:~ $ tar -czf --preserve-permissions test.tar.gz ./tmp