এসএমএইচ এবং সুডোর মাধ্যমে ইমাক্স দিয়ে ফাইল খুলুন


114

আমি ইম্যাক্সের অভ্যন্তরে একটি ফাইল খুলতে চাই যা সার্ভারে সুডো শক্তি সহ একটি রিমোট সার্ভারে অবস্থিত। আমি ট্রাম্পের মাধ্যমে সুডো সহ স্থানীয় ফাইলগুলি খুলতে পারি:

C-x C-f /sudo::/home/user/file

তবে আমি সার্ভারে সুডো ব্যবহার করতে চাই:

C-x C-f /sudo::user@server/home/user/file

তবে এটি আমার স্থানীয় মেশিনে সুডো শক্তি দেয়, এটি স্থানীয় মেশিনে আমার সুডো পাসওয়ার্ডের জন্য জিজ্ঞাসা করে। সার্ভারে sudo ব্যবহার করার কোন উপায় আছে?

বিটিডাব্লু: সার্ভারে ইমাস ইনস্টল করা নেই


আপনি সরাসরি সার্ভারে রুট হিসাবে আদেশ করতে পারবেন না?
ছমুয়েল বউজজনাহ

2
আমার কাছে সুডোর সুবিধাগুলি সহ একটি ব্যবহারকারী রয়েছে তবে মূল পাসওয়ার্ডটি নয়।
ফার্নান্দো ব্রায়ানো 2

উত্তর:


186

ইমাক্স ২৪.৩ অনুসারে, পুরানো multi:বাক্য গঠনের একটি অ্যানালগ আধুনিক tramp-default-proxies-alistপদ্ধতির শীর্ষে স্তরযুক্ত করা হয়েছে , যার অর্থ আপনি কোনও পূর্বের কনফিগারেশন ছাড়াই আবারও মাল্টি-হপগুলি সম্পাদন করতে পারবেন। বিস্তারিত জানার জন্য, দেখুন:

C-hig (tramp) Ad-hoc multi-hops RET

নতুন সিনট্যাক্সের সাহায্যে প্রতিটি 'হপ' আলাদা করা হয় |। ম্যানুয়ালটিতে উদাহরণটি হ'ল:

C-xC-f /ssh:bird@bastion|ssh:you@remotehost:/path RET

যা প্রথমে এরূপে bird@bastionএবং সেখান থেকে সংযুক্ত হয়you@remotehost:/path

/ su: বা / sudo: দূরবর্তী হোস্টগুলিতে

আপনি এই সিনট্যাক্সটি দূরবর্তী হোস্টে রুট করতে sudo / su করতে (বা অবশ্যই কোনও অন্য ব্যবহারকারী) ব্যবহার করতে পারেন:

C-xC-f /ssh:you@remotehost|sudo:remotehost:/path/to/file RET

গুরুত্বপূর্ণ : হোস্টনামটি স্পষ্টভাবে উল্লেখ করার বিষয়ে নিশ্চিত হন: sudo:remotehost:পরিবর্তে sudo::(নীচে দেখুন)।

এটি এখনও নীচে প্রক্সি প্রক্রিয়া ব্যবহার করে, tramp-default-proxies-alistএখন মানটি অন্তর্ভুক্ত করা উচিত("remotehost" "root" "/ssh:you@remotehost:")

অর্থ /ssh:you@remotehost:যখনই আপনি কোনও ফাইলের অনুরোধ করবেন তখনই প্রক্সিটি ব্যবহার করা হবে root@remotehost

root এই পদ্ধতির জন্য ডিফল্ট ব্যবহারকারী, তবে আপনি অবশ্যই এটির সাথে একটি মূল-নন ব্যবহারকারীতে পরিবর্তন করতে পারেন:

C-xC-f /ssh:you@remotehost|sudo:them@remotehost:/path/to/file RET

সর্বদা দূরবর্তী হোস্টনেম স্পষ্টভাবে উল্লেখ করুন

