ইম্যাক্সের অভ্যন্তরে su / sudo দিয়ে একটি ফাইল খুলুন


174

ধরুন আমি ব্যবহার একটি বিদ্যমান গিয়ে Emacs সেশনে একটি ফাইল খুলতে চান suবা sudo, একটি শেল নিচে ড্রপ এবং না করে sudoeditবা sudo emacs। এটি করার একটি উপায়

C-x C-f /sudo::/path/to/file

তবে এটির জন্য এসএসএইচ দিয়ে একটি ব্যয়বহুল রাউন্ড ট্রিপ দরকার । এর চেয়ে আরও সরল কোন উপায় আছে কি?

[সম্পাদনা] @ জেবিবি ঠিক আছে। আমি অনুরোধ করতে সক্ষম হতে su/ sudoসেভ করার পাশাপাশি খোলার জন্য চাই। সংরক্ষণ করার সময় পুনরায় অনুমোদন করা ঠিক হবে (তবে আদর্শ নয়)। আমি যা খুঁজছি তা হ'ল তারতম্য find-fileএবং save-bufferএটি su/ পাইপ দিয়ে "পাইপ" করা যেতে পারে sudo


5
আমি কেবল লক্ষ করতে চেয়েছিলাম যে ট্রাম্পটি ইমাস্যাক্স 22 এর পরে ডিফল্টরূপে ইনস্টল হয়, তাই বেশিরভাগ লোকেরা সমস্যা ছাড়াই কেবল সিসি সিএফ / সুডো :: / পাথ টু / ফাইল করতে পারেন।
গোলকধাঁধা

1
sudoeditউল্লেখ করার জন্য ধন্যবাদ । খুব দরকারী.
tspang

6
সিসি সিএফ সিএক্স সিএফ হওয়া উচিত?
জেমস.সু

উত্তর:


64

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

বোঝা বাঁচাতে অতিরিক্ত সময় আমি খুঁজে পাইনি either এটি যথেষ্ট দ্রুত, আইএমও।


3
এক সেকেন্ড অপেক্ষা করুন ... কতবার ক্যাশে শেষ হবে?
ক্রিস কনওয়ে

20
ট্রাম্প এসএসএইচ দিয়ে রাউন্ড ট্রিপ করে না , এটি একটি সাব-শেল ব্যবহার করে ।
টেডি

আমার বক্তব্যটি সত্যই ছিল যে আপনি প্রথম খোলার ফাইলটির জন্য অর্থ প্রদান করেছেন, অন্য কারও জন্য নয় not
এফফোরএফোর্ট

62

ট্রাম্প এসএসএইচ দিয়ে রাউন্ড-ট্রিপ সুডো করে না , এটি একটি সাব-শেল ব্যবহার করে । ম্যানুয়ালটি দেখুন: https://www.gnu.org/software/tramp/#Inline- পদ্ধতি

অতএব, আমি আপনাকে ট্রাম্পের সাথে লেগে থাকার পরামর্শ দিচ্ছি।


18

আপনি ব্যবহার করেন তাহলে helm, helm-find-filesসমর্থন সঙ্গে রুট হিসাবে একটি ফাইল খোলার C-c r


এটি কাজ করে, তবে এটি একটি অধিবেশনটিতে অবিচলিত বলে মনে হচ্ছে, পরবর্তীকালে প্রতিটি ফাইলই খোলার পরে রুট হিসাবে সংরক্ষণ করা হয়। ডকুমেন্টেশনে এমন কোনও কিছুই নেই M-x helm-find-files C-c ?যা ব্যবহারকারী হিসাবে খোলার সাধারণ মোডে কীভাবে ফিরে আসবে তা বলে। এরকম C-c rআবার থামবে না।
লিয়াম

@ লিয়াম আমি যখনই এই বৈশিষ্ট্যটি ব্যবহার করি তখন আমি সাধারণ ব্যবহারকারী হিসাবে ফাইলটি খুলতে সক্ষম হয়েছি।
কুদিত

