ভিআইএম: "সুডো উইম বদ_ডিএ"?


20

# ভিমের একজন রিক ব্যবহারকারী আমাকে ভিমের মতো সুডো ব্যবহার না করার জন্য অনুরোধ করেছেন:

sudo vim bad_idea

আমি যখন / var / www / এর মতো অবস্থানগুলিতে জিনিসগুলি করি তখন আমি এটি ছাড়া লিখতে পারি না। সুতরাং ব্যবহার না করা sudo একটি সমস্যা হয়ে ওঠে। অবশ্যই, আমি বিভিন্ন স্থানে যেমন / tmp / এবং তারপরে ডায়ারগুলি / var / www তে অনুলিপি করতে পারি। তবে, আমি একটি সহজ উপায় অনুভূত।

  1. আপনি যদি "সুডো ভিম" না করেন তবে কেন?
  2. যদি হ্যাঁ প্রথম প্রশ্নে, আপনি কীভাবে sudo ব্যবহার না করে সমস্যাগুলি ঘটাবেন?

উত্তর:


35

আমি প্রথম বিভাগের অধীনে পড়ে: sudo vim /var/www/html/some_fileএটি একটি খারাপ ধারণা; এটি লগ নেই এমন শেল পালানোর অনুমতি দেয়। পরিবর্তে, ব্যবহার sudoedit /var/www/html/some_file; একই প্রভাব আছে।


5
"লগ নেই এমন শেল পলায়ন" কী কী? এবং কেন কেবলমাত্র / var / www এ গুরুত্ব দেয় না?
হেসেন

6
vim একটি কমান্ড লাইনে অন্যান্য কমান্ড চালানোর ক্ষমতা রাখে। যাইহোক, ভিম সূডোর মাধ্যমে শুরু হয়েছিল এবং তাই রুট হিসাবে চলমান, এই আদেশগুলির মধ্যে যে কোনওটি রুট সুবিধার সাথে চলবে। এই কমান্ডগুলি "শেল পলায়ন" হিসাবে পরিচিত এবং সুডোর অন্যান্য অনুরোধগুলি যেভাবে লগ হয় না। এবং এটি কেবল / var / www এ সীমাবদ্ধ নয়; আমি যেখানে এটি ব্যবহার করেছি এটি সর্বত্রই। এমনকি আমি আমার বাশার্ক ফাইলটিতে "সুডো ভি" কে "সুডোইডিট" করতে পেরেছি।
কেভিন এম

আমি দেখতে পাচ্ছি আপনি কী পাচ্ছেন এবং সম্মতি দিতে চান তবে স্পষ্ট করে দিন। তার সাধারণ সু এবং সুডো রুট ক্রিয়াকলাপগুলি লগ হচ্ছে কিনা তা আমাদের কোনও ধারণা নেই। "sudo vim" রুট হিসাবে সাবসেল চালানোর অনুমতি দেয় - এটি অনেকটা সঠিক; এই শেলের মধ্যে, "সুডো" রুট কী করতে পারে এবং কী করতে পারে তা নিয়ন্ত্রণ করবে না।
পিবিআর

3
কেভিন, আপনি কীভাবে উপন্যাস "সুডো ভি" থেকে "সুডোইডিট" করতে পারেন? বাশ ম্যানুয়াল থেকে ... "অক্ষর /, met,`, এবং = এবং শেল মেটাচার্যাক্টরগুলির বা উপরে তালিকাভুক্ত অক্ষরগুলির কোনও কোনও উপনামের নামটিতে উপস্থিত নাও হতে পারে "" ... স্পেস হল সেই মেটাচার্যাক্টগুলির মধ্যে একটি যা এর কথা বলছে।
পিবিআর

9
ঠিক আছে, সুতরাং এটি প্রতি সেফের মতো কোনও উপকরণ নয়, তবে এর একই প্রভাব রয়েছে: 'ফাংশন সুডো () {[[$ 1 == vi]] && শিফট && sudoedit "$ @" || কমান্ড sudo "$ @"; } '
কেভিন এম

10

তথ্যসূত্র: /programming/1005/getting-root-perifications-on-a-file-inside-of-vi :

% বর্তমান ফাইলের নামের সাথে প্রতিস্থাপন করা হয়েছে, সুতরাং আপনি এটি ব্যবহার করতে পারেন:

: w! সুডো টি%