আপনি সম্ভবত হোস্ট-নেম ব্যবহার sudo::বা su::বাদ দেওয়ার জন্য অভ্যস্ত। আপনি হয় স্থিত স্থানীয় হোস্ট তারপর এই জরিমানা এখনও, কিন্তু তারপর যদি আপনি একটি দূরবর্তী সার্ভারে প্লব হয় আবশ্যক যে হপ জন্য হোস্ট-নেম উল্লেখ - এমনকি যদি এটা পূর্ববর্তী হপ জন্য সমান। সর্বদা ব্যবহার করুন sudo:hostname:বা su:hostname:দূরবর্তী হোস্টগুলির সাথে।

ফাঁদ এখানে যে sudo:: নেই আসলে কাজ করে বলে মনে হচ্ছে - কিন্তু যখন আপনি যে গতিশীল প্রক্সি এন্ট্রির জন্য HOST কে হোস্টনাম তুমি হবে না সম্ভূত হোস্ট কে আপনার সঙ্গে সংযুক্ত বদলে যায়। এটি কেবল বিভ্রান্তিকর দেখা দেবে না (যেমন ভুল হোস্টটি ফাইল পাথগুলিতে প্রদর্শিত হবে), তবে এর অর্থ এটিও হবে যে sudo::আপনার লোকালহোস্টে পরবর্তী যে কোনও প্রচেষ্টা ব্যবহারের পরিবর্তে এটি রিমোট সার্ভারে প্রক্সি করা হবে! (এবং যদি আপনি দ্বিতীয় সার্ভারে একই জিনিসটি তৈরি করেন, এর ফলে আরও সমস্যা দেখা দেয় তবে প্রক্সিটিও সম্ভবত অনুমানযোগ্য হবে)।

সংক্ষেপে, ::যখন আপনি মাল্টি-হপ ব্যবহার করবেন না !


4
এবং এখন wikemacs পাশাপাশি wikemacs.org/index.php/TRAMP এ যুক্ত করা হয়েছে । ধন্যবাদ ফিলস, এটি দুর্দান্ত কাজ করে।
এহভিন্স

1
আমি এই উত্তরটি সবেমাত্র পেয়েছি এবং এটি দুর্দান্ত কাজ করে ... ব্যতীত, আমি .ssh / কনফিগারেশন ফাইলে সংক্ষিপ্তরূপে হোস্টনাম সংজ্ঞায়িত করেছি। আমি যখন টাইপ করি তখন আমি /sudo:hostname:/etc/hostsযা প্রত্যাশা করি তা পেয়ে যাই, তবে আমি যখন টাইপ করি তখন /sudo:abbrev:/etc/hosts"হোস্ট সংক্ষিপ্তটি দূরবর্তী হোস্টের মতো দেখায়, সুডো কেবল স্থানীয় হোস্ট ব্যবহার করতে পারে" বার্তাটি পাই। এটি কি স্থিরযোগ্য?
রজারেল

2
রোজারেল: আমার এন্ট্রিও রয়েছে .ssh/configএবং /ssh:abbrev|sudo:abbrev:/etc/hostsআমার হোস্ট নেম সংক্ষিপ্তসার ব্যবহার করে আমার কোনও সমস্যা হয় না । দেখে মনে হচ্ছে আপনি প্রথমে হোস্টের দিকে প্রত্যাশা করছেন না।
ফিল্ডস

@ ফিলস সম্ভবত আমার এটি একটি নতুন প্রশ্ন হিসাবে পোস্ট করা উচিত। তবে: আমার কনফিগারেশন ফাইলটি দেখতে হোস্ট আর ইউজার আরলিপসেট হোস্টনাম ওডলিনাক্স আইডেন্টিটি ফাইল। / .Ssh / id-rsa.pub এবং আমার উপস্থিতি tramp-default-proxies-alistসঠিক বলে মনে হচ্ছে। তবুও আমি উপরে বর্ণিত আচরণটি বহাল রয়েছে। আমার কনফিগারেশন ফাইলটি কি কোনওভাবে ভুল?
রজারেল

