উইন্ডোজ তাজা পুনরায় ইনস্টল করার পরে কীভাবে পুরানো ব্যবহারকারীর এসআইডিটিকে নতুন ব্যবহারকারীর সাথে এনটিএফএস ফাইলের মালিকানা এবং অনুমতি থাকতে হবে?


18

প্রতিবার আমরা যখন উইন্ডোজ পুনরায় ইনস্টল করলাম, এটি ব্যবহারকারীর জন্য একটি নতুন এসআইডি তৈরি করবে এমনকি ব্যবহারকারীর নামটি আগের মতই থাকবে

// example (not real SID format, just show the problem)
user   SID
--------------------
liuyan S-old-501    // old SID before reinstall
liuyan S-new-501    // new SID after  reinstall

পুনরায় ইনস্টল করার পরে বিরক্তিকর সমস্যাটি হ'ল এনটিএফএস ফাইল ওভারশিপ এবং হার্ড ড্রাইভ ডিস্কের অনুমতিগুলি এখনও পুরানো ব্যবহারকারীর এসআইডি-র সাথে যুক্ত।

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

caclsকমান্ড লাইন টুল, যেমন অবস্থায় ব্যবহার করা যাবে না কারণ ফাইলটি করে নতুন ব্যবহারকারীর জন্যে তাই এটি ব্যর্থ হবে অ্যাক্সেস অস্বীকৃত হয় ত্রুটি। এবং এটি মালিকানা পরিবর্তন করতে পারে না।

এমনকি যদি আমি সরঞ্জামের মাধ্যমে owর্ধ্বতনটি পরিবর্তন করতে পারি SubInACL, caclsতবে পুরানো ব্যবহারকারীর অনুমতি সরাতে পারব না কারণ পুরানো ব্যবহারকারীর নতুন ইনস্টলেশনটিতে উপস্থিত নেই এবং পুরানো ব্যবহারকারীর অনুমতিটি নতুন ব্যবহারকারীর কাছে অনুলিপি করতে পারে না ।

সুতরাং, আমরা কি নতুনভাবে নতুন ইনস্টল করা উইন্ডোজে পুরানো ব্যবহারকারীর এসআইডিটিকে নতুন ব্যবহারকারীর সাথে আবদ্ধ করতে পারি?

নমুনা পরীক্ষা ব্যাচ

@echo off
REM Additional tools used in this script
REM PsGetSid http://technet.microsoft.com/en-us/sysinternals/bb897417
REM SubInACL http://www.microsoft.com/en-us/download/details.aspx?id=23510
REM
REM make sure these tools are added into PATH

set account=MyUserAccount
set password=long-password
set dir=test
set file=test.txt

echo Creating user [%account%] with password [%password%]...
pause
net user %account% %password% /add
psgetsid %account%
echo Done !

echo Making directory [%dir%] ...
pause
mkdir %dir%
dir %dir%* /q
echo Done !

echo Changing permissions of directory [%dir%]: only [%account%] and [%UserDomain%\%UserName%] has full access permission...
pause
cacls %dir% /G %account%:F
cacls %dir% /E /G %UserDomain%\%UserName%:F
dir %dir%* /q
cacls %dir%
echo Done !

echo Changing ownership of directory [%dir%] to [%account%]...
pause
subinacl /file %dir% /setowner=%account%
dir %dir%* /q
echo Done !

echo RunAs [%account%] user to write a file [%file%] in directory [%dir%]...
pause
runas /noprofile /env /user:%account% "cmd /k echo some text %DATE% %TIME% > %dir%\%file%"
dir %dir% /q
echo Done !

echo Deleting and Recreating user [%account%] (reinstall simulation) ...
pause
net user %account% /delete
net user %account% %password% /add
psgetsid %account%
echo Done ! %account% is recreated, it has a new SID now

echo Now, use this "same" account [%account%] to access [%dir%], it will failed with "Access is denied"
pause
runas /noprofile /env /user:%account% "cmd /k cacls %dir%"
REM runas /noprofile /env /user:%account% "cmd /k type %dir%\%file%"
echo Done !

echo Changing ownership of directory [%dir%] to NEW [%account%]...
pause
subinacl /file %dir% /setowner=%account%
dir %dir%* /q
cacls %dir%
echo Done ! As you can see, "Account Domain not found" is actually the OLD [%account%] user

echo Deleting user [%account%] ...
pause
net user %account% /delete
echo Done !

echo Deleting directory [%dir%]...
pause
rmdir %dir% /s /q
echo Done !

