'Sudo chmod / 777' এর পরে ওবুন্টু 10.04 কীভাবে মেরামত / পুনরুদ্ধার করবেন


12

আরও দেখুন:
কেন "chmod -R 777 /" ধ্বংসাত্মক?

আমি /নির্বাহ করে রুট ডিরেক্টরিতে পুনরাবৃত্তভাবে ফাইলের অনুমতিগুলি পরিবর্তন করেছি sudo chmod -R / 777এবং তার পরে আমার সিস্টেমটি বুট হবে না (আমি প্রচুর "অনুমতি অস্বীকৃত" ত্রুটি পাচ্ছি)।

সাহায্য করুন.


হতে পারে আপনি একটি লাইভ উবুন্টু সিস্টেম ব্যবহার করতে পারেন। আপনি আপনার সাধারণ সিস্টেমে ইনস্টল করা প্যাকেজগুলি ইনস্টল করুন এবং তারপরে 'ক্লোন' করতে কোনও স্ক্রিপ্ট লিখবেন? এই মাত্র একটি ধারণা। এটি অন্য কোনও ভাল যদি হতে পারে অন্য কেউ বলতে পারেন।
দারোকথার

এটি সাবধানে অনুসরণ করুন: পুনরুদ্ধার মোডে খুলুন> মাউন্ট ড্রাইভ> মাউন্টড হার্ড ড্রাইভে সিডি> সিডি খুলুন (আমার জন্য এটি / এমএনটি / [ডিরেক্টরিতে ছিল)) chmod -R 755 ./**> # সিডি ./etc/ SSH / #chmod 600 মডিউল #chmod 644 ssh_config #chmod 644 ssh_host_dsa_key.pub #chmod 644 ssh_host_key.pub #chmod 644 ssh_host_rsa_key.pub #chmod 600 ssh_host_dsa_key #chmod 600 ssh_host_key #chmod 600 ssh_host_rsa_key #chmod 640 sshd_config
Smit প্যাটেলের

উত্তরটি স্ট্যাকএক্সচেঞ্জে পোস্ট করার মতো যথেষ্ট খ্যাতি আমার নেই তবে আমি আপনাকে সহায়তা করতে চেয়েছিলাম।
স্মিত প্যাটেল

উত্তর:


23

আপনি একটি হারিয়ে যাওয়া কারণ খুঁজছেন। আপনার প্রয়োজনীয় ডেটা সংরক্ষণ করুন এবং অপারেটিং সিস্টেমটি পুনরায় ইনস্টল করুন।


হা. আপনি এটি করতে যে পরিমাণ সময় ব্যয় করেছেন তা পাগল হয়ে যাবে এবং আপনি কখনই নিশ্চিতরূপে জানতে পারবেন না যে আপনি এটি সঠিকভাবে পেয়েছেন। পরিষ্কার শুরু করুন, ব্যাকআপ থেকে আপনার ডেটা পুনরুদ্ধার করুন।
ThatGraemeGuy

1
এটি সেই পদক্ষেপগুলির মধ্যে একটি এবং এটি থেকে জিনিসগুলি শিখুন। আপনার সর্বাধিক গুরুত্বপূর্ণ ক্ষেত্রগুলি হ'ল আপনার হোম ফোল্ডার সামগ্রী, আপনার তৈরি করা কনফিগারেশন পরিবর্তনগুলি /etc, /var/wwwওয়েব সার্ভারের সামগ্রী এবং ডাটাবেস। অন্য একটি হার্ড ড্রাইভ ধরুন, আপনার প্রাথমিক হিসাবে এটি সক্ষম করুন এবং ইনস্টল করুন। আপনি এটি স্থানান্তর না করা পর্যন্ত এটি আপনার অন্যান্য ড্রাইভটিকে ব্যাকআপ হিসাবে সংরক্ষণ করে।
ফায়াসকো ল্যাবগুলি

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

5

আমি জানি ডিপিকিজি ডেটাবেসগুলিতে অনুমতি জমা করে এবং আমি নিম্নলিখিত স্ক্রিপ্ট গুগল পেয়েছি যা সাহায্য করতে পারে।

সম্পাদনা: আমি আসলে স্ক্রিপ্টটিতে একটি তাত্ক্ষণিকভাবে নজর রেখেছিলাম এবং দেখে মনে হচ্ছে যেন এটি কিছুটা যাদু অনুপস্থিত যা পার্স থেকে মোডে চলেছে যেমন dpkg -c উদাহরণস্বরূপ "-rw-r - r--" দেয় তবে আপনি চান 0644, আমি এখনই কাজ করছি তাই এই মুহুর্তে রূপান্তরটি করার আমার কাছে সময় আছে কিনা তা নিশ্চিত নয় তবে অন্য কেউ যদি এই বিটটি যোগ করতে না যায় তবে আমি পরে ফিরে আসতে পারি।

এখানে একটি স্ক্রিপ্ট রয়েছে যা দেখতে আকর্ষণীয়

#!/bin/bash
# Restores file permissions for all files on a debian system for which .deb
# packages exist. 
#
# Author: Larry Kagan <me at larrykagan dot com>
# Since 2007-02-20

ARCHIVE_DIR=/var/cache/apt/archives/
PACKAGES=`ls $ARCHIVE_DIR`
cd /

function changePerms()
{
    CHOWN="/bin/chown"
    CHMOD="/bin/chmod"
    PERMS=$1
    OWN=`echo $2 | /usr/bin/tr '/' ':'`
    PATHNAME=$3

    echo -e "$CHOWN $OWN $PATHNAME"
    #`$CHOWN $OWN $PATHNAME`
    #`$CHMOD $MODE $PATHNAME`

}

for PACKAGE in $PACKAGES;
do
    echo -e "Getting information for $PACKAGE\n"
    FILES=`/usr/bin/dpkg -c "${ARCHIVE_DIR}${PACKAGE}"`

    for FILE in "$FILES";
    do
        FILE_DETAILS=`echo "$FILE" | awk '{print $1"\t"$2"\t"$6}'`
        changePerms $FILE_DETAILS
    done
done

এটি 04555 ফাইলগুলির সাথেও ডিল করে?
রিং Ø

4

এটা সম্ভব এই ধরনের একটি নোংরা পরিস্থিতি থেকে ফিরে আসা , সিস্টেম পুনরায় ইনস্টল ছাড়াই। ঠিক আছে, আপনার যদি দ্বৈত বুট সিস্টেম থাকে তবে একটি ইউএসবি কী বা ভাইরাসাল বাক্সে (বা তাই) নতুন করে নতুন সিস্টেমটি চালানো।

আমি আবার একই ধরণের ইস্যুতে দৌড়েছি (আমার লিখিত স্ক্রিপ্টের কিছু বাগ) এবং এটিকে সমাধান করেছি, তবে আপনাকে কিছু বিশেষজ্ঞের সাহায্য চাইতে হবে। খুব সাবধান!

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

MPOINT = / mount / উবুন্টু

প্রথমে আমি আমার ফাইল সিস্টেমগুলি এটির মতো মাউন্ট করেছিলাম (মাউন্ট পয়েন্টগুলি তৈরি করতে ভুলবেন না): মাউন্ট / ডেভ / উবুন্টু / মূল $ এমপিওএনটি মাউন্ট / দেব / উবুন্টু / হোম $ এমপিইএনটি / হোম

তারপরে আমি চলমান সিস্টেম থেকে অগোছালো একটিতে অনুলিপি অনুলিপি করতে নিম্নলিখিত কমান্ডটি চালিয়েছি (আমার সমস্যাটি কেবল কয়েকটি - সমালোচনামূলক - ডিরেক্টরিগুলির মধ্যে ছিল) (আসলে আমার ক্ষেত্রে, আমি ফেডোরার অধীনে ভার্চুয়াল বক্সে একটি উবুন্টু সিস্টেম ইনস্টল করেছি এবং সেখানে অনুমতি পেয়েছে):

/ etc / usr / bin -exec stat - formatt "chmod% a {{MPOINT}% n" {} \; > /tmp/restoreperms.sh

এবং তারপরে আমি পুনঃস্থাপনা.শ স্ক্রিপ্টটি চালাই।

আমি আবার উবুন্টু বুট করতে সক্ষম হয়েছি।

পুনঃস্থাপনা.শ এর সামগ্রী এমন হবে:

(...)
chmod 755 /mount/ubuntu//etc/ppp
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up
chmod 2750 /mount/ubuntu//etc/ppp/peers
chmod 640 /mount/ubuntu//etc/ppp/peers/provider
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up.d
chmod 777 /mount/ubuntu//etc/ppp/resolv.conf
(...)

আমি এটি পরীক্ষা করিনি তবে এটি অবশ্যই মালিক এবং মালিক গ্রুপগুলির জন্য কাজ করবে। কিছুটা এইরকম:

/ etc / usr / bin -exec stat - formatt 'chown% U:% G {{MPOINT}% n' {} \; > /tmp/restoreperms.sh^

(...)
chown root:root /mount/ubuntu//etc/obex-data-server/imaging_capabilities.xml
chown root:root /mount/ubuntu//etc/obex-data-server/capability.xml
chown root:dip /mount/ubuntu//etc/ppp
chown root:root /mount/ubuntu//etc/ppp/ipv6-up
chown root:dip /mount/ubuntu//etc/ppp/peers
chown root:dip /mount/ubuntu//etc/ppp/peers/provider
chown root:root /mount/ubuntu//etc/ppp/ipv6-up.d
chown root:root /mount/ubuntu//etc/ppp/resolv.conf
(...)

অবশ্যই, আপনাকে এখানে যত্ন নিতে হবে যে ইউআইডি এবং জিআইডি উভয় সিস্টেমে একই, তবে সিস্টেম সম্পর্কিত ব্যবহারকারী এবং গোষ্ঠীর ক্ষেত্রে এটি কোনও সমস্যা হওয়া উচিত নয়।

আর কে:

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

0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2

0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2

সম্পাদনা: লিঙ্কগুলি সমর্থন করার জন্য, সম্মিলিত কমান্ডটি হ'ল:

/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}


4

আমি উপর থেকে স্ক্রিপ্টটি পরিবর্তন করেছি এবং এটি দেখতে এরকম দেখাচ্ছে:

#!/bin/bash
# Restores file permissions for all files on a debian system for which .deb
# packages exist. 
#
# Author: Larry Kagan <me at larrykagan dot com>
# Since 2007-02-20

ARCHIVE_DIR=/var/cache/apt/archives/
PACKAGES=`ls $ARCHIVE_DIR`
cd /

function changePerms() {
    CHOWN="/bin/chown"
    CHMOD="/bin/chmod"
    PERMS=`echo $1 | sed -e 's/--x/1/g' -e 's/-w-/2/g' -e 's/-wx/3/g' -e 's/r--/4/g'  -e 's/r-x/5/g' -e 's/rw-/6/g' -e 's/rwx/7/g' -e 's/---/0/g'`
    PERMS=`echo ${PERMS:1}`
    OWN=`echo $2 | /usr/bin/tr '/' '.'`
    PATHNAME=$3
    PATHNAME=`echo ${PATHNAME:1}`

#    echo -e "CHMOD: $CHMOD $PERMS $PATHNAME"    

#    result=`$CHOWN $OWN $PATHNAME`
#    if [ $? -ne 0 ]; then
#   echo -e $result
#        exit 123;
#    fi

    echo -e "CHOWN: $CHMOD $PERMS $PATHNAME"
    result=`$CHMOD $PERMS $PATHNAME`
    if [ $? -ne 0 ]; then
    echo -e $result
    fi
}

for PACKAGE in $PACKAGES;
do
    if [ -d $PACKAGE ]; then
    continue;
    fi
    echo -e "Getting information for $PACKAGE\n"
    FILES=`/usr/bin/dpkg -c "${ARCHIVE_DIR}${PACKAGE}"`

    for FILE in "$FILES";
    do
        #FILE_DETAILS=`echo "$FILE" | awk '{print $1"\t"$2"\t"$6}'`
    echo "$FILE" | awk '{print $1"\t"$2"\t"$6}' | while read line;
        do
            changePerms $line
        done
        #changePerms $FILE_DETAILS
    done
done

3

ব্লুবেনের সাথে সম্মত হোন, কোন ফাইল / ডিরেক্টরিতে কোন অনুমতি দরকার তা বিশ্লেষণ করার চেয়ে কেবল পুনরায় ইনস্টল করা দ্রুত হতে পারে। তবে যদি পুনরায় ইনস্টল করা কোনও বিকল্প না হয় তবে এখানে একটি ধারণা দেওয়া হয়েছে:

  1. অন্য মেশিনে একটি ডিফল্ট উবুন্টু ইনস্টল ইনস্টল করুন
  2. সিস্টেমে প্রতিটি ফাইল / ডিরেক্টরিতে অনুমতি পেতে এই কমান্ডটি চালান: find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
  3. chmod.shভুল অনুমতি নিয়ে কম্পিউটারে ফাইলটি অনুলিপি করুন
  4. ফাইলটি কার্যকর করুন chmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
  5. আশা করি বেশিরভাগ জিনিসই কাজ করে (আমার বিশ্বাস সবকিছুই কাজ করবে না)

2

আমার পোস্টে ERRATUM ব্যবহারকারী ব্যবহারকারী হিসাবে পোস্ট করা হয়েছে 100740: লিঙ্কগুলি সমর্থন করার জন্য, সম্মিলিত কমান্ডটি হ'ল:

/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {} \; -exec /usr/bin/stat --format="/bin/chown -h %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_fileperms.$(/bin/date +%w).sh.bz2

2

আপনি যদি এখনও চালু করতে পারেন তবে /usr/sbin/synapticএটি প্রায়শই স্থিরযোগ্য।

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

এটি যদিও সবকিছু ঠিক নাও পেতে পারে।
অন্য জিনিসটি আপনি যদি প্রবেশ করেন তবে আপনি প্রতিটি ইনস্টল করা প্যাকেজটির জন্য /var/cacheকল করতে পারেন dpkg -x <package name> /, তারপরে কল করতে পারেন dpkg --reconfigure -a। এছাড়াও, আপনি যদি উবুন্টু ব্যবহার করছেন তবে আপনি একটি ডিস্টিগ্রেড আপগ্রেড করতে পারেন যা প্রায়শই প্রচুর ত্রুটি সমাধান করে (ধরে নিবেন যে আপনি ইতিমধ্যে সর্বশেষতম প্রকাশে নেই)। সাধারণত যখন আমি এ জাতীয় ত্রুটিটি ঠিক করার চেষ্টা করছি তখন আমি এই সাধারণ সমাধানগুলি চেষ্টা করি এবং যদি তারা কেবল এটি আবার কাজ না করে, তবে পুনরায় ইনস্টল করার সময়।


-2

লাইভ সিডি থেকে বুট করুন। তারপরে শেল শুরু করুন, তারপরে সুডো-এস। তারপরে chmod 777 / *, তারপরে chmod 600 / etc / passwd। init ব্যর্থ হলে কার্নেল আতঙ্কিত হবে যা ঘটবে যদি / lib / init স্ক্রিপ্টগুলি কার্যকর না করা হয়। লিলো লিনাক্স 1 এর জন্য একক ব্যবহারকারী মোডে বুট করুন এবং উপরে ব্যবহারকারী 102453 এর স্ক্রিপ্টটি চালান। এটি প্রম্পটে সিটেম বুট পায়। তবু এক্স চালানো দরকার।


3
বাহ, এটি আপনার কাছে খুব ভয়ঙ্কর ধারণা।
আশাহীন N00b

-3

755 এর অনুমতি নির্ধারণ করা আমার পক্ষে কাজ করেছিল।

তাই আগে পরীক্ষা করুন

root@ubuntu:/# cd /
root@ubuntu:/# ls -ld

অনুমতিগুলি "drwxr-xr-x" (755) হওয়া উচিত।


1
এটি প্রশ্নের পুনরাবৃত্তির অংশটিকে সম্বোধন করে না।
কাস্পার্ড

না, এবং এটি 4755 2755 একটি 6755 এর সাথেও সহায়তা করে না। যদি এটি কেবল / ইউএসআর হয় (তবে প্রায়শই হয়) আপনি একই রকম সিস্টেমের পুনরাবৃত্তভাবে ls -al করতে পারেন এবং 755 বাদ দিতে পারেন, এটি 1000 টিরও কম ফাইলের একটি তালিকা ছেড়ে দিতে পারে যা ম্যানুয়ালি মোকাবেলা করতে পারে। অবশ্যই এসআরসি এবং হেডারগুলি আসলেই কিছু যায় আসে না।
ম্যাকেনজম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.