এটা এখনও আমার কাছে পরিষ্কার কিনা হয় না আসলে ব্যবহার করার চেষ্টা /sudo:abbrev:/etc/hostsহিসাবে আপনি আপনার আগের মন্তব্যে করা (যা ভুল, যেমন উল্লিখিত), অথবা আপনি সঠিক ব্যবহার করছেন /ssh:abbrev|sudo:abbrev:/etc/hosts। আপনার ssh কনফিগারেশন ফাইলটি সম্ভবত ভাল, কারণ আপনি স্পষ্টতই অন্যথায় এটি ব্যবহার করতে পারেন।
ফিলস

21

আপডেট : যদিও এই উত্তরটি মূল সমস্যার সমাধান করেছে, এটি ইমাস 20 বা 21 এর জন্য লেখা হয়েছিল। ইমাস 24 এর জন্য, আমি আপনাকে ফিলসের উত্তরটি ব্যবহার করার পরামর্শ দিচ্ছি কারণ এটি আরও ব্যাখ্যা সরবরাহ করে এবং তা আপ টু ডেট।


আমি মনে করি ট্রাম্পে মাল্টি-হপ ফাইলের নামগুলি আপনি যা খুঁজছেন তা।

প্রথম হপটি এসএসএস এবং দ্বিতীয়টি সুডো হবে।


আপডেট: ইমাসের সাম্প্রতিক সংস্করণগুলি প্রক্সি ব্যবহার করে একাধিক হুপকে সমর্থন করে:

(add-to-list 'tramp-default-proxies-alist ("my-sudo-alias" nil "/ssh:user@ssh-host"))

তারপরে খোলার মাধ্যমে প্রার্থনা করুন:

/sudo:my-sudo-alias:file-on-ssh-host

এটি সমাধানটির মতো মনে হচ্ছে তবে আমি পেয়েছি: "মাল্টি পদ্ধতিটি আর সমর্থিত নয়" আপনি কি আমাকে আপডেট ম্যানুয়ালটিতে নির্দেশ করতে পারেন?
ফার্নান্দো ব্রায়ানো

এমএক্স তথ্য, সিএস ট্রাম্প :) আপনার একটি জাল হোস্টকে আপনার সুডোর টার্গেট হিসাবে সংজ্ঞায়িত করতে হবে এবং এটি ট্র্যাম্প-ডিফল্ট-প্রক্সি-অ্যালিস্টে যুক্ত করতে হতে পারে।
ডেভ বাচার

2
আমি এটি আমার কনফিগারেশনে চলতে পারি না (ত্রুটি 255?), কিন্তু .emacs কাজ করে নিম্নলিখিত লাইনটি কাজ করে: / ssh: ব্যবহারকারীর @ ssh- হোস্ট: "))))
মো

আপডেট হওয়া জবাবটি "সাম্প্রতিক" সংজ্ঞায়িত করে না, অবৈধ এলিস্প রয়েছে এবং আপনি এটি সংশোধন করার পরেও কাজ করেন না। আপডেট হওয়া উত্তরের এক বছর পরে আমি প্রকাশিত ইম্যাকের স্থিতিশীল সংস্করণে আছি।
মাইকেল উলফ

1
বাস্তব 2014 / 24.3 হিসাবে উত্তর, নিম্নলিখিত উত্তর ব্যবহার "অ্যাড-হক বহু-হপস"
TomRoche

7

নির্বাচিত উত্তরটি নিয়ে আমার কিছুটা সমস্যা হয়েছিল। যাইহোক, আমি এই লাইনে .emacs এ যুক্ত করার পরে এটি কাজ করেছিল:

(add-to-list 'tramp-default-proxies-alist '(".*" "\\`root\\'" "/ssh:%h:"))

