প্রশ্ন Bash_profile বা bashrc চলাকালীন লগইন করুন


সুতরাং এর একটি তাদের মধ্যে কিছু টাইপ করা যাক .bashrc যে মাধ্যমে লগ ইন থেকে তাকে (বা তার) বাধা দেয় ssh (উদাহরণস্বরূপ, ফাইলের ত্রুটির কারণে ssh লগইনটি প্রস্থান করে)। এটা নির্বাহ ছাড়া ব্যক্তি লগইন করতে পারে যে কোন উপায় আছে (অথবা .bashrc যেহেতু অন্যটি চালায়), নাকি অন্যথায় ফাইলটি মুছে / নামকরণ / অকার্যকর করবেন?

ধরুন আপনার মেশিনে প্রকৃত অ্যাক্সেস নেই, এবং এটি ssh এর ক্ষমতা সহ একমাত্র ব্যবহারকারী অ্যাকাউন্ট।

রেফারেন্সের জন্য: .bash_profile অন্তর্ভুক্ত .bashrc:

[[ -f ~/.bashrc ]] && . ~/.bashrc

সম্পাদন: আমি চেষ্টা করেছি জিনিস:

ssh user@host "rm ~/.bashrc"

scp nothing user@host:/RAID/home/tom/.bashrc

ssh user@host  "/bin/bash --norc"

সব ত্রুটি দিতে:

/RAID/home/tom/.bashrc: line 16: /usr/local/bin/file: No such file or directory
/RAID/home/tom/.bashrc: line 16: exec: /usr/local/bin/file: cannot execute: No such file or directory

66
2017-12-15 12:03


উত্স


আপনার scp কমান্ড কাজ করবে না কারণ স্কপটি যখন সংযোগ করবে .bashrc পড়বে। সমস্যা এড়ানোর জন্য ভবিষ্যতে আপনি কিছু যোগ করতে পারেন [ -z "$PS1" ] && return শুরুতে ./bashrc। এইভাবে scp প্রথম লাইনের পরে bashrc পার্সিং বন্ধ করে দেবে এবং আপনি জরুরি অবস্থার ক্ষেত্রে এটি ওভাররাইট করতে সক্ষম হবেন। - dalloliogm


উত্তর:


আমি আপনার একমাত্র বিকল্প মনে হয়:

  • অন্য ব্যবহারকারী হিসাবে ssh এবং আপনার অ্যাকাউন্টে su;

  • হোস্টে প্রাসঙ্গিক পরিষেবাদি সক্রিয় থাকলে ftp বা smbclient মত কিছু ব্যবহার করুন;

  • একটি খোলা নেটওয়ার্ক পরিষেবা একটি খোলা দুর্বলতা খুঁজে এবং এটি ব্যবহার করা :)।

  • সমস্যা সমাধানের জন্য একটি অ্যাডমিন পেতে।


18
2017-12-15 14:32



"ধরুন আপনার মেশিনে শারীরিক অ্যাক্সেস নেই, এবং এটি ssh এর ক্ষমতা সহ একমাত্র ব্যবহারকারী অ্যাকাউন্ট।" - Dennis Williamson
আমি এই রুট নিচে যাচ্ছি। আমি এটি খুঁজে বের করার পরে সমাধান পোস্ট করব। Fortunetly, আমি আক্রমণ কয়েক উপায় আছে। - Tom Ritter
আমার সার্ভারে SFTP এ Filezilla ব্যবহার এবং এটি আমাকে সংশোধন করা হয়েছে। ধন্যবাদ soooo অনেক, আপনি আমাকে সংরক্ষিত। আমি আমার .bash_profile এ একটি "প্রস্থান 1" শর্ত দুর্ঘটনা দ্বারা এবং এটি আমাকে hosed। - djangofan


ssh -t username@hostname /bin/sh আমার জন্য কাজ কর.


97
2017-11-12 14:22



