web-dev-qa-db-ja.com

`root`が所有するファイルをコピーすると、` cp`権限が拒否されました

フォルダがありますudp_folder2

d------r-T 41 root           root     4096 Apr 26 21:17 udp_folder2

root以外のユーザーと一緒にいるときは、cp -rそれが言う新しいフォルダーに:許可が拒否されました

どうして? root以外のユーザーでコピーするにはどうすればよいですか

6
user138126

上手、

これは、現在のアクセス許可の設定方法により、誰もそのファイルを移動できないためです。 (ルートは同じルールに従っていないため、ルート以外。)

ファイルの所有者(chown)を変更するか、OR他のユーザーをグループ 'root'に追加し、chmodを実行して、グループがディレクトリで実行できるようにする必要がありますOR他の全員にファイルの実行を許可します。

したがって、簡単な修正は次のようになります。

chmod -R o+rwx udp_folder2

これにより、誰でもそのディレクトリで読み取り、書き込み、実行を行うことができます。

また、「udp_folder2」を現在配置されているのと同じディレクトリにコピーする場合は、そのディレクトリに対する「w」権限も必要です。例えば:

/ foo/udp_folder2-/ fooにそのディレクトリをコピーするには、/ fooに「w」が必要です

Linuxファイルのアクセス許可を学習することをお勧めします: Linuxファイルのアクセス許可のチュートリアル

11
Tillman32

ディレクトリにはx権限がないため、他のユーザー(つまり、この場合はすべてのユーザー)がディレクトリを使用して内部のファイルにアクセスできます。 Tは、粘着性があることを意味します(ファイルの所有者のみが削除できます)。 x権限とスティッキービットの両方を使用すると、小文字のtが表示されます。大文字のTは、「アクセス許可はありませんが、スティッキービットです。これは奇妙な組み合わせです」と述べています。

Unixのファイル/ディレクトリの権限を確認します。それはそれほど難しくはありません、そしてあなたはwillそれを必要とします。

8
vonbrand

セキュリティ上のリスクが発生するため、ディレクトリのrwxを全員に与えたくない。そして、あなたは-R chmodは変更を再帰的に書き込むためです。

ただchmod 755 "filename"、あなたは元気です。

数字の内訳は次のとおりです。

  • 読み取り= 4
  • 書き込み= 2
  • 実行= 1

次に、3つのグループがあります。

  • オーナー。
  • グループに所属している方。
  • 他のみんな。

したがって、所有者にrwx、グループに属する人にはrw、その他すべての人にはrwを付与する場合は、権限を追加するだけですrwx = 7、r + w + xは4 + 2 + 1であり、rw = 6は、r + w = 4 + 2。

4
pullsumo

所有者が権限を持っていないフォルダをコピーするには、これらの権限を変更する必要があります。

所有者であってもフォルダーが制限されている場合は、その理由がいくつかあり、他のすべてのユーザーに権限(o)を付与することは適切な解決策ではありません(最初の回答を参照)。

所有者がフォルダにアクセスするには、読み取り(r)および実行/検索ビット(X)が設定されている必要があります。フォルダ内にフォルダがある場合、それぞれが同じルールに従う必要があります。ファイルの場合、読み取りビット(r)のみで十分です。

したがって、基本的にフォルダーへの読み取りアクセス許可を再帰的に付与するには、次のコマンドを実行する必要があります。

chmod -vR u+rX folder/

上記のコマンドをユーザーとして実行している場合は、プレフィックスとしてSudoを付け(スーパーユーザー権限がある場合)、それ以外の場合はrootとして実行します。

フォルダー内の一部のファイルがルートによって所有されていない場合は、次のように再帰的に変更します。

Sudo chown -vR root folder/

次に、通常どおりにコピーするか、次のようにrsyncを使用します。

rsync -vuar src/ dst/

上記のコマンドの詳細については、次を確認してください:man chmodおよびman chown

0
kenorb