ফাইলের মালিকানা এবং অনুমতিগুলি (যে জিনিসগুলির সাথে chown
এবং পরিবর্তিত হতে পারে chmod
) এর ব্যাক আপ এবং পুনরুদ্ধার করার কোনও উপায় আছে কি ?
আপনি উইন্ডোতে আইক্যাকলস ব্যবহার করে এটি করতে পারেন ।
অ্যাক্সেস নিয়ন্ত্রণ তালিকা সম্পর্কে কী?
ফাইলের মালিকানা এবং অনুমতিগুলি (যে জিনিসগুলির সাথে chown
এবং পরিবর্তিত হতে পারে chmod
) এর ব্যাক আপ এবং পুনরুদ্ধার করার কোনও উপায় আছে কি ?
আপনি উইন্ডোতে আইক্যাকলস ব্যবহার করে এটি করতে পারেন ।
অ্যাক্সেস নিয়ন্ত্রণ তালিকা সম্পর্কে কী?
উত্তর:
আপনি এসিএল প্যাকেজ থেকে প্রাপ্ত আদেশগুলি দিয়ে এটি করতে পারেন (যা মূলধারার সমস্ত বিতরণে উপলভ্য হওয়া উচিত তবে এটি বেস ইনস্টলেশনের অংশ নাও হতে পারে)। এসিএল উপস্থিত থাকাকালীন তারা এসিএল ব্যাকআপ করে এবং পুনরুদ্ধার করে, তবে এসিএল সমর্থন করে না এমন সিস্টেমে এমনকি তারা প্রাথমিক অনুমতিগুলির জন্যও কাজ করে।
বর্তমান ডিরেক্টরি এবং এর উপ-ডিরেক্টরিগুলিতে পুনরাবৃত্তভাবে অনুমতিগুলি ব্যাক আপ করতে:
getfacl -R . >permissions.facl
অনুমতি পুনরুদ্ধার করতে:
setfacl --restore=permissions.facl
setfacl
ফাইলের উপর ভিত্তি করে আবারও পারছেন না chmod
, হতে পারে সংঘাতের কারণ?
আমি "শেল্ফের বাইরে" এমন কিছু করবে যা সম্পর্কে এটি অবগত নয়। আপনার জন্য এখানে একটি স্ট্রিটার স্ক্রিপ্ট রয়েছে, যদিও এটি প্রাথমিক অনুমতিগুলি পরিচালনা করবে। এটি কোনও বর্ণনার এসিএলগুলি পরিচালনা করে না - তবে আপনার প্রশ্নটি স্পষ্টভাবে এগুলি বাদ দেয়। (এটি প্যাথোলজিকাল ফাইলের নামগুলিতেও ব্যর্থ হবে - যেগুলি শ্বেতস্পেসের সাথে শুরু হয় বা মুদ্রণযোগ্য অক্ষরগুলি ধারণ করে))
অনুমতিগুলি সংরক্ষণ করুন
find * -depth -exec stat --format '%a %u %g %n' {} + >/tmp/save-the-list
অনুমতিগুলি পুনরুদ্ধার করুন
while read PERMS OWNER GROUP FILE
do
chmod "$PERMS" "$FILE"
chown "${OWNER}:${GROUP}" "$FILE"
done </tmp/save-the-list
.htaccess
, gitignore
...
#!/bin/bash
# prepare files
home="/home/exchange"
cd $home
>acl
echo "#!/bin/bash">recovery_acl.sh
echo "cd $home">>recovery_acl.sh
f='./'
# create acl file sorted by dir_level
for i in `seq 0 15`;do
find . -mindepth $i -maxdepth $i -type d -exec getfacl {} +|grep -E '*UTS|file:'>>acl
done
sed -i 's/default\:user/\-dm\ u/g' acl
sed -i 's/default\:group/\-dm\ g/g' acl
sed -i 's/user/\-m\ u/g' acl
sed -i 's/group/\-m\ g/g' acl
sed -i 's/\#\ file\:\ /\.\//g' acl
sed -i 's,\\,\\\\,g' acl
while IFS='' read -r line ; do
# grep dir name
if echo "$line" | grep -q "$f" ; then
dir="$line"
continue
fi
echo setfacl $line '"'$dir'"'>>recovery_acl.sh
# grep non def acl (for files)
if echo "$line" | grep -q '\-m' ; then
echo setfacl $line '"'$dir'"'/*>>recovery_acl.sh
fi
done < "acl"
sed -i "s/\\\134/\\\\\\\134/g" recovery_acl.sh
sed -i "s/\\\040/\\\\ /g" recovery_acl.sh
এই বাশ স্ক্রিপ্টটি কেবল এসিএল ডায়ার পায় (আমার ক্ষেত্রে ফাইলগুলি acls = dir (অভিভাবক) acl) স্ক্রিপ্ট কার্যকর হওয়ার পরে, আরও একটি "পুনরুদ্ধার_একএল.শ" তৈরি করবে।
"এরকম কোনও ফাইল বা ডিরেক্টরি নেই" এর মতো ত্রুটিগুলি পুনরুদ্ধার করার অর্থ দির খালি বা ডাইরনামের সাথে দু'একটি বেশি জায়গা রয়েছে।