এটি ভাল কাজ করে - সহজ এবং একটি শেল সরবরাহ করে যা আপনি সমস্যার সমাধান করতে ব্যবহার করতে পারেন। - MT.
আপনি শুধু আমার জীবন সংরক্ষিত। ধন্যবাদ। - Leo
গুগল ক্রোমে নিরাপদ শেল অ্যাপ্লিকেশন দিয়ে এটি করার চেষ্টা করছেন (chrome.google.com/webstore/detail/secure-shell/...) কিন্তু কমান্ড লাইন আর্গুমেন্টগুলি কীভাবে / কোথায় রাখা যায় তা নির্ধারণ করতে পারবেন না। কোন টিপস? - Benj
এটি আমার জন্য কাজ করে না (যদিও এটি ম্যান পৃষ্ঠা অনুযায়ী করা উচিত)। স্থানীয় হোস্ট উবুন্টু 14.04.1 চালায় এবং এটি রিমোট হোস্টে উবুন্টু 12.04.5। আমি rsync করতে অক্ষম কারণ আমার লগইন শেলটি tcsh এবং রিমোট হোস্টে এটি আবর্জনা মুদ্রণ করে (tcsh: কোনও ফাইল বা ডিরেক্টরি tcsh: "/ u / levy" থেকে শুরু করার চেষ্টা করছে - যা আমাকে বলা হয়েছে কারণ ডিরেক্টরি এনএসএফ মাউন্ট করা হয়)। আমি ভেবেছিলাম আমি লগইন শেলটি বাইপাস করতে সমস্যাটি সমাধান করব তবে এটি কাজ করবে না। - Silvio Levy
আপনার ডিফল্ট শেলটি যদি সিএসএস / টিসিএসএস হয় তবে এটি হবে সর্বদা উৎস আপনার .cshrc/.tcshrc এমনকি অ ইন্টারেক্টিভ শেল জন্য। - Brian Vandenberg


আমি একই সমস্যা ছিল করেছি, এবং যেভাবে এটি সমাধান করতে সক্ষম হয়েছে। আমি সিস্টেমটি অ্যাক্সেস করতে ssh ব্যবহার করেছি, এবং আমি সিস্টেমটিতে লগ ইন হিসাবে Ctrl + c টিপুন এবং ধরে থাকি। তারপর, ~ /। Bashrc পড়া হয়নি, এবং আমি এটি সংশোধন করতে সক্ষম হয়েছিলাম।


27
2018-02-18 22:12



আমি সন্দেহবাদী ছিল, কিন্তু আসলে এই কাজ করে ... - rmobis
এই প্রতিভা হয়! - user1747134
আসলে কাজ করে ... ধন্যবাদ! অন্যান্য পদ্ধতি আমার জন্য কাজ না। - Zzzach...
শুধুমাত্র একটি। bash_profile সঙ্গে ম্যাক, এই আমার জন্য কাজ :) - AnneTheAgile
ওএমজি, আমি ভেবেছিলাম আমি পুরো ইন্টারনেট অনুসন্ধান করেছি, তারপর আমি চেষ্টা করার সিদ্ধান্ত নিলাম, এবং এটিই আমার একমাত্র উপায়! ধন্যবাদ! - Jiahao


আমি ইনস্টল করা একটি নেটওয়ার্ক মনিটরিং সফটওয়্যারের ওয়েব ইন্টারফেসের মাধ্যমে রুট হিসাবে কমান্ডটি চালানোর জন্য একটি প্রকাশিত CVE ব্যবহার করেছি। rm /RAID/home/tom/.bashrc 

তারপর আমি লগইন করতে পারি এবং svn আমি তৈরি করা পরিবর্তনগুলি ফিরিয়ে আনতে পারি।


20
2017-12-19 17:54



