আপনি সুডো হিসাবে চালানো ভুলে যাওয়ার পরে কি ন্যানো থেকে সুডো হিসাবে সংরক্ষণ করা সম্ভব?


49

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


এই প্রশ্নের সাথে মার্জ করার পরামর্শ দেওয়া হয়েছে। মূলত একই সমস্যা, কিন্তু vim। আমি একীভূত হওয়ার বিষয়টি বিবেচনা করছি ... যদিও আমি এই সত্যটিও বিবেচনা করছি যে সুনির্দিষ্ট নির্দিষ্ট নির্দেশাবলী কার্যকর হবে না nano
xenoterracide

1
@ এক্সেনাটারাসাইড - আমি মনে করি ভিম প্রশ্নটি এর একটি বিশেষ ঘটনা, যেহেতু এর আসলেই একটি সমাধান রয়েছে এবং এটি মনে হয় যে সাধারণ মামলার কোনও সমাধান নেই। আমি নিশ্চিত যদিও আপনার উপর নির্ভর করে না। :)
কিট সুন্দে

সুডো টি ফাংশনটি সহজেই কল করার জন্য আপনি নিজের .vimrc এ একটি ম্যাপিং তৈরি করতে পারেন: <pre> <code> "রুট প্রাইভেলিজযুক্ত ফাইলগুলিতে লেখার অনুমতি দেয় cmap w !! w! Sudo tee%> / dev / null </pre> < / কোড>
জেসনওয়ারিয়ান

@ এক্সেনোটেরাকাইড: ন্যানো সম্পর্কে কালেবের উত্তরটি দরকারী, তাই আমি মনে করি আমাদের কেবল ন্যানো সম্পর্কে এটি রাখা উচিত।
মাইকেল

1
@ মিকেল আমি সিদ্ধান্ত নিয়েছি যে মার্জ করা অবৈধ। nanoনয় vim... এবং nanoএর মতো কোনও সমাধান যা vimনিজেরাই উপস্থাপন করেছে।
xenoterracide

উত্তর:


37

না, আপনি কোনও চলমান প্রোগ্রামের অনুমতি দিতে পারবেন না যা এটি শুরু হওয়ার পরে নেই, এটি সেই নিরাপত্তা গর্ত হবে যা 'প্রিভিলেজ এসকেলেশন' নামে পরিচিত ¹

দুটি কাজ আপনি করতে পারেন:

  1. / টিএমপি বা যে কোনও জায়গায় একটি অস্থায়ী ফাইলে সংরক্ষণ করুন, সম্পাদকটি বন্ধ করুন, তারপরে আপনি যে ফাইলটি সম্পাদনা করছেন তাতে টেম্পের ফাইলের বিষয়বস্তু ফেলে দিন। sudo cp $TMPFILE $FILE। নোট করুন যে এটির mvজন্য ফাইলটির মালিকানা এবং অনুমতিগুলির পরিবর্তনের কারণে এটির জন্য এটি ব্যবহার করার জন্য পুনরায় রিকন্ডেন্ড করা হয়নি, আপনি কেবল ফাইল প্লেসহোল্ডার নয় ফাইল ফাইল সামগ্রী প্রতিস্থাপন করতে চান।
  2. Ctrl+ সহ সম্পাদকটিকে পটভূমি করুন z, ফাইলের মালিকানা বা অনুমতিগুলি পরিবর্তন করুন যাতে আপনি এটিতে লিখতে পারেন, তারপরে fgসম্পাদকটিতে ফিরে এসে সংরক্ষণ করতে পারেন। অনুমতিগুলি ঠিক করতে ভুলবেন না!

¹ কিছু সম্পাদক প্রকৃতপক্ষে বিভিন্ন অনুমতি নিয়ে একটি নতুন প্রক্রিয়া চালু করে এবং সংরক্ষণের জন্য ডেটাটি সেই প্রক্রিয়াতে প্রেরণ করে এটি করতে সক্ষম হন। উদাহরণস্বরূপ দেখুন উন্নত সম্পাদকগুলিতে অন্যান্য সমাধানগুলির জন্য এই সম্পর্কিত প্রশ্নটি যা কোনও প্রক্রিয়া পাইপে ফাইল বাফারটি লেখার অনুমতি দেয়। ন্যানো কোনও নতুন প্রক্রিয়া চালু করতে বা অন্যান্য প্রক্রিয়াগুলিতে ডেটা প্রেরণ করার ক্ষমতা রাখে না, তাই এটি এই পার্টি থেকে বাদ যায়।