আপনি কেবল ফাইলটির মালিকানা দেওয়ার বিরুদ্ধে কেন?
রামহাউন্ড

যদি কেবল মালিকানা নেওয়া হয় তবে কিছু ফাইল সিল অ্যাক্সেসযোগ্য নয় কারণ অনুমতিটি এখনও পুরানো ব্যবহারকারীর এসআইডিতে সেট করা আছে।
লিউইয়ান 研

@ লিউইয়ান 刘 研 তবে আপনি মালিকানা নেওয়ার পরে আপনার সমস্ত অনুমতি সম্পাদনা করতে সক্ষম হওয়া উচিত।
ইসজি

1
@ ইসজিআরিরিওরআইজনি, সত্য যদি কিছু ফাইল থাকে এবং সমস্ত অনুমতি পিতামাতার কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়। তবে যখন প্রচুর ফাইল থাকে এবং প্রায় প্রতিটি ফাইলের স্বতন্ত্র অনুমতি সেটিং থাকে (যেমন সাইগউইনের অধীনে থাকা ফাইলগুলি), তখন আমি কেবল সেগুলি একই অনুমতিতে প্রতিস্থাপন করতে পারি না।
লিউইয়ান 研

উত্তর:


11

আপনি এতিম এসআইডিগুলিকে নতুন করে প্রতিস্থাপন করতে সেট্যাকল ব্যবহার করতে পারেন । উদাহরণস্বরূপ, নতুনটির সাথে আপনার পুরানো এসআইডি প্রতিস্থাপন করতে নিম্নলিখিতটি ব্যবহার করুন:

setacl.exe -on C:\ 
           -ot file 
           -actn trustee -trst "n1:S-old-501;n2:S-new-501;ta:repltrst" 
           -rec cont

দুর্দান্ত সরঞ্জাম! এটাই আমি চেয়েছিলাম (যদিও এটি ব্যবহারকারী এসআইডি পরিবর্তন করে না)! এটি এখন আমার অবশ্যই তালিকায় আছে! যাইহোক, একটি অপ্রত্যাশিত আচরণ আছে: যখন আমি আমার পরীক্ষার ব্যাচের পরে এটি চেষ্টা করেছি (ডিরেক্টরি এবং ফাইলটি মোছা না করে), ডিরেক্টরিটি তার পিতামাতার কাছ থেকে অনুমতি লাভ করবে, এটি অযাচিত কিছু। দ্রষ্টব্য: ডিরেক্টরিটির এসিএল caclsকমান্ডের মাধ্যমে পরিবর্তন করা হয়েছে , তবে এটি উত্তরাধিকারের পতাকাটি পরিবর্তিত হয়নি।
লিউইয়ান 研

আমি মনে করি এটি সি হতে হবে: \\ সেট্যাকএল ডক্স অনুসারে।
সিডিএমকে

@ সিডিএমকেয়ে: নিশ্চিত নন এটি বলে: "যদি অবজেক্টের নামটি একটি ব্যাকস্ল্যাশ দিয়ে শেষ হয় এবং আপনি এটিকে উদ্ধৃতিতে আবদ্ধ করেন, তবে অন্য ব্যাকস্ল্যাশ দিয়ে শেষ ব্যাকস্ল্যাশ এড়াতে ভুলবেন না"। তবে আমি এটাকে উদ্ধৃত করে দিচ্ছি না।
ড্যানিয়েল গেহরিগার

1
2016-01-08 পর্যন্ত, ট্রাস্টি অ্যাকশন বা মালিক সেট করা নেই তার জন্য একটি নির্দিষ্ট করা প্রয়োজন । লাইন করা প্রয়োজন । তারপরেও, সাইগউইন গ্রুপটির জন্য যা কিছু গ্রহণ করবে তা সঠিকভাবে সেট করে না (এখনও "অজানা" হিসাবে প্রদর্শিত হয় )। -actn trustee-actn trustee -trst "n1:S-old-501;n2:S-new-501;ta:repltrst;w:d,s,o,g"/bin/ls -l
মাকেন

1
@ ম্যাকয়েন: সাইগউইন নিয়ে আমারও একই সমস্যা ছিল এবং এটি সমাধান করেছি -rec cont_objকারণ এটি ফাইলগুলিতে পরিবর্তনগুলি প্রয়োগ করে।
ডেনিস বাখারেভ

