web-dev-qa-db-ja.com

Windows7でCygwinのアクセス許可を取得する方法

Cygwinをインストールした後、Windows 7アカウントを削除し、同じ名前でアカウントを再作成しました。 Cygwinフォルダー内のファイルを編集したり、新しいフォルダー/ファイルを作成したりするのに問題があります。権限を取り戻すために実行できるコマンドはありますか?

3
Stuart

最初にすべてのファイルの所有権を取得するには、cygwinで takeown を使用する必要がありました。 cygwinを管理者モードで実行しました(右クリック)。 cygdriveはすべてのハードドライブにリンクするため、cygwinディレクトリの所有権を取得するのは難しいので、cygwinフォルダで再帰的に実行しないことをお勧めします。構文は次のとおりです。

takeown/Ffolder/ R

ここで、/ Rは再帰的です。したがって、cygwin内のすべてのファイルとフォルダーに対してこれを実行します(またはcygwinフォルダーで試してみますが、お勧めしません)。

その後、Windowsエクスプローラーでアクセス許可を設定する必要がありました。 「cygwin」フォルダを右クリックし、「セキュリティ」タブに移動して、ユーザー名がトップウィンドウに表示されていることを確認します。また、以前のアカウントであると思われる「不明な」ユーザーも削除しました。そこにいない場合:[編集]-> [追加]-> [名前を入力]をクリックし、[名前の確認]をクリックします。自分が誰だと思うかを見つけて、[OK]をクリックする必要があります。 「フルコントロール」を許可するチェックボックスをクリックすると、すべてのチェックボックスがオンになります。 「OK」をクリックします。

次に、セキュリティタブが表示されているはずです。[詳細設定]-> [権限の変更]-> [ユーザー名を強調表示]-> [編集]-> [許可]の下のすべてのチェックボックスがオンになっていることを確認しますApply tois "This folder、subfolders and files"(チェックボックスはチェックしないでください)。 「OK」を1回押し、「すべての子オブジェクトのアクセス許可を置き換えます...」がチェックされていることを確認し、「OK」、「OK」、「OK」をクリックします。

そして、あなたは行ってもいいはずです。

7
Stuart

そのため、cygwinの管理者と同じようにtakeownを使用することができました。再帰的に変更する必要があるのは、cygdriveではなくcygwin /ディレクトリのみであることに同意します。追加できるのは、所有権を取得すると、管理者としてunixコマンドを発行して権限を変更できることだけです。

chmod 744 *

所有者がrwxを持ち、他のすべての人が読み取り専用になるように権限を変更します。したがって、Windows側をいじくり回すことはありません。

2
Art Edwards

人間の名前は関係ありません。コンピューターは数字で動作します。

この特定のケースでは、番号はセキュリティ識別子、SIDです。

新しいアカウントを作成すると、新しいSIDが付与されました。古いアカウントの古いSIDは再利用されませんでした。 (これはセキュリティの混乱になります。)すべてのファイルとディレクトリは、作成者所有者として古いSIDでマークされています。また、ACLで、作成者の所有者または古いSIDに直接アクセス権を付与する可能性もあります。したがって、oldSIDは、引き続きアクセス権を持ちます。

したがって、たとえば、古いアカウントのSIDがS-1-5-21-90593156-579754539-1338337383-1002の場合、新しいアカウントのSIDはS-1-5-21-90593156-579754539-1338337383-1003などになります。ファイルとディレクトリは、-1002 SIDへの読み取り/書き込み/検索/その他のアクセスを許可しますが、-1003SIDにはアクセス権がありません。

ACLが古いものに直接ではなく、作成者-所有者にアクセスを許可する場合、takeownなどのツールを使用して所有権を取得することはこれに対する1つの答えですSID。作成者-所有者が誰であるかを変更するだけで、作成者-所有者に権限を付与するACLは、適切なSIDに権限を自動的に付与します。問題は、Windows NTでは、所有権を取得する権限が、元の所有者によって目的の新しい所有者に付与される必要があることです。所有権は(特別な特権なしに)譲渡したり、許可なく引き受けたりすることはできません。古いSIDのアカウントを削除したため、その権利を付与する元の所有者は存在しません。したがって、3パス手順を使用する必要があります。まず、あらゆるものの所有権を取得できるアカウント(Administratorsアカウントなど)が所有権を取得する必要があります。次に、そのアカウントは、新しいアカウントに所有権を取得する権限を付与する必要があります。最後に、新しいアカウントはAdministratorsアカウントから所有権を取得する必要があります。

ACLが作成者-所有者を介して間接的にではなく、古いSIDへのアクセスを直接許可する場合、所有権を取得することはこれに対する答えではありません。他の理由。 ACEの古いSIDを新しいSIDに置き換えることはです。これは、リソースキットのsubinaclツールとその/replaceパラメーターを使用して行います。

参考文献

2
JdeBP