এবং তারপরে নিম্নলিখিতটি কার্যকর করা হয়েছে:

/sudo:ssh-host:file-on-ssh-host

এটি কিছুটা বিভ্রান্তিকর ছিল কারণ এক পর্যায়ে আমাকে "মূল" পাসওয়ার্ডের জন্য অনুরোধ করা হয়েছিল, কিন্তু আমার ব্যবহারকারীর পাসওয়ার্ড প্রবেশ করায় আমাকে অ্যাক্সেস দেওয়া হয়েছিল। এটি সর্বজনীনভাবে নেটওয়ার্কের সমস্ত হোস্টেও কাজ করে। এছাড়াও, আমি এখনও এটি রুট না হওয়ার জন্য এটি করতে পারি:

/ssh:ssh-host:file-on-ssh-host


3
এটি আমার পক্ষে কাজ করছিল না। দেখে মনে হচ্ছে উবুন্টুতে, কমপক্ষে ইমাসের 23.2.1 সংস্করণ এবং ট্রাম্পের 2.1.18-23.2 সংস্করণ সহ এটি কাজ করে না। যদিও এটি কাজ করে: তথ্য.সালোমোনসন
গাইজকা

(সেট-ডিফল্ট 'tramp-default-proxies-alist (quot (("। *" "\` মূল \\ "" / ssh:% h: "))))
গাইজকা

1
আমি উপরের যে কোনও সমাধান কাজ করতে সক্ষম নই (অ্যাড-টু-লিস্ট বা সেট-ডিফল্ট)। প্রথমটি ইমাক্সকে প্রারম্ভকালে শ্বাসরোধ করে তোলে এবং দ্বিতীয়টি আমাকে "হোস্ট abc.xyz.com' looks like a remote host, সুডো" কেবল স্থানীয় হোস্টটি ব্যবহার করতে পারে "" /sudo:abc.xyz.com: "তে দ্বিতীয় কলোন প্রবেশ করার সাথে সাথেই। ধারনা? উবুন্টু 10.04 এলটিএসে ইমাস 23.1.1।
সাব্রেভল্ফি

3

থেকে পদব্রজে ভ্রমণ বহু-হপস কনফিগারেশন ওয়েবপেজ

 (add-to-list 'tramp-default-proxies-alist
                   '(nil "\\`root\\'" "/ssh:%h:"))
      (add-to-list 'tramp-default-proxies-alist
                   '((regexp-quote (system-name)) nil nil))

তারপরে যে কোনও

C-x C-f /sudo:remote-host:/file

ইমো চালু থাকলেও দূরবর্তী মেশিনে একই ব্যবহারকারীর লগ-ইন করার পরে sudo ব্যবহার করে ফাইলটি খুলবে ।


-12

আপনাকে প্রথমে সার্ভারে প্রবেশ করতে হবে, তারপরে আপনাকে স্থানীয়ভাবে ইমাস চালাতে হবে।

অথবা আপনি no_root_squash দিয়ে এনএফএস ব্যবহার করতে পারেন, বা আপনি emacs সার্ভার / ক্লায়েন্ট দিয়ে চেষ্টা করতে পারেন, যদিও কি ঘটতে পারে তার সম্পর্কে আমার কোনও ধারণা নেই (নিজেই ইম্যাকগুলি ব্যবহার করবেন না)


আমি চেষ্টা করেছি, তবে নিয়মিত ব্যবহারকারী হিসাবে মাউন্ট করার সময় আমি এসএসএফএস দিয়ে রুট হিসাবে ফাইলগুলি অ্যাক্সেস করতে পারি না। আমার ধারণা এটি একটি সেটআপ সমস্যা।
ড্যান অ্যান্ড্রিটা 16

হাসান যেমন উল্লেখ করেছেন, No_root_squash যত্ন সহ ব্যবহার করা উচিত।
ড্যান অ্যান্ড্রিটা

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