যে একই সময়ে উভয় ভয়ঙ্কর এবং failriffic হয়। - MikeyB
@ টম্রিটার: অনুগ্রহপূর্বক ᴄᴠᴇ রেফারেন্সটি প্রদান করুন। - user2284570
এটি ক্যাকটিয়ের একটি অলৌকিক সংস্করণে ছিল, তাই যদি আপনি 8-বছরের পুরনো সফটওয়্যারটি না চালাচ্ছেন তবে মনে হয় না এটি আপনাকে সাহায্য করবে। এবং যদি আপনি 8 বছরের পুরনো সফটওয়্যারটি চালাচ্ছেন তবে আমি আপনাকে সাহায্য করতে পারব না। ;) - Tom Ritter


আপনি একটি) শুরু করতে হবে সজোরে আঘাত বিনা source'ইঙ্গিত করছি ~/.bashrc অথবা ~/.bash_profile এবং খ) যেহেতু এই শেলটি একটি সম্পূর্ণ লগইন শেল হবে না TTY সংযুক্ত, শক্তি SSH একটি সংযুক্ত করা TTY:

ssh -t user@host bash --norc --noprofile

11
2018-02-17 12:51



এটি কাজ করে তবে মনে রাখবেন যে আপনার স্বাভাবিক প্রম্পট হবে না, কেবল একটি খালি স্ক্রিন। একটি চেষ্টা করে দেখুন ls আপনি যে :) নিজেকে সন্তুষ্ট :)। এছাড়াও একটি ব্যবহার করবে মনে রাখবেন dumb শব্দ, তাই আমার জন্য ন্যানো কাজ করে না - Ciprian Tomoiagă


আপনি ভাগ্য আউট করছি।

সব ssh কমান্ড আপনার লগইন শেল চালান। ssh $COMMAND রান $SHELL -c $COMMAND, scp রান $SHELL -c /path/to/sftp-server, প্লেইন ssh শুধু আপনার শেল রান।


6
2017-12-15 13:29



এটি sftp- এর জন্যও সত্য - এমনকি এসএসএইচ সাব-সিস্টেমগুলি শেলের মধ্যেও দৃশ্যত নির্বাহ করা হয়। - lxgr
আমার অভিজ্ঞতায় আপনি সঠিক, যদিও ssh man পৃষ্ঠাটি বলে "যদি কমান্ড নির্দিষ্ট করা থাকে তবে এটি লগইন শেলের পরিবর্তে রিমোট হোস্টে কার্যকর হয়।" তবুও পোস্টারটি সর্বোচ্চ রেটযুক্ত উত্তর (ssh হোস্টনাম / বিন / শ) ব্যবহার করে সমস্যার সমাধান করতে সক্ষম হয়েছিল। কি দেয়? - Silvio Levy
@ সিলভিও, ওপি এর উত্তর হল যে তিনি এসএসএইচ সম্পর্কিত কোনও শোষণ ব্যবহার করেননি। - Tobu
ঠিক। কেউ সর্বোচ্চ রেটিং রেট দিয়ে সাফল্য জানায় এবং আমি তাড়াতাড়ি এটি অপারেটিং সিস্টেম বলে মনে করেন। আমি এটা কাজ করতে ইচ্ছুক - আমার অনুরূপ পরিস্থিতি আছে, যদিও এটা কেবল বিরক্তিকর না বিরক্তিকর। (উপরের সর্বোচ্চ রেটযুক্ত উত্তর অনুসারে আমার মন্তব্য দেখুন।) - Silvio Levy


উপরের কোনও উত্তর ssh এর লগইন শেলটি বাইপাস করতে পারে না। আপনি একটি সম্পূর্ণ কমান্ড লাইন পাস করতে পারেন এবং তাই এটি কমান্ডটি প্রক্রিয়া করার জন্য রিমোট শেল চালায় এবং কমান্ডের জন্য কাজ পরিবেশ সেট করে। যে শেল জন্য কি এবং এটি ইউনিক্স উপায়। আপনি যদি কোনও শেল ছাড়া কিছু চালানোর চেষ্টা করেন তবে আপনার সঙ্গতিপূর্ণ সমস্যাগুলির সব ধরণের থাকবে। একইভাবে, কন্ট্রোল-সি ব্যবহার করে প্রস্থান করার মত একই কাজ করা উচিত যা আপনি এড়িয়ে চলার চেষ্টা করছেন। Bash তার একটি বাগ চলতে থাকে। কেন মানুষ বলে যে মানুষ পৃষ্ঠাটি উদ্ধৃত করার জন্য কিছু ভিন্ন প্রয়োজন বলে মনে করে কারণ এটি আমার ম্যান পৃষ্ঠাতে কোন ধরণের কিছু বলে না।

