[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ groups martin
martin : martin wheel
私は私のホームディレクトリにいます:
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ pwd
/home/martin/anaconda3
しかし、私のディレクトリにあるファイルを削除しようとすると、次のエラーが発生します。
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ rm test2.ipynb
mv: cannot create regular file ‘/export/.trash/test2.ipynb’: Permission denied
なぜそんなことですか?
答え1
背景
rm
ファイルの操作を試みる3番目の例は、一連のコマンドでオーバーロードさrm
れているようmv
です/export/.trash
。
特権
[martin@A08-R32-I196-2-FZ1RLP2 anaconda3]$ rm test2.ipynb mv: 一般ファイル '/export/.trash/test2.ipynb' を生成できません: 権限が拒否されました。
権限を見る/export/.trash/
:
$ ls -ld /export/.trash
mv
アカウントがファイルを削除し、オプションでそのディレクトリから削除できるようにするには、すべてのエントリはユーザー "martin"が所有する必要があります。
誰かがこのディレクトリで作業している間にそのコマンドを使用し、誤ってルートがディレクトリを所有するようにsudo
ディレクトリに権限を設定した可能性があります。.trash
リロードコマンド
あなたの注文についてrm
。このコマンドを使用して、同じ名前のエイリアスまたはシェル関数でオーバーロードされていることを確認できますtype
。例:
$ type -f rm
rm is aliased to `rm -i'
$ type -f mv
mv is aliased to `mv -i'
mv
ここでは、andコマンドがandのエイリアスrm
でオーバーロードされていることを確認できます。mv -i
rm -i
答え2
出力結果は、rm
これがrm
エイリアスや他の操作を実行する関数であることに同意します。パス名を見ると、削除するのではなく、ごみ箱ディレクトリに移動したいようです。
元の問題を解決するには、グループ0(wheel
)はデフォルトでは意味がありません。 BSDベースのシステムでは、ルートはグループメンバーシップに制限されていますが、su
これはオペレーティングシステム自体ではなくBSDコマンドの機能です。sudo
wheel
su
このsudo
コマンドはLinuxで一般的に使用されます。高度に設定可能です。グループ0のメンバーシップが必要な場合がありますが、sudo
自動的には使用されませんsudo
。