চমৎকার। ধন্যবাদ কালেব আমি প্রায় 30 মিনিট আগে এই সমস্যায় পড়েছিলাম। :)
Boehj

2
@ কালেব আপনি যা বর্ণনা করেছেন তা করার জন্য :w !sudo tee

@hellojesus ব্রিলিয়ান্ট ট্রিক আপনি যদি উত্তর হিসাবে এটি লেখার বিষয়ে চিন্তা করেন তবে আমি এটিকে আমার থেকে সরাতে পারি। আমি ন্যানো ব্যবহারকারীদের ব্যতীত অন্য লোকেরা এই পরিস্থিতিতে পড়ে এবং নিজেরাই এখানে খুঁজে পেতে পারি।
কালেব

4
এই প্রশ্নটি ন্যানো নিয়ে থাকার কথা। যদি আমরা এখানে ভিম সম্পর্কে উত্তরগুলি সহ শুরু করি, তবে এই প্রশ্নের মূল বক্তব্য কী? আমরা ইতিমধ্যে ভিমের জন্য ভিমের ভিতর থেকে মূল হয়ে উঠছি।
মাইকেল

2
/ Tmp এ একটি অস্থায়ী ফাইলে সংরক্ষণ করুন - ন্যানোর অভ্যন্তরে টেম্পোর ফাইলটিতে কীভাবে সংরক্ষণ করবেন?
আনন্দ রকজ

7

আমি কেবল চেষ্টা করেছি nanoএবং যা আমি সবচেয়ে অবাক করেছিলাম তা হ'ল এটি আপনাকে সতর্কও করে না যে আপনি যখন ফাইল সম্পাদনা করার চেষ্টা শুরু করেন কেবল তখনই ফাইলটি কেবল পঠনযোগ্য। ( আপডেট: দৃশ্যত ন্যানো ২.২ সতর্ক করে না; ২.০ করে না doesn't )

এখানে একটি (বেসিক) স্ক্রিপ্ট এটি করে।

এটি পরীক্ষা করে যদি আপনি ফাইলটি সম্পাদনা করতে পারেন, এবং যদি না করতে পারেন তবে এটি পরিবর্তে মূল হিসাবে "ন্যানো" চালায়।

/ usr / স্থানীয় / বিন / সম্পাদনা (বা or / বিন / সম্পাদনা )

sudo=                       # empty is false, non-empty is true
editor=nano                 # XXX check $EDITOR and $VISUAL

if test -e "$1" && test ! -w "$1"; then
    if test -t 0 && test -t 2; then
        printf "%s is not writable.  Edit with sudo? [y/n] " "$1" 1>&2
        read -n 1
        case $REPLY in
        y|Y)
            sudo=true
            ;;
        n|N)
            sudo=
            ;;
        *)
            printf "\nExpected y or n.  Exiting.\n" 1>&2
            exit 1
            ;;
        esac
    else
        printf "%s is not writable.  Fix the permissions or run \"view\" instead." "$1" 1>&2
        exit 1
    fi
fi

${sudo:+sudo} "$editor" "$1"

এবং একটি কমান্ড আমি কল করেছি viewযাতে আপনি প্রম্পটটি এড়াতে পারবেন যদি আপনি জানেন আপনি কোনও পরিবর্তন করছেন না।

/ ইউএসআর / স্থানীয় / বিন / দর্শন (বা ~ / বিন / দর্শন )

editor=nano
readonlyflag=-v

"$editor" $readonlyflag "$1"

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


সম্পূর্ণ সংস্করণ


1
এটি আসলে আপনাকে সতর্ক করে দেয়। প্রশ্নটি তখন আপনি কোন সংস্করণটি ব্যবহার করছেন তা হবে। এছাড়াও, ডেবিয়ান-ভিত্তিক সিস্টেমগুলিতে আপনার পরামর্শের জন্য বিকল্প সিস্টেমটি আরও উপযুক্ত।
0xC0000022L

2
আপনার রেফারেন্সের জন্য: [ Read ... lines (Warning: No write permission) ]শর্টকাটের জন্য (পর্দার নীচে) সহায়তার দুটি লাইনের উপরে যা প্রদর্শিত হবে। ন্যানো সংস্করণটি 2.2.4।
0xC0000022L

আহ, এটি ন্যানো ২.০ এ সতর্ক করে না, যা আমি পরীক্ষা করে যাচ্ছিলাম।
মাইকেল

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