উপরন্তু, বেশিরভাগ লিনাক্স সিস্টেমে, নির্দিষ্ট / bin / sh নির্দিষ্ট করে না, কারণ এটি কেবল একটি সিমলিংক!

পরীক্ষা করতে চান? আপনি "echo" বিবৃতি যুক্ত করুন। Bashrc এবং .profile এবং দেখুন যা চালানো হয়। আমি করেছিলাম. এখানে ফলাফল।

ssh user@host চালানো হবে। bash_profile ssh user@host /bin/bash .bashrc চালানো হবে, কিন্তু এটি তার অ-ইন্টারেক্টিভ (কোন প্রম্পট) মনে করে। ssh -t user@host /bin/bash একবার .bashrc এক্সিকিউট করে ... একবার লগইন করে, একবার পাস হওয়া কমান্ডের জন্য, তাই কোন শেল সর্বদা প্রথম চালাবে। ssh -T user@host স্পষ্টভাবে -T বা -t নির্দিষ্ট হিসাবে একই নয়।

এখন, যদি আপনি লক্ষ্য করেন, আমার সিস্টেম উভয় ফাইল চলছে না, শুধুমাত্র এক বা অন্য। কিন্তু মূল পোস্টারটিতে একটি লাইন রয়েছে। Bash_profile চলমান। Bashrc, তাই। Bashrc সর্বদা চালিত হবে কোন ব্যাপার না। সেখানে যে লাইন রাখা উচিত ছিল না! যে লাইন বিদ্যমান না হলে, আপনি একটি সমস্যা ছিল না।

আপনি অন্য একটি উপায় খুঁজে পেতে বা একটি অ্যাডমিন খুঁজে পেতে হবে। এই জন্য প্রশাসক কি।


5
2017-07-25 06:52



কিছু ভাল পয়েন্ট; কমান্ড হিসাবে পাস করা কোন এক্সিকিউটেবল আপনি ব্যাখ্যা হিসাবে সাহায্য করতে পারেন, কিন্তু কিছুটা মূল বিন্দু: যদি /bin/sh  করেছিল প্রথম চালানো পেতে, এটা would সাহায্য, কারণ Bash না ভার ~/.bashrc হিসাবে আহ্বান যখন sh। এই উত্তরটি আপনার অন্য উত্তরগুলির একটি সুপারসেট, তাই দয়া করে অন্যটি মুছে দিন। - mklement


কিছুটা এইরকম:

ssh host "/bin/bash --norc"

যা কাজ বলে মনে হচ্ছে, কিন্তু মনে রাখবেন PS1 সেট করা নেই তাই আপনি কোনও প্রম্পট ছাড়াই কমান্ড টাইপ করবেন।

এই অ destructive হচ্ছে সুবিধা আছে।


3
2017-12-15 12:20



এটি কাজ করে না, এটি প্রথমে সফল লগইন করার চেষ্টা করে, তবে লগইন করতে পারে না, এবং তাই ব্যাশ --norc চালানো যাবে না - Tom Ritter


ssh -t user@host "bash --norc --noprofile -c '/bin/rm .bashrc'"

2
2018-04-09 17:16



কিছুই হবে না যখন এটি একটি খুব সীমিত পরিবেশে আমার জন্য কাজ। আমি .bashrc পুরো পথ নির্দিষ্ট করতে ছিল। - zbeekman