সুডোর সাথে মিশ্রণে কি ভিম নিরাপদ?


25

এই লিঙ্কে বর্ণিত হিসাবে sudoগ্রাফিকাল অ্যাপ্লিকেশন যেমন ব্যবহার করা ঠিক হবে না । তদনুসারে, আমি সঙ্গে ব্যবহার প্রবণতা আছে ।geditvimsudo

সম্প্রতি আমি লক্ষ্য করেছি যে উবুন্টু ১.0.০৪ (জেনিয়াল জেরাস) ~/.viminfoএর মোটামুটি তাজা ইনস্টলটিতে আমার মূল মালিকানাধীন ছিল , তাই আমার ভেবে ভাবছিল যে এমনকি ভিমকে গ্রাফিকাল হিসাবে বিবেচনা করা হয় কিনা বা চলাফেরা করার সাথে যদি অন্য কোনও সমস্যা থাকে । এর মাধ্যমে আমার কাছে মালিকানা পরিবর্তন করার পরে:sudo vim

sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +

এবং পরবর্তীকালে চলমান sudo vimআমি ~/.viminfo রুট দ্বারা মালিকানা পেতে অক্ষম ছিল । তবে আমি নিশ্চিত যে এটি সম্প্রতি মূলের মালিকানাধীন ছিল।

এটি প্রার্থনা করা কি অপ্রয়োজনীয় sudo vim?



1
আপনি sudo ছাড়াই :w !sudo tee %
ভিএমও

উত্তর:


22

হ্যাঁ, এটি নিরাপদ।

সমস্যাটি sudo geditকারণ জিইউআই অ্যাপ্লিকেশনগুলি নির্দিষ্ট ফাইলগুলি ব্যবহার করে যেমন ~/.cache/dconf, এবং উন্নত হওয়ার পরে geditসেই ফাইলটি রুটের মালিকানাতে পরিণত হয়। ঠিক আছে, সেই নির্দিষ্ট ফাইলটিতে জিইউআই অ্যাপ্লিকেশনগুলির জন্য ডেস্কটপ সহ ব্যবহারকারী-নির্দিষ্ট সেটিংস রয়েছে, সুতরাং যদি সিস্টেমটি সেটিংগুলি না পড়তে পারে - এটি খারাপ। আইআইআরসি একজন ব্যবহারকারী কোনও নির্দিষ্ট ডেস্কটপ শুরু করতে পারেন না। ব্যবহারকারীর সাম্প্রতিক ফাইলগুলির ডেটাও recently-used.xbelপ্রভাবিত হয়।

অন্যদিকে, ভিমের সমস্যা নেই। এটি কোনও জিইউআই সম্পর্কিত ডেটাবেস ব্যবহার করে না এবং এতে কিছু রাখে না recently-used.xbel। এটি কনসোল-কেবলমাত্র উদ্দেশ্যে তৈরি করা হয়েছিল, যদিও gVim বিদ্যমান রয়েছে। আসলে, কিছু সিস্টেমে উইম আপনার সম্পাদকের একমাত্র পছন্দ। সুতরাং এটি চেয়ে নিরাপদ gedit- র দ্বারা একই সমস্যা ঘটাচ্ছে না শক্তি কর্মদক্ষতার দ্বারা। আপনি এখনও উভয় ক্ষেত্রেই রুট হিসাবে সম্পাদনা করছেন, যাতে আপনি অনুপযুক্ত সম্পাদনায় সমস্যা তৈরি করতে পারেন।

মতে এই ব্লগ পোস্টে :

আপনি যখন প্রথমবার ভিএম ব্যবহার করেন তখন ফাইলটি ~/.viminfoতৈরি হয়ে যায় এবং আপনি যদি sudo vimতাজা সিস্টেমে ইনস্টল করার পরে আপনি প্রথমবার ভিএম ব্যবহার করেন, তবে অনুমতিগুলির ~/.viminfoমধ্যে ডিফল্ট ব্যবহারকারীর পরিবর্তে মালিককে রুট সেট করতে হবে।

লেখক যখন এটি দেখিয়েছেন তাতে সমস্যা হতে পারে তবে জটিল কিছু নেই - কেবল chownফাইলটি নিজের কাছে ফিরিয়ে দিন।

আরো দেখুন:


6
মনে রাখবেন যে ভিআইএম কোনও মাল্টি-ইউজার সিস্টেমে নিরাপদ নয় যেখানে আপনি অন্যান্য ব্যবহারকারীর প্রশাসনিক অনুমতি সীমাবদ্ধ করার চেষ্টা করছেন। কোনও ব্যবহারকারী sudo vimরুট হিসাবে চলমান ভিএম এর অনুলিপি পেতে, তারপরে :!/bin/shএকটি রুট শেল পেতে ব্যবহার করতে পারে ।
চিহ্নিত করুন

