自分のディレクトリの下から他の人のサブディレクトリを削除する方法


3

私はLinuxサーバー上の同僚とファイルを共有していました、そして彼はいくつかの新しいファイルを追加しました。ファイルを別の場所に移動したので、古いファイルを削除します。しかし、私の同僚が彼のファイルを追加したとき、私たちが使ったソフトウェアは彼のアカウントが所有する新しいサブディレクトリを作りました、そして私はそれらを削除するための全く正しいコマンドを見つけることができません。

$ ls -a
total 20
drwxrwxr-x 5 markpasc markpasc 4096 Sep 20 09:48 ./
drwxrwxr-x 3 markpasc markpasc 4096 Sep 20 09:48 ../
drwxr-xr-x 2 coworker coworker 4096 Sep 16 14:07 82/
drwxr-xr-x 2 coworker coworker 4096 Sep 16 14:07 c4/

私は試した:

$ rm -rf 82
rm: cannot remove `82/b7fc78bc548537f3ea235026b7322fe3bea91f': Permission denied
$ rm -f 82/b7fc78bc548537f3ea235026b7322fe3bea91f
rm: cannot remove `82/b7fc78bc548537f3ea235026b7322fe3bea91f': Permission denied
$ rmdir 82/
rmdir: 82/: Directory not empty
$

私は通常私が削除できることを知っています ファイル 他の誰かが私のディレクトリから所有しています。

$ ls -a
total 8
drwxrwxr-x  2 markpasc markpasc 4096 Sep 20 10:13 ./
drwxr-xr-x 24 markpasc markpasc 4096 Sep 20 10:13 ../
-rw-rw-r--  1 someuser someuser    0 Sep 20 10:13 file
$ rm file
rm: remove write-protected regular empty file `file'? y
$ ls file
ls: file: No such file or directory
$

これらのディレクトリを自分で削除する方法はありますか?それとも私の同僚(またはroot)がそれらのディレクトリを削除する必要がありますか?


1
あなたはおそらくルートを尋ねるべきです
Nathan Fellman

ありがとうございます。私は私の同僚に尋ねました、そして、彼は私が彼らを取り除くのを手伝いました、しかし私が逃した何か他の方法があるかどうか疑問に思いました。
markpasc

いいえ、rootだけがアカウントの制限を克服できます。
harrymc

回答:


4

ディレクトリを削除するには、2つのことが必要です。親ディレクトリへの書き込みアクセス権と、そのディレクトリを空にするためです。だからあなたの同僚、またはルートは協力しなければなりません。これはunixパーミッションモデルの制限です。

ディレクトリツリーが複数のユーザーによって書き込み可能な場合のワークフローを向上させるために、アクセス制御リスト(サポートされている場合)またはsetgidディレクトリを使用できます。

  • ACLを使用して、ディレクトリへの書き込みアクセス権を持っている人には誰でも書き込みアクセス権を与え、新しく作成されたファイルとサブディレクトリが必要なアクセス権を継承するようにデフォルトACLを書き込みアクセス権にも設定します。ユーザーはこれらのデフォルトを上書きできますが、受動的に協力している限り、アクセス権は問題ありません。

    setfacl -m user:coworker:rwx .
    setfacl -d -m user:coworker:rwx .
    
  • ACLがない場合は、グループへの書き込みアクセス権を与え、ディレクトリのsetgidビットを設定することができます。これにより、新しく作成されたファイルとサブディレクトリは、作成プロセスのデフォルトグループではなく、問題のグループに属します。ただし、新しいファイルやディレクトリへの書き込み権限をグループに付与するかどうかは、ユーザーに任されています。 umask 002

    chgrp mygroup .
    chmod g+ws .
    

あなたは興味があるかもしれません なぜこのように動作するのかについてのこのスレッド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.