it-swarm-ja.com

cygwinが削除できないファイルを作成しないようにするにはどうすればよいですか?または、どういうわけかそれらを削除できますか?

たまに、cygwinはまったく削除できないように見えるファイルを作成しているようです。 cygwinから削除する場合、それは起こりません(rmは何も言いませんが、ファイルはまだそこにあります)。エクスプローラーから試すと、管理者からのアクセス許可が必要であると表示されます(私は管理者です。ドロップダウンメニューの削除項目にはシールドがあり、管理者特権でこれを試すことを意味します)。 Total Commanderから試行すると、最初にエラーが発生し、管理者として再試行しないかどうかを尋ねられますが、それでもファイルを削除する権限がないようです。

ファイルを表示しようとすると、同じ問題が発生します。セキュリティプロパティを表示しようとしたときの問題-管理者になるにはシールドボタンを押す必要があり、所有権を取得しない限り表示できないと言われます(これは許可されていません)。

Cygwinシェルを使用して、ACLを表示することは許可されていますが、変更することはできません(シェルが管理者として実行されている場合でも)。

$ getfacl makefile.wine
# file: makefile.wine
# owner: Unknown+User
# group: Unknown+Group
user::rw-
group::r--
other:---
$ setfacl -b makefile.wine
setfacl: Permission denied

ただし、Windowsを再起動した場合、ファイルを削除するだけで問題はありませんでした。

Cygwinがこれらのファイルを作成する理由/方法(sed -iの実行時に作成されたことがわかりました)?どうすればこれを回避できますか?そして最後に、ファイルを削除するための正しい方法はありますか?

2
skyking

cygwinは、少なくとももはや、削除できないファイルを作成するべきではありません。インストールが更新されていると仮定します(cygwin 2.5.1):getfacl "filename"でファイルACLを確認します:setfacl -b "filename"でACL権限をサニタイズできます詳細については、getfaclおよびsetfaclのマニュアルを参照してください。追加の読み物 https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-files

Getfaclから持っているように

所有者:不明+ユーザー

グループ:不明+グループ

これは、cygwinが所有者を認識しないことを意味します。 2つの可能性:

1)所有者はWindowsマシンではもう有効ではありません

2)ある種のVPNまたはドメイン接続を使用していて、特定の条件でWindowsデータベースユーザーにアクセスできない。

Windows管理者は、cygwinから所有者を変更できるはずです。

1
matzeri

私はついにこれを解決しました。 Process Explorer (最近のWindowsバージョンではデフォルト)を使用して、そのファイル名を使用するプロセスのハンドルを検索し、プロセスを強制終了します。

これについてのすべてを 私のブログ で詳しく説明しました。

権限を復元しようとしないでください。復元できません。

0
Miguel Ortiz

takeownコマンドを試してください。管理者権限のCMDシェルで、次のコマンドを発行します。

takeown /F makefile.wine

削除できるかどうか今すぐ確認してください

rm makefile.wine

更新:報告してくれてありがとう、それは私の見落としでした。 takeownコマンドの後で、エクスプローラーでそのファイルを右クリックして所有権情報を表示し、そこから調整を行うことができますか?

0
hkdtam

Cygwinでも同じ問題が発生しましたが、管理者権限がありませんでした。私は次のような権限を持つフォルダを持っていました:

d---r-xr-x    1 jac  root        0 Feb  7 13:25 ciao

私の場合、私はこのように解決しました:

  1. Windowsエクスプローラーから、ファイル/フォルダーを右クリックして、プロパティを選択します。
  2. [セキュリティ]タブに移動します。
  3. In:「グループ名またはユーザー名」で「編集...」をクリックします。
  4. In:「グループ名またはユーザー名」で「追加...」をクリックします。
  5. で:選択するオブジェクト名を入力して、ユーザー名を入力してください
  6. [OK]を押します。複数の名前が見つかった場合は、どれが自分の名前かを確認する必要があります。
  7. ユーザーを選択し、チェックボックスをオンにしてファイルを完全に制御できるようにします。
  8. すべてのダイアログで[OK]を押すと、ファイルを削除できるようになります。

Windows7でテスト済み。

同じ問題に直面している他の人を助けることができることを願っています。

0
Jacopo Gobbi