3
@ মার্ক এবং কী ব্যবহারকারীকে কেবল করা থেকে বাধা দেয় sudo /bin/sh? ব্যবহারিকভাবে বলতে গেলে যদি ব্যবহারকারীর কাছে ইতিমধ্যে রুট অ্যাক্সেস থাকে তবে তাদের বিস্তৃত কৌশল ব্যবহার করার দরকার নেই।
সের্গেই কলডিয়াজনি

7
/etc/sudoersফাইল। আপনি না প্রয়োজন করতে %wheel ALL=(ALL) ALL- sudoকনফিগারেশন যে এর চেয়ে অনেক বেশী সামান্য পার্থক্য অনুমতি দেয়।
চিহ্নিত করুন

1
@ মার্ক ঠিক আছে, ভাল পয়েন্ট - প্রতিটি সিস্টেমে একই সেটিংস থাকে না।
সের্গেই কোলোডিয়াজনি

আহ ... ফাইল উপস্থিত থাকলেও কি অনুমতি পরিবর্তন হবে? মনে করুন যে আমি কোনও প্রশাসনিক ব্যবহারকারীর অ্যাকাউন্টে হ্যাক করেছি, তবে আমি এর পাসওয়ার্ডটি জানি না (সম্ভবত আমি কোনও শেল খুলতে পেরেছি)। এর অর্থ কি এই যে আমি অনুলিপি /bin/bashকরতে পারি ~/.viminfo, এটিতে একটি sudo vimসেটআপ রেখেছি এবং এটির জন্য এটি চালানোর জন্য অপেক্ষা করা উচিত?
চ্যাটারওন

15

এটি sudoeditঅর্জনে ব্যবহার করাও সম্ভব ; এটি আপনার সম্পাদক হিসাবে আপনার সম্পাদক হিসাবে চলমান, আপনার সম্পাদকটিতে ফাইলটির একটি অস্থায়ী অনুলিপি খুলবে। থেকে man পৃষ্ঠা :

  1. অস্থায়ী অনুলিপিগুলি আমন্ত্রণকারী ব্যবহারকারীর সাথে সেট করে মালিকের সাথে সম্পাদনা করা ফাইলগুলি তৈরি করা হয়।

  2. নীতি দ্বারা নির্দিষ্ট করা সম্পাদকটি অস্থায়ী ফাইলগুলি সম্পাদনা করতে চালিত হয়। Sudoers নীতিটি SUDO_EDITOR, VISUALএবং EDITORপরিবেশের ভেরিয়েবলগুলি (সেই ক্রমে) ব্যবহার করে। কেউ যদি SUDO_EDITOR, VISUALবা EDITORনির্ধারণ করা হয়, প্রথম সম্পাদক তালিকাভুক্ত প্রোগ্রাম sudoers(5)বিকল্প ব্যবহার করা হয়।

  3. যদি সেগুলি সংশোধন করা হয়, অস্থায়ী ফাইলগুলি তাদের মূল স্থানে অনুলিপি করা হয় এবং অস্থায়ী সংস্করণগুলি সরানো হয়।

এটি ভিমের সাথে দুর্দান্ত কাজ করে (এটি আমি সাধারণত করি) এবং আমি ধারণা করি এটি আপনাকে জিডিটও ব্যবহার করতে দেয়। আছে কিছু নিরাপত্তা সীমাবদ্ধতা


4
আপনি যদি রুটের পরিবর্তে নিজের ভিএম কনফিগারেশন ব্যবহার করতে চান তবে এটি আরও ভাল।
নিডজেজেকোব

2
এটিও নিরাপদ যদি আপনি রুট হিসাবে এলোমেলো প্লাগইন কোডটি চালাতে না চান (তবে, প্লাগিনগুলি চলমান হিসাবে আপনি যদি ক্ষতিকারক হন তবে প্রচুর ক্ষয়ক্ষতিও করতে পারেন, সুতরাং আপনি যে প্লাগিনগুলিতে বিশ্বাস করেন না সেগুলি ব্যবহার করবেন না প্রথম স্থান).
কেভিন

2

লিঙ্কটি খুব পুরানো (২০১৩)। এটি গ্রাফিকাল অ্যাপ্লিকেশন ব্যবহার করার জন্য gksudoবা তাদের gksuজন্য প্রস্তাব দেয় কিন্তু সেগুলি উভয়ই অপ্রচলিত হয়ে উঠছে। পরে গৃহীত উত্তরেও sudo -Hযদিও প্রস্তাবিত হয় ।

সম্প্রতি জিজ্ঞাসা উবুন্টু সম্প্রদায়ের সাধারণ sens কমত্যটি হ'ল:

sudo -H gedit /path/to/filename