3
  1. কম্পিউটারের এসআইডি পরিবর্তন বা স্থানীয় অ্যাকাউন্টের এসআইডি পরিবর্তন করার কোনও সমর্থিত উপায় নেই যাতে এটি কম্পিউটারের সাথে মেলে না।

  2. আপনার প্রশ্নের শব্দটি বোঝায় যে আপনি প্রায়শই অপারেটিং সিস্টেমটি পুনরায় ইনস্টল করছেন, যা আপনার করার দরকার নেই। যদি আপনার বারবার সমস্যা হয় যার জন্য পুনরায় ইনস্টল করার প্রয়োজন হয়, তবে প্রতিবার পুনরায় ইনস্টল করার চেয়ে তাদের কী কারণ ঘটছে তা নির্ধারণ করা মূল্যবান হতে পারে।

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

  4. সম্পূর্ণ ফোল্ডার গাছের জন্য অনুমতিগুলি পুনরায় সেট করার একটি ধীর তবে সহজ উপায় হ'ল এটি অনুলিপি করা:

    robocopy /e /b c:\original-folder c:\new-copy
    

    এটি অবশ্যই একটি উন্নত কমান্ড প্রম্পট থেকে চালানো উচিত। / B বিকল্পটি ব্যবহার করা ফাইলগুলিতে সুরক্ষা বাইপাস করার জন্য রোবকপি ব্যবহারের সুযোগ পুনরুদ্ধার করে। c:\new-copyআপনি শুরু করার পূর্বে তৈরি করুন এবং অনুমতিগুলি পছন্দসই হিসাবে সেট করুন।

    আসল ফোল্ডারটি অনুলিপি করার পরে আপনি এই আদেশটি ব্যবহার করতে পারেন:

    robocopy /e /b c:\empty-folder c:\original-folder
    

সুতরাং যদি আমি অ্যাডমিন হিসাবে এটি করি এবং কোনও পুরানো ব্যবহারকারীর অবস্থান থেকে নতুন ব্যবহারকারীর স্থানে ফাইলগুলি অনুলিপি করি তবে এটি কি প্রতিটি ব্যবহারকারীকে নতুন ব্যবহারকারীকে টেগ করার জন্য tge এসইউডি সেট করে ?.
trusktr

@trusktr: আপনি কী বোঝাতে চান তা নির্ভর করে; ফাইলগুলির মালিকানা প্রশাসক ব্যবহারকারীকে দেওয়া হয়েছে যারা অনুলিপি করছেন, তবে অনুমতিগুলি প্যারেন্ট ফোল্ডার থেকে উত্তরাধিকার সূত্রে প্রাপ্ত। সাধারণত, কেবল অনুমতিগুলি বিবেচনা করে।
হ্যারি জনস্টন

আসলে মূলত আমি যা করতে চাই তা হ'ল পুরানো উইন্ডোজ সি থেকে সমস্ত ফাইল অনুলিপি করা: \ ব্যবহারকারীরা \ ব্যবহারকারীর নাম থেকে একটি নতুন উইন্ডোজ সি: \ ব্যবহারকারী \ ব্যবহারকারীর নাম লোকেশন যাতে এই ফাইলগুলি সমস্ত নতুন ব্যবহারকারীর অন্তর্ভুক্ত (কেবল একটি নতুন উইন্ডোতে স্থানান্তরিত) মূলত ইনস্টল করুন, এবং আমার পূর্ববর্তী ব্যবহারকারীর ফাইলগুলি রাখতে চান)। এটি পুরানো এবং নতুন উভয় ক্ষেত্রে একই ব্যবহারকারীর নাম। অ্যাডমিন হিসাবে এক জায়গা থেকে অন্য জায়গায় ফাইলগুলির একটি অনুলিপি কৌতুক করবে? ফাইলগুলির এসআইডিগুলি নতুন ব্যবহারকারীর এসআইডি-তে পরিবর্তিত হবে কিনা তা জানতে আগ্রহী কারণ আমি লিনাক্স ব্যবহারকারীর কাছে ফাইল এসআইডি ম্যাপ করতে এনটিএফএস -3 জি ব্যবহার করছি।
trusktr

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

আদর্শভাবে আমি আমার <ব্যবহারকারী নাম> ফোল্ডারটিকে একটি পৃথক পার্টিশনে রাখতে (পুরানো উইন্ডোজ পার্টিশন) রাখতে চাই এবং সেই <ব্যবহারকারীর> ফোল্ডারটিকে আমার নতুন উইন্ডোজের <ব্যবহারকারীর> ব্যবহারকারীর জন্য হোম ফোল্ডারটি তৈরি করতে চাই।
trusktr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.