Windowsでファイルのアクセス許可を変更するchmodと同等


回答:


25

グレッグ は言及している attrib -しかし、attrib どこにも近くないchmod- attrib単一のファイルの読み取り専用/非表示属性を設定できる-それは、きめ細かなコントロールを提供しないicacls

icaclsアクセス制御リストを設定/リセットします。これにより、個々のSIDとグループに権限を付与/拒否できます。ただし、かなり複雑です。

githubの要点に保存した例を次に示します。フォルダー内のすべてのファイルの所有権とアクセス制御リストをリセットし、特に以前のインストールからファイルを移動するときに、「このアクションを実行するには..からのアクセス許可が必要」という面倒なものを修正するのに特に役立ちます。

icacls * /reset /t /c /q 

リセットすると、既存のリストがデフォルトのリストに置き換えられます。
/tすべてのファイルに対して再帰的に動作し、フォルダーとサブフォルダー
/q
/cエラーが発生しても残りのファイルで成功メッセージを表示しません。

また、既存のACLをバックアップして、すべてに適用することもできます。さまざまなオプションとスイッチを非常によく説明しているss64ご覧ください。


問題は、すべてのファイルに対して「アクセスが拒否されました」というメッセージが表示されるということではありません。これを回避する方法はありませんか?これをブロックする学校システムでは、cmdではありませんか?
theonlygusti

管理者権限が必要です。cmd[Win] + [R]を押すことで得られる「通常」にはこれらがありません。このような特別なニーズには、「管理者シェル」ショートカットがあり、「管理者として実行」(または同様の;私はドイツのWindowsシステムにいます)がチェックされています(そして背景色が濃い赤です)。
トバイアス

私は実際に許可拒否エラーの問題に直面しています。私が管理者であり、実行しているコンソールが管理者として実行されている場合、なぜ私は何かをすることができますか。それは何ですか?
CAMO


9

LinuxとDOS / Windowsは異なる目的で属性を使用するため、(悲しいことに)完全に同等なものはあり得ません。また、(以前のChathurangaが述べたように)セキュリティモデルは異なります。

  • Windowsファイルシステムには、Linuxに同等の属性がない「非表示」(H)および「システム」(S)属性があります。そこでは、名前の前にドット(.)を付けることでファイルが隠されます。
  • Windowsの「アーカイブ」(A)属性に相当するものもありません。
  • xDOS / Windowsファイル属性には、「実行可能」()Linux属性に相当するものはありません。
  • そこ Windowsの「ディレクトリ」(に相当D)の属性は、(それはとにかく変更することはできません)。
  • Linuxファイルシステムでは、すべてのエントリが1人のユーザーと1つのグループによって所有されており、各エントリおよび他のエントリに対して読み取り/書き込み/実行を許可できます。ACL(Windowsで使用されるような)はさらに柔軟性がありますが、より複雑です。また、コマンドライン構文はPITAです(もちろん私の謙虚な意見では)

DOSファイル属性R(読み取り専用)は、同等の属性を持つと見なされる可能性のある属性です。この属性セットは、ほぼwすべての欠落している属性に似ています。ただし、この属性を変更する権限はACLの対象です。

持っているために冷却されることがありますchmod/ chownターンの呼び出しでいる、おそらくいくつかのスクリプト言語で書かれた、Windows上で同等attribcacls(または後継者)が、私は1を持っていません。


良い最初の投稿!
SLM

ファイルの属性と許可を混同しています。Linuxには、chattrを介して変更できるファイル属性があります。Linuxには、属性に対するきめ細かいアクセス制御があります(たとえば、[i] mmutable属性はルートまたはCAP_LINUX_IMMUTABLEプロセスによってのみ設定できます)。Windowsの実装では、このコマンドを使用して読み取り専用ファイル属性を設定することはよくある間違いchmodです。残念ながら、システムはそれらを開発したプログラマーと同じくらいしか知らされていません。
エリックサン

@eryksun:興味深い-私はそのchattrコマンドを知らなかった。しかし、「ファイルの属性とアクセス許可を混同する」という意味ではありませんか?AFAICS、DOS属性について書いた言葉はすべて正しい。
トバイアス

ファイルは、多くの(拡張)属性で構成されます。Unixでは、ファイルモード(アクセス許可)を含む属性のコアセットがiノードに格納されます。他の拡張属性(ACLなど)は外部に保存できます。Windowsには、Unixの「モード」属性に相当するものはありません。また、ファイルシステム用の共通iノードレコードもありません。NTFS MFTレコードも同様です。POVから見ると、標準のWindowsファイル属性はファイルレコードの単一の属性です。これらはを介して設定されたLinuxファイル属性に対応しchattrますが、Windowsにはiノードがないためディレクトリ属性があります。
エリックサン

質問は、「[e] Windowsでファイルのアクセス許可を変更するためのchmodと同等」について尋ねています。chmodファイルの「モード」属性のようなものがないため、Windowsに直接相当するものはありません。Windowsファイル属性の標準セットは、これとは関係ありません。読み取り専用属性はファイル許可ではありません。基本的に、ファイルは石で書かれているため、変更しようとすると失敗するはずです。Linuxの「不変」ファイル属性は似ています。Windowsでは、アクセス許可にACLのみが使用されるため、icacls.exeなどは、アクセス許可に関する同様のコマンドのみです。
エリックサン


5

このattribコマンドは、非常に基本的なもの(読み取り専用、アーカイブフラグ)に最も近いものです。次に、ACL(アクセス制御リスト)コマンドがありcaclsます。最後になりましたが、Windowsは実際にはPosixに準拠しているため、unixのようなフラグが存在します。Cygwinツールセットをインストールすると、が表示されますchmod。(Unixコマンドに相当するものを探しているので、少し話題から外れているため、Cgygwinをダウンロードしてインストールするのは面白いかもしれません。)



2

WindowsのセキュリティモデルはLinuxとは異なるため、Windowsにはchmodと呼ばれるものはありません。attribコマンドを使用して、オブジェクトのプロパティを変更できます。(しかし、それらはグローバルプロパティに向いています。)


2

私にとっての回避策は、Cygwinをインストールし、そのbinフォルダーをシステムパスに追加することです。その後、コマンドラインで「chmod」を実行すると、動作します。私はその正当性を検証していませんが。


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