sudoট্যাব সেটিংস, এক্সটেনশানস, শব্দ মোড়ানো, ফন্টের নাম, ফন্টের আকার ইত্যাদির জন্য প্রোফাইল নেই এমন একমাত্র সমস্যাটি রয়ে গেছে তবে আপনি নিজের ব্যবহারকারীর প্রোফাইল থেকে এটি উত্তরাধিকারী করতে পারেন যদিও এর মতো একটি র‍্যাপার স্ক্রিপ্ট রয়েছে: আমি কীভাবে আমার মূলটিকে সিঙ্ক করতে পারি? আমার ব্যবহারকারী gedit এর পছন্দগুলি সঙ্গে gedit?


2

হ্যাঁ, এটি ব্যবহার করা নিরাপদ sudo vim। আমার যে সমস্যাগুলি আসবে তা হ'ল

  • ফাইলটি ছেড়ে sudo vimদিতে এবং সম্পাদনা করতে সক্ষম হতে পুনরায় খুলতে হবে।

  • মূলটি vimrcডিফল্টরূপে হওয়া, আমার কাস্টমাইজড দরকারী স্টাফ নয়।

আপনি bashrcযদি ফাইলটি সাধারণত সম্পাদনা করতে না পারেন তবে ভিএমকে স্বয়ংক্রিয়ভাবে সুডো করার অনুমতি দিতে আপনি এখানে একটি ফাংশন রাখতে পারেন ।

vim() {
    #only good for auto-sudo. delete if no sudo privileges.
    #If you're not just opening a single file, let's not use this.
    if [[ "$#" -ne 1 ]]; then
        command vim "$@"
    #cases: if we can write to the file, or the file doesn't exist and we can make new files in that directory
    elif [[ -w "$1" || ( -w $(dirname "$1") && ! -f "$1" ) ]]; then
        # \vim or 'vim' only escape aliases, not functions
        command vim "$1"
    else
        sudo env HOME="$HOME" vim -u $HOME/.vimrc "$1"
    fi
}

উবুন্টু উপর sudoডিফল্টরূপে অপরিবর্তিত $HOMEএনভায়রনমেন্ট ভেরিয়েবল, যার মানে sudo vim হবে আপনার কাস্টমাইজড .vimrc ব্যবহার এর মানে হল যে, এবং এটি sudo vimমালিকানা পরিবর্তন করতে হবে ~/.viminfoরুট এবং আপনার কারণ কিছু অসুবিধার: রুট।
মারিউস গেডমিনাস

গৃহীত উত্তরটি সম্পর্কে আপনার সাথে একমত নয় viminfo
জেরেমিসপ্রোফিল

1

Vi কে মূল হিসাবে ব্যবহার করা ভাল fine আপনার নেটওয়ার্ক ইন্টারফেস ফাইল পরিবর্তন করা বা আপনার এসএসডি কনফিগার ফাইলটি সম্পাদনার মতো সুডো বা রুট সুবিধার প্রয়োজন এমন কোনও ফাইল সম্পাদনা করার দরকার পড়তে পারে। গ্রাফিকাল স্টাফের জন্য রুট ব্যবহার করা খারাপ কারণ লোকেরা আইআরসি-র সাথে সংযোগ স্থাপন করবে বা ওয়েবকে মূল হিসাবে ব্রাউজ করবে। এটি করার সময় যদি তারা কোনও ভাইরাস পেয়ে থাকে তবে এতে সম্পূর্ণ রুট অ্যাক্সেস থাকবে।


2
রুট হিসাবে vi ব্যবহারের জন্য কমপক্ষে একটি নির্দিষ্ট ব্যতিক্রম রয়েছে। যে ফাইলটি sudo পাথ (/ etc / sudoers) নিয়ন্ত্রণ করে তা কখনই vi সহ সম্পাদনা করা উচিত নয়। এই ফাইলটির জন্য, ভিসুডো কমান্ডটি ব্যবহার করা উচিত। আপনি কোন ফাইলটি সম্পাদনা করছেন তাও নির্দিষ্ট করে না, এটি কেবল বিশেষ ক্ষেত্রে case
ব্যবহারকারী 628388

1

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

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

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


বিভিন্ন বিকাশকারীকে বিশ্বাস না করার বিষয়ে এই আলোচনাটি কিছুটা অসম্পূর্ণ বলে মনে হচ্ছে; যদি আপনি sudoedit /etc/apt/sources.listকোনও আপসযুক্ত প্লাগইন ইনস্টল করে থাকেন তবে এটি সম্ভবত একটি দূষিত ভাণ্ডার সন্নিবেশ করতে পারে এবং পরের বার আপনি যে কোনওভাবে আপডেট চালিয়ে গেলে রুট অ্যাক্সেস অর্জন করতে পারে। আমি নিশ্চিত যে মূল-সুরক্ষিত ফাইলগুলির একটি দীর্ঘ তালিকা রয়েছে যার জন্য অনুরূপ কিছু প্রযোজ্য। এবং অবশ্যই, প্রতিটি ভাইরাস মূলের প্রয়োজন হয় না; ব্রাউজার এক্সটেনশন ছাড়া আর কেউ আপনার ব্যাঙ্কের বিশদ গ্রহণ করতে পারে।
GKFX
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.