আপনি যদি টি ব্যবহার করতে চলেছেন তবে আমি ': w! Sudo tee%> / dev / null' পরামর্শ দিচ্ছি যাতে আপনি পুরো ফাইলটি আপনার কাছে প্রতিধ্বনিত না দেখতে পান। এটি সাধারণত টাইপ করা এবং একই জিনিস অর্জন করার পরিবর্তে আমি সাধারণত ': w! Dd of =%' ব্যবহার করি। অবশ্যই, এটি তখনই যখন আমি sudoedit / sudo -e ব্যবহার করতে ভুলে গেছি।
জামেসান

7

ভিআইএম ব্যবহারকারীদের স্বেচ্ছাসেবী শেল কমান্ড কার্যকর করতে অনুমতি দেয়, তাই অনেকগুলি সিস্টেম অ্যাডমিন ভিডিয়ো sudo সহ ব্যবহার করতে দেয় না।

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

আপনার নিজের বাক্সে এই চূড়ান্তগুলিতে যাওয়ার দরকার কিনা তা বিতর্কযোগ্য।


1
+1 টি। সম্পূর্ণ একমত. sudo vimতারপরে প্রবেশ করুন :!bashএবং রুট হিসাবে আপনার কাছে একটি শেল rvimরয়েছে
ডিবিআর

3
আসলে আপনি যদি ভিডো সুডো করতে পারেন, আপনি সম্ভবত sudo bashবা sudo su -ঠিক করতে পারেন ?
dlamblin

@diamblin সুবিধাগুলি এর চেয়ে আরও সুক্ষ্ম বিবরণ দিয়ে সংগ্রহ করা যেতে পারে, তাই অগত্যা নয়। এজন্য rvim দরকার। "সুডো ভিম" সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে "sudo su -" সমান as একটি ডেবিয়ান বিট্টি-বক্সে যেখানে এক ব্যবহারকারী সিস্টেম অ্যাডমিনিস্ট্রেটর তবে এটি সমস্ত শিক্ষাগত।
রিচার্ড হোসকিনস

উবুন্টু কীভাবে এই সমস্যাটি মোকাবেলা করে? CentOS viলঞ্চে vimতবে রুট viলঞ্চ হিসাবে vi। উবুন্টুতে vimউভয় ক্ষেত্রেই ব্যবহৃত হয় এবং sudo viএটিও চালু হয় vim...
সিডব্লুডে

6

সিস্টেম-প্রশস্ত কনফিগারেশন ফাইলগুলি সম্পাদনা করার সময়, এটি পুরোপুরি ঠিক আছে --- কেবল সর্বদা মনে রাখবেন আপনি মূল এবং এইভাবে সমস্ত ক্ষমতা রয়েছে এবং আপনার আর প্রয়োজনের দরকার না পরে এই সুযোগগুলি বাদ দিন।

বিশেষ ক্ষেত্রে /var/www/, যেমন ওয়েব সার্ভার পৃষ্ঠাগুলিতে, আপনি কিছু মালিকানা / গোষ্ঠী / অনুমতিগুলি পরিবর্তন করার বিষয়ে ভাবতে চাইতে পারেন --- তবে এবং যদি আপনার নির্দিষ্ট সেটআপের উপর নির্ভর করে তবে (একক / একাধিক ব্যবহারকারী, প্রকৃত ওয়েব সার্ভার / কেবল লোকালহোস্ট, গতিশীল) / স্ট্যাটিক ইত্যাদি)


6
প্রকৃতপক্ষে +1 - এটি ওয়েব-সার্ভারের পৃষ্ঠাগুলি পরিচালনা করার সেরা উপায়। আপনার সুবিধাগুলি উন্নত করার পরিবর্তে আপনার সেগুলিতে অ্যাক্সেস রয়েছে তা নিশ্চিত করুন।
বেডওয়াইর

1
-1 যখন সুডোডিট একই কাজটি করবে তখন উন্নত সুবিধাগুলি সহ ভিএম চালানোর কোনও কারণ নেই।
SML

4

এই জাতীয় প্রশ্ন আমার কপালকে ধাক্কা মারে। আমি সুরক্ষার অপর পক্ষে আছি, "গড়পড়তা ব্যক্তিকে দূষিত কার্যকলাপ করতে বাধা দেওয়ার জন্য যদি এটি প্রত্যাশিত বা প্রয়োজন না হয় তবে সুরক্ষার ব্যবহারকারীর অভিজ্ঞতায় হস্তক্ষেপ করা উচিত নয়।"

