web-dev-qa-db-ja.com

Windowsは私が所有するファイルへのアクセスが拒否されたと言っています

そのため、最近、Windowsは私にいくつかのトローリングを行い、私のgitリポジトリにコミットできないようにすることを決定しました

Git(Cygwin)でこのエラーが発生します:

$ git commit -a
error: insufficient permission for adding an object to repository database .git/objects

error: NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml: failed to insert into database
error: unable to index file NVG510Fixer/NVG510Fixer/Resources/layout/WarningConfirmation.axml
fatal: updating files failed

ええと...しかし、私はNVG510Fixerフォルダーに移動し、そこにあるすべての所有権を再帰的に取得して、Everyoneが完全に制御できることを確認します。これは機能しているように見えますが、エラーが消えることはありません。そこで、.gitに移動し、プロパティを右クリックして、そこから所有権を(再帰的に)取得することにしました。この時点で、それはさらに奇妙になります:

enter image description here

Windowsは一体何をしているのですか?!私は管理者です。このコンピューターはドメインに参加していません。ほんの数分前にアクセスできたファイルにアクセスできないのはどうしてですか!?

4
Earlz

管理コマンドラインから takeown コマンドを使用します。 AdministratorsグループへのFull Access権限を削除することは可能です。その場合、GUIバージョンは権限を変更できませんが、コマンドラインコマンドは変更できます。

takeown /f C:\dev\nvg510controls\.git /r /d Y

さらに凝ったものにしたい場合は、権限を設定できます コマンドライン経由

icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F)

これらのコマンドのどちらも機能しない場合は、ダウンロード PsExec そしてコマンドを実行します

psexec -i -s icacls C:\dev\nvg510controls\.git /t /grant Everyone:(F) 

これは、AdministratorユーザーではなくSYSTEMユーザーとしてicaclsを実行します。

5

それが誰かを助けるかどうかはわかりませんが、Gitがファイルにアクセスする権限を持っていないという問題があり、上記の答えを試しても成功しなかったことに注意してください。

問題は、かなり新しいサーバーで、エンタープライズウイルスチェッカーがGitプロセスから.gitディレクトリで多くのアクティビティを検出し、Gitを疑わしいプロセスとしてマークし、ファイルへのアクセスを許可しなくなったことです。

2
Frosty840

所有者を他の誰かに戻し、再帰的に自分自身に戻してみてください。それは一般的に私にとってトリックを行います。これは、サブフォルダーとファイルにアクセスできず、.gitフォルダーにしかアクセスできないことが原因である可能性があります。所有者を変更し、すべてのサブフォルダーオプションを選択します。次に、同じツリーオプションを有効にして権限を変更し、機能するかどうかを確認します

0
SoWhat