এটি অত্যন্ত বিজোড় - কিছু ফাইল ভাল, কিছু এটি রুট হিসাবে খোলার চেষ্টা করে। আমি ইম্যাক্স কমান্ডের সাহায্যে রুট পাসওয়ার্ডটি মেরেছিলাম sudo -kএবং তারপরে এটি পাসওয়ার্ডের জন্য অনুরোধ জানায়। আমি ইম্যাক্স পুনরায় চালু করেছি এবং এটি সমস্যাটি দূর করতে পারেনি। আমি চারপাশে খনন করে .emacs.dট্র্যাম্পের জন্য কিছু রেফারেন্স পেয়েছি তাই আমি সেগুলি মুছে ফেলেছি। এখন এটি ভাল বলে মনে হচ্ছে তবে আমি এটি মুক্ত কিনা তা নিশ্চিত নয় not
লিয়াম

15

মূল প্রশ্নের মূল উত্তর নয়, তবে ট্র্যাম্প / সুডো রুটটি কিছুটা সহজ করার জন্য এখানে একটি সহায়ক ফাংশন রয়েছে:

(ডিফুন সুডো-ফাইন্ড-ফাইল (ফাইলের নাম)
  "ফাইল সন্ধান করার মতো, তবে ফাইলটি মূল হিসাবে খোলে।"
  (ইন্টারেক্টিভ "এফ সুডো ফাইল সন্ধান করুন:")
  (আসুন ((ট্রাম্প-ফাইল-নাম (কনক্যাট "/ সুডো ::" (প্রসারিত-ফাইল-নাম ফাইলের নাম)))))
    (ফাইল-ট্রাম্প-ফাইল-নাম সন্ধান করুন)))

আমি মনে করি যে ইমাসস স্টার্টার কিটের সাথে কিছু মিল রয়েছে esk-sudo-edit
mrmagooey


4

আপনার উদাহরণটি মোটেও শুরু করে না, আমার ট্রাম্পের সংস্করণ ("২.১.১৩-প্রাক") দিয়ে অন্তত নয়। ফাইল-ফাইল এবং সেভ-বাফার উভয়ই দুর্দান্ত কাজ করে।


আপনার শংসাপত্রগুলি ক্যাশে থাকতে পারে। যখন ট্রাম্প প্রথম শুরু হয়, এটি এসএসএইচ স্টাফের 10-15 সেকেন্ডের মধ্য দিয়ে যায়। (আমিও ২.১.১৩-প্রাক পেয়েছি))
ক্রিস কনওয়ে

তুমি কি নিশ্চিত? মানে, এটি একটি সাবশেল শুরু করা উচিত, তবে লোকালহোস্টের জন্য এসএসএইচ সেশন নয়। সমস্ত ট্রাম্প অটো-স্নিফেজ প্রথমবার চালাতে প্রায় 5 সেকেন্ড সময় নেয়।
jfm3

ঠিক আছে, না, আমি নিশ্চিত নই। আমার বলা উচিত ট্রাম্পের 10-15 সেকেন্ড (সম্ভবত এসএসএইচ) স্টাফ রয়েছে। আমি প্রতি সেফ এসএসএইচ সম্পর্কে উদ্বিগ্ন নই, তবে শুরুতে পিছিয়ে পড়ার বিষয়ে। এই স্টার্টআপ স্টাফটি আর কতক্ষণ অব্যাহত থাকে?
ক্রিস কনওয়ে

প্রথমবার এটি করার পরে কেবল এক সেকেন্ডের বেশি সময় নেওয়া উচিত। এটি, এমনকি যদি আপনি / sudo :: ফাইলটি সংরক্ষণ করেন, বাফারটি মুছুন এবং / sudo :: file2 খুলুন, ফাইল 2 দ্রুত খুলতে হবে। এবং এটি শেলটি উন্মুক্ত রাখে এবং এর সমস্ত ঘ্রাণগুলির ফলাফলকে ক্যাশে করে।
jfm3