ভিএম এর সুডো ব্যবহার রোধ করা কেবল একটি ব্যান্ড এইড। যেমন আগেই বলা হয়েছে, কেউ কেবল ব্যবহার করতে পারেন:

sudo su -

অথবা

sudo /bin/bash

অথবা

sudo nano file

অথবা

sudo my_exectuable_text_editor file

ect,

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

কেউ মালিকানা / গোষ্ঠী পরিবর্তন করার কথা বলেছেন। এটি একটি স্টিকি সমস্যা যেমন ওয়েব সার্ভারটি অন্য একজন ব্যবহারকারী হিসাবে চালিত হয় এবং আপনি ফাইলটিতে অনুমতিগুলি পরিবর্তন করেন, এখন হঠাৎ করেই আপনার সাইটটি কাজ করে না। ভাল, স্পষ্টতই যে আপনাকে সাহায্য করবে না। ওয়েব সার্ভারটি যে গ্রুপে চলছে সেভাবে আপনি নিজেকে সেই গোষ্ঠীতে যুক্ত করতে পারেন, তবে গ্রুপটির ফাইলগুলিতে লেখার অ্যাক্সেস না থাকলে আপনার chmod -R g + w * (বা chmod স্বতন্ত্র ফাইল) সম্পাদন করা দরকার যা নাও হতে পারে আপনি কি চান এবং কোনও ফাইল ঝামেলা হতে পারে যদি আপনাকে প্রতিটি ফাইল chmod করতে হয়।

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

যাইহোক আমার দুটি সেন্ট।


2

চলমান ডিরেক্টরি sudo vimপরিবর্তন করবে না $HOME, সুতরাং আপনি রুট অনুমতি নিয়ে ভিম চালাবেন, তবে $HOMEএখনও আপনার সাধারণ ব্যবহারকারীর দিকে ইশারা করছেন।

আপনি যদি প্রথমবারের মতো ভিম চালাচ্ছেন তবে এটি হতে পারে যে ~/.viminfoফাইলটি আপনার সাধারণ ব্যবহারকারী ডিরেক্টরিতে তৈরি করা হয়েছে, তবে রুট অনুমতি নিয়ে with


1
সুডোর উপর নির্ভর করে। আমার ল্যাপটপে sudo vim -c '!echo $HOME' -c qআমার বাড়ির ফোল্ডারটি দেয় তবে এটি আমার সার্ভারে দেয় /root। সেটির কারণটি আমি কেন একবারে নিতে পারি, এটির কারণ হতে পারে কারওর ওএস এক্স অন্যটির জেন্টু, বা /etc/sudoersসেটআপ কীভাবে করা যায় তার সাথে কিছু করতে পারে ।
নিমো 157

আহা! আপনি ঠিক বলেছেন - কেন আমি .viminfoকেবল রুট-অ্যাক্সেসযোগ্য ছিল তা ভেবে আমি এখানেই শেষ হয়েছিল।
আইরাত

1

যদি এটি আপনার নিজস্ব কম্পিউটার ... আমি ডেনিলসনের উল্লেখ করা প্রান্তের কেস বাদে আপনি 'সুডো ভিম' ব্যবহার করতে পারবেন না এমন কোনও কারণ আমি দেখতে পাচ্ছি না - এটি আপনার মূল / মালিকানাধীন f ​​/ .viminfo তৈরি করতে পারে।

যদি তা না হয় - যদি কোনও সিস্টেম অ্যাডমিনিস্ট্রেটররা "ম্যান সুডো": "বেশিরভাগ সিস্টেমে আপনি যা করতে পারেন এবং কী করতে পারেন তা সীমাবদ্ধ করে রাখে তবে সুডোর নেক্সেক কার্যকারিতা সহ শেল পলায়ন রোধ করা সম্ভব details বিশদগুলির জন্য সূডোর (5) ম্যানুয়াল দেখুন See "

সুতরাং এই ক্ষেত্রে, যদি আপনার সিসাদমিন ভিএম এর মধ্য থেকে মূল হিসাবে সাব-শেলগুলি চালনার সম্ভাবনা সম্পর্কে উদ্বিগ্ন হন তবে তারা নেক্সেক ক্ষমতাটি ব্যবহার করতে পারেন। তবে ... প্রাথমিক ক্ষেত্রে ফিরে আসুন - এটি যদি আপনার কম্পিউটার হয় তবে আমার মনে হয় আপনি 'সুডো ভিম' চালাচ্ছেন safe


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