ব্যাক আপ এবং ফাইল অনুমতি পুনরুদ্ধার


17

ফাইলের মালিকানা এবং অনুমতিগুলি (যে জিনিসগুলির সাথে chownএবং পরিবর্তিত হতে পারে chmod) এর ব্যাক আপ এবং পুনরুদ্ধার করার কোনও উপায় আছে কি ?

আপনি উইন্ডোতে আইক্যাকলস ব্যবহার করে এটি করতে পারেন ।

অ্যাক্সেস নিয়ন্ত্রণ তালিকা সম্পর্কে কী?


আপনি যদি কোন ডিস্ট্রো ব্যবহার করছেন তা আপনি যদি বলে থাকেন যেহেতু বিভিন্ন ডিস্ট্রো বিভিন্ন প্যাকেজ পরিচালক ব্যবহার করে।
গ্যারেথ TheRed

@ গ্যারেথ দ্য রেড, এটি কি ব্যবহার করা fs, বা কেবল ডিস্ট্রোর উপর নির্ভর করে?
leeand00

1
আমি সন্দেহ করি এটি ফাইল সিস্টেমের উপর নির্ভর করবে।
গ্যারেথ TheRed

এখনও অবধি কোনও সঠিক উত্তর নেই।
কিট্টিগার্ল

উত্তর:


24

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

বর্তমান ডিরেক্টরি এবং এর উপ-ডিরেক্টরিগুলিতে পুনরাবৃত্তভাবে অনুমতিগুলি ব্যাক আপ করতে:

getfacl -R . >permissions.facl

অনুমতি পুনরুদ্ধার করতে:

setfacl --restore=permissions.facl

হুম। আমার সত্যই এসিএল পড়তে হবে।
রোয়াইমা

1
উত্পন্ন ফাইলটিতে, তারা কি কোনও ডিরেক্টরিতেও আপেক্ষিক?
leeand00

2
@ লীয়ানড00 হ্যাঁ, উত্পন্ন ফাইলটি সর্বদা আপেক্ষিক ফাইলের নাম ব্যবহার করে।
গিলস 7'13 এ '

@ গিলস, ইউনিক্স.স্ট্যাকেক্সেঞ্জার.কম / সেকশনস / 45364517১//২ setfacl ফাইলের উপর ভিত্তি করে আবারও পারছেন না chmod, হতে পারে সংঘাতের কারণ?
কিটিগার্ল

1
@ কিট্টিগার্ল আপনি কী জিজ্ঞেস করছেন তা আমার কোনও ধারণা নেই। "সেটফ্যাকল ফাইলগুলি আবার chmod করতে পারে না" এর অর্থ কী? এটির সাথে ইউনিক্স.স্ট্যাকেক্সেঞ্জাওয়েজ / প্রশ্নগুলি / 45364517১//২ এর কী সম্পর্ক রয়েছে ? কি দ্বন্দ্ব?
গিলস 16'16

2

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

অনুমতিগুলি সংরক্ষণ করুন

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

আপনার অর্থ কী ACL প্যাথলজিকাল ফাইলের নামগুলিতেও ব্যর্থ হবে?
কিটিগার্ল

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

আমি একটি সমস্যা পেয়েছি: খুঁজে পাচ্ছি না .htaccess, gitignore...
কিটিগার্ল

0
#!/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) স্ক্রিপ্ট কার্যকর হওয়ার পরে, আরও একটি "পুনরুদ্ধার_একএল.শ" তৈরি করবে।

"এরকম কোনও ফাইল বা ডিরেক্টরি নেই" এর মতো ত্রুটিগুলি পুনরুদ্ধার করার অর্থ দির খালি বা ডাইরনামের সাথে দু'একটি বেশি জায়গা রয়েছে।

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