কমান্ড লাইন থেকে ত্রুটিগুলি "এই অ্যাক্সেস কন্ট্রোলের তালিকাটি ক্যানোনিকাল আকারে নয়" ঠিক করা


9

আমাদের বেশ কয়েকটি বিকাশকারী ওয়ার্কস্টেশনগুলিতে আমরা আতঙ্কিত হয়ে যাচ্ছি "" এই অ্যাক্সেস নিয়ন্ত্রণের তালিকাটি প্রচলিত আকারে নেই এবং তাই এটি পরিবর্তন করা যায় না। " ত্রুটি যখন আমরা চেষ্টা করি এবং নির্দিষ্ট ফোল্ডারে অনুমতি সেট করি। এই এসিএলগুলি কী কী ক্ষতিগ্রস্ত করছে তা আমরা নির্ধারণ করতে পারিনি।

এই মুহুর্তে, আমি এটি ঠিক করার একমাত্র উপায়টি হ'ল দুর্নীতিগ্রস্থ ফোল্ডার / ফাইলটিতে ডান ক্লিক করুন, বৈশিষ্ট্য নির্বাচন করুন এবং সুরক্ষা ট্যাবটি ক্লিক করুন। উইন্ডোজ তারপরে দুর্নীতি লক্ষ্য করবে এবং এটি সংশোধন করার প্রস্তাব দেবে। আমি এটি পছন্দ করি না কারণ এটি ম্যানুয়াল এবং কোনও ফোল্ডার / ফাইলটি দুর্নীতিগ্রস্ত তা নির্ধারণ করার জন্য ব্যবহারকারীকে কিছু তদন্ত করতে হবে।

এমন কোনও স্ক্রিপ্ট বা প্রোগ্রাম রয়েছে যা স্বয়ংক্রিয়ভাবে এটি করবে? আমি দেখতে পাচ্ছি যে icaclsএর একটি /verifyপ্যারামিটার রয়েছে তবে এটি কেবল আমাকে দেখায় যে কোনও ফাইল / ফোল্ডারের এসিএলগুলি দূষিত। এটি কোনও কিছু ঠিক করার প্রস্তাব দেয় না।

উত্তর:


6

আপনি অন্য একটি ফাইলের এসিএল দিয়ে কর্টেল ফাইলগুলি এসিএলকে ওভাররাইড করতে একটি সাধারণ পাওয়ারশেল স্ক্রিপ্ট ব্যবহার করার চেষ্টা করতে পারেন: get-acl path_to_file_with_known_good_acl | set-acl -path path_to_corrupt_file


অন্যান্য উত্তর দাড়ায় যে আপনি শুধু করতে পারে get-acl path_to_corrupt_file | set-acl -path ptah_to_corrupt_file
বিনকি

5

অবশেষে আমি এটির জন্য একটি স্বয়ংক্রিয় ফিক্সটি সনাক্ত করতে সক্ষম হয়েছি। আপনি যখন পাওয়ারশেলের Set-Aclসিএমডিলেটকে কল করবেন তখন এটি এসিএলগুলি সঠিকভাবে পুনরায় অর্ডার করবে:

$path = C:\Path\To\Item\With\Borked\ACL
$acl = Get-Acl $path
Set-Acl $path $acl

অবশ্যই, এটি যে ডিরেক্টরিটির গণ্ডগোল হয়েছে তার পিতামাতারা হতে পারে, তাই আপনাকে অপরাধীর সন্ধানের জন্য কিছু ট্র্যাভার্সিং করা উচিত। icacls C:\Path\To\Item\With\Suspect\CL /verifyকোনও কিছুর মেরামতের প্রয়োজন কিনা তা বোঝার জন্য ব্যবহার করুন ।

আমাদের পরিবেশে, সাইগউইন সম্ভবত অপরাধী: এটি ডিরেক্টরি তৈরি করার সময় ফাইল সিস্টেমের সুরক্ষা পরিচালনা করতে উইন্ডোজের উপর নির্ভর না করে তাদের উপর পসিক্স-স্টাইলের অনুমতি দিতে পছন্দ করে।