তবে শংসাপত্রগুলি কি ক্যাশেড হয়েছে: (1) সেই ইমাকস প্রক্রিয়াটির জন্য বা (2) সমস্ত ইমাস প্রসেসের জন্য? এবং তাদের মেয়াদ শেষ হয়: (ক) যখন ইমাসগুলি বন্ধ হয়, (খ) কিছু নির্দিষ্ট সময়সীমা (ঘন্টা? দিন? সপ্তাহ?), বা (গ) সিস্টেম পুনরায় চালু হওয়ার পরে?
ক্রিস কনওয়ে

3

আমি আপনাকে পরামর্শ আদেশ ব্যবহার করার পরামর্শ দিচ্ছি। আপনার ~ / .emacs এ এই ফাংশনটি রাখুন

(defadvice ido-find-file (after find-file-sudo activate)
  "Find file as root if necessary."
  (unless (and buffer-file-name
               (file-writable-p buffer-file-name))
    (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))

কেবল সুস্পষ্টভাবে নির্দেশ করার জন্য এটির দরকার হয় আপনি ido-find-fileফাইলগুলি সন্ধান করতে ব্যবহার করছেন।
ট্রিপলি

1

(কেবল স্থানীয়ভাবে কাজ করে tra ট্রাম্পের মাধ্যমে সঠিকভাবে কাজ করার জন্য আপডেট করা দরকার)

বার্টনের উত্তরটি একটু বাড়িয়ে দেওয়া:

(defun sudo-find-file (file-name)
"Like find file, but opens the file as root."
(interactive "FSudo Find File: ")
(let ((tramp-file-name (concat "/sudo::" (expand-file-name file-name))))
(find-file tramp-file-name)))


(add-hook 'dired-mode-hook
    (lambda ()
      ;; open current file as sudo 
      (local-set-key (kbd "C-x <M-S-return>") (lambda()
        (interactive)
        (message "!!! SUDO opening %s" (dired-file-name-at-point))
        (sudo-find-file (dired-file-name-at-point))
      ))
    )
)

0

বিতৃষ্ণা। সম্ভবত আপনি Emacs এ একটি শেল খুলতে এবং sudo emacs চালাতে পারেন।

সমস্যাটি হ'ল আপনি সম্ভবত ফাইলটি খুলতে চান না। আপনি এটি পরে সংরক্ষণ করতে সক্ষম হতে চান। সুতরাং আপনার রুট প্রাইভেসগুলি অবিরাম থাকতে হবে, কেবল ফাইলটি খোলার জন্য নয়।

আপনি ইমা্যাকগুলি আপনার উইন্ডো ম্যানেজার হতে চান বলে মনে হচ্ছে। এটি ছাড়া যথেষ্ট ফুলে গেছে। :)


11
হা হা আপনি ফুলে ফুলে বলেছেন। ইমাকসকে বিশাল মনে হত। এখন, জাভা, রুবি এবং সম্ভবত অন্যান্য জিনিসগুলির একটি গাদা এর রান-টাইম পায়ের ছাপগুলির সাথে তুলনা করা, এটি বেশ দুর্বল দেখাচ্ছে। নির্বিশেষে, আমি মনে করি ক্রিসের প্রশ্নটি ইম্যাক্সের একদম বৈধ ব্যবহারে আসে।
jfm3

1
তুমি আমাকে এটা দ্বারা মেরেছ. আমি এই মডেলটি ধারাবাহিকভাবে ব্যবহার করি। লগইন করে আমি সাধারণ স্টাফের জন্য একটি ইমাস সেশন শুরু করি, একটি এসইউ অ্যাক্সেসের জন্য (মূল হিসাবে) এবং এক বা একাধিক সফ্টওয়্যার বিকাশের জন্য (সাধারণত প্রতি প্রকল্পে হয় তবে সর্বদা নয়)। বছরের পর বছর ধরে এটি করা হয়েছে। শুধু কাজ করে।
pajato0

কীভাবে এটি করবেন তা আপনি পরিষ্কার করতে পারেন: "
ইম্যাকসে

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