Vi তে লগ ইন করেছেন, পরিবর্তন করেছেন, প্রথমে sudo করতে ভুলে গেছেন - এখন কি


12

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


উত্তর:


11

এই ক্ষেত্রে, আমি ফাইলটি দিয়ে লিখি :w /tmp/tmpfile। তারপরে আমি বাইরে গিয়ে /tmp/tmpfileসুডো রাইটস সহ আমার পুরানো ফাইলটিতে চলে যাই ।


এটিই আমি শেষ করছি, তবে ডাব্লুফুলকের উত্তরটি আমি পছন্দ করি .. যদি আমি কেবল এটির পরের বার মনে করতে পারি! :)
কোয়াকোটা কুইসোট

আমি আশা করি আপনি ফাইলটি সরানোর পরিবর্তে অনুলিপি করেছেন । মুভিং করা হলে ফাইলের মোড (অনুমতিগুলি) এর পরিবর্তে আপনার ডিফল্ট (যা সম্ভবত “66 AND, আপনার" উমাস্ক "এর বিপরীতমুখী অ্যানডেড) দ্বারা প্রতিস্থাপিত হয়, ফাইলের মালিককে আপনার ইউআইডি দিয়ে প্রতিস্থাপন করে (এটি" মূল "ছিল, তাই না?), এবং হার্ড লিঙ্কগুলি বিরতি দেয়। vi
স্কট

কয়েকটি সমস্যা: (১) যদি ফাইলটি গোপনীয় বলে মনে করা হয়, এবং আপনার "উমাস্ক" ২ ((বরং 66 than) হয়, এই পদ্ধতিটি ফাইলটির বিষয়বস্তু অন্যান্য ব্যবহারকারীদের কাছে উন্মুক্ত করে যারা /tmpডিরেক্টরিটি পর্যবেক্ষণ করতে পারে । (২) যদি আপনার সিস্টেমে সত্যই দুষ্ট ব্যবহারকারী থাকে তবে /tmp/tmpfileআপনি এটি লেখার সময় (থেকে vi) এবং আপনি যখন এটি সম্পাদনা করছেন এমন সিস্টেমের কনফিগারেশন ফাইলের অনুলিপি করতে পারে তখন সেগুলির মধ্যে তারা আপনার প্রতিস্থাপন করতে পারে । কেবলমাত্র আপনার অ্যাক্সেস থাকতে পারে এমন একটি ডিরেক্টরিতে অস্থায়ী ফাইলটি রাখা নিরাপদ।
স্কট

40

এসও থেকে :

:w !sudo tee %

আমি এখন আরও ঘন ঘন এটি করার জন্য নিজেকে এই পদ্ধতিটি ব্যবহার করে দেখতে পাই:

:%!sudo tee %

আমি মনে করি এটি কিছুটা স্বজ্ঞাত, যেমনটি আমি জানি যে কী :%!করে, তবে আমার কাছে এই সম্পর্কে কোনও দৃষ্টিভঙ্গি নেই :w !। এছাড়া, এটিও মধ্যে খুবই গুরুত্বপূর্ণ স্থান মিস্ করা খুবই সহজ wএবং !


3
যদি এটি আপনার অন্তর্দৃষ্টিটিকে কোনওরকম সহায়তা করে, মনে রাখবেন viকমান্ডগুলি একাধিক অক্ষর হতে পারে, তাই তাত্ত্বিকভাবে একটি " wfoo" কমান্ড থাকতে পারে , তাই যদি আপনি " foo" নামক কোনও ফাইলে লিখতে চান তবে আপনাকে অবশ্যই " :w foo" বলতে হবে । অর্থাৎ, " :w" এর পরে আপনার একটি স্থান দরকার । যতদূর " :w !" সম্পর্কিত, আপনি জানেন " :!" "ঠিক কী? " :!date" একটি " date" কমান্ড চালায় । সুতরাং " :w !xyz" বাফার লিখেছে, তবে একটি ফাইলের চেয়ে কমান্ডে
স্কট

এটি গ্রহণযোগ্য উত্তর হিসাবে তৈরি করা উচিত কারণ বর্তমান বিদ্যমান উত্তরটি একটি দীর্ঘ দীর্ঘ কাজ, যদিও এটি একটি তাত্ক্ষণিক সমাধান। ওপি?
bschlueter

@ স্কট ব্যাখ্যার জন্য ধন্যবাদ! টি এবং %যদিও কি?
কোডি বাগস্টিন

@ কোডিবাগস্টাইন: হ্যালো (1) ছয় বছরের পুরানো মন্তব্যগুলির লেখকদের পিং করা আপনাকে প্রায়শই কোথাও পায় না, কারণ মানুষ কখনও কখনও চলে যায় এবং কখনও ফিরে আসে না। তবে আমি আমার কম্পিউটারে বেঁধে আছি; আমি সম্ভবত এখানে চিরকাল থাকব। (অথবা হতে পারে না।) (২) আপনি কি গবেষণা করার চেষ্টা করেছেন? "টি" তে তথ্য সন্ধান করা সহজ হওয়া উচিত। ( % আরও শক্ত হতে পারে) (3) ঠিক আছে, আমি আপনাকে কিছুটা সাহায্য করব help  teeএমন একটি প্রোগ্রাম যা আপনাকে একাধিক জায়গায় তথ্য লিখতে দেয়। উদাহরণস্বরূপ, date | tee codyবর্তমান তারিখ এবং সময়টি একটি ফাইলে cody লিখবে… (ਜਾਰੀ)
স্কট

(চালিয়ে যাওয়া) ... এবং টার্মিনাল স্ক্রিনেও।  date | tee cody > bugsteinকল করা একটি ফাইল codyএবং কল করা ফাইলটিতে বর্তমান তারিখ এবং সময় লিখবে bugstein। - বুঝতে পারছিস sudo? এটি আপনাকে অন্য ব্যবহারকারীর সুবিধাসমূহের সাথে একটি কমান্ড চালাতে দেয় (সাধারণত মূল) উদাহরণস্বরূপ, ls /rootসাধারণত ব্যর্থ হবে, কারণ আপনার অ্যাক্সেস নেই  /root। তবে sudo ls /rootকাজ করবে। - ইউনিক্স যেভাবে কাজ করে তার দুর্ভাগ্যজনক পার্শ্ব-প্রতিক্রিয়া হ'ল এটি sudo ls /root > /root/codyব্যর্থ হবে, কারণ আপনার অ্যাক্সেস নেই  /rootএবং তাই আপনি এতে লিখতে পারবেন না /root/cody। … (চালিয়ে যাওয়া)
স্কট

-2

আপনি কি আর একটি টার্মিনাল খুলতে এবং অস্থায়ীভাবে ফাইলটির অ্যাক্সেসের অধিকারগুলি পরিবর্তন করতে পারেন?


1
এটি একটি খারাপ ধারণা। সম্ভবত কোনও বড় সুরক্ষা সমস্যা হতে পারে না, তবে এটি হতে পারে এবং এর থেকে আরও সহজ এবং সহজ সমাধান রয়েছে (যেমন একটি অস্থায়ী ফাইলটিতে লেখার মতো, বা আরও ভাল, :w !sudo tee % solutionwfaulk পোস্ট করেছেন
dbr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.