1
কৌতুক জন্য ধন্যবাদ। আমার আজ সমস্যা হয়েছিল এবং ফিক্সিংটি স্বয়ংক্রিয় করতে একটি ছোট পাওয়ারশেল লিখেছিলাম: gist.github.com/vbfox/8fbec5c60b0c16289023
জুলিয়েন

1

আমার জন্য দ্বিগুণ সমস্যা ছিল: নন সিড (ডাব্লুএইচটি?) এর জন্য নন-ক্যানোনিকাল এসিএল + ভ্রান্ত নিয়ম ঘোষণা করা হয়েছে। আমি পরামর্শ দিচ্ছি এটি গিটের সাইগউইন সংস্করণের কারণে হয়েছিল।

যাইহোক, আমার ক্ষেত্রে একই এসিএল পুনরায় প্রয়োগ করার কোনও অর্থ হয়নি:

> Set-Acl $f.FullName (Get-Acl $f.FullName)
> (Get-Acl $f.FullName).AreAccessRulesCanonical
False
> (Get-Acl $f.FullName).GetAccessRules($True, $False, [System.Security.Principal.NTAccount]) | ? {$_.Identityeference.Value -eq "NULL SID" }
FileSystemRights  : WriteExtendedAttributes, ExecuteFile, DeleteSubdirectoriesAndFiles, ReadPermissions
AccessControlType : Deny
IdentityReference : NULL SID
IsInherited       : False
InheritanceFlags  : None
PropagationFlags  : None

সুতরাং আমাকে স্পষ্টভাবে এসএমএল প্রয়োগ করতে হবে ফাইলটি সঠিক হওয়া থেকে, যেমনটি এমএমএসাইডাইডার উল্লেখ করেছেন


1

আইক্যাকলস এটিকেও ঠিক করতে পারে:

c:\> accesschk -q FILE
Error: FILE has a non-canonical DACL:
   Explicit Deny after Explicit Allow

c:\> icacls FILE /t /q /c /reset
Successfully processed 1 files; Failed processing 0 files

c:\> accesschk -q FILE
.. OK

Chmod 0777 FILE এর সমতুল্য অন্যান্য হ্যান্ডি কমান্ডগুলি, ডাবল রুট FILE

  icacls  FILE /t /q /c /grant    :r Everyone:F
  icacls  FILE /t /q /c /grant    :r Everyone:F /inheritance:r
  icacls  FILE /t /q /c /setowner Administrators

1

সাইগউইন ব্যবহার করার সময় এই সমস্যাটি উপস্থিত হয়। এটি উইন্ডোজ এসিএলগুলির শীর্ষে পসেক্স ফাইল অনুমতিগুলি অনুকরণ করার চেষ্টা করে। এটি প্রায়শই নন-ক্যানোনিকাল এসিএলগুলির দিকে পরিচালিত করে, যা আইনী তবে এক্সপ্লোরার এক্সেক্স দ্বারা সঠিকভাবে মোকাবেলা করা যায় না

"Noacl" বিকল্পের সাহায্যে মাউন্ট করে আপনি এই সমস্যাযুক্ত ইমুলেশনটি বন্ধ করতে পারেন, যেমন /etc/fstab:

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

-1
  1. আইআইএসে ইস্যুটি সহ ফোল্ডারে ডান ক্লিক করুন
  2. অনুমতি সম্পাদনা করুন ...
  3. সুরক্ষা ট্যাবটি নির্বাচন করুন
  4. 'সম্পাদনা' বোতামটি ক্লিক করুন এবং সংরক্ষণ করুন (এটি এসিএলটিকে পুনরায় অর্ডার করবে বলে মনে হচ্ছে)
  5. সমস্ত পপআপ নিশ্চিত করুন

এই সমাধানটি ইতিমধ্যে প্রশ্নের মধ্যে উল্লেখ করা হয়েছে। তবে লেখক একটি স্বয়ংক্রিয় সমাধান চান।
স্কাই

এছাড়াও, এগুলি এনটিএফএসের অনুমতি, তাই আইআইএস জড়িত নয়।
স্প্ল্যাটার বিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.