একটি কমান্ডের সাহায্যে রুট এবং ব্যবহারকারী উভয় থেকে প্রস্থান করুন


9

আমি "ব্যবহার না করা sudo su -" ইত্যাদি সম্পর্কে জানি কিন্তু আসুন সত্য কথা বলা যাক আমাদের প্রায় সকলেই এটি করে।

সুতরাং, এখানে সমস্যা। আমরা রুট লগইন সক্ষম করতে পারি না, সুতরাং আমাদের ব্যবহারকারীর হিসাবে এসটি করতে হবে তারপরে রুট করতে হবে।
প্রক্রিয়া ট্রি এখানে:

    1  7897  7826  7826 ?           -1 S     1000   0:00 sshd: josh@pts/0
 7897  7898  7898  7898 pts/0     8182 Ss    1000   0:00  \_ -bash
 7898  7990  7990  7898 pts/0     8182 S        0   0:00      \_ sudo su -
 7990  7991  7990  7898 pts/0     8182 S        0   0:00          \_ su -
 7991  7992  7992  7898 pts/0     8182 S        0   0:00              \_  -su
 7992  8182  8182  7898 pts/0     8182 R+       0   0:00                  \_ ps axjf

আমি রুট থেকে প্রস্থান করতে চাই, তারপরে একটি ব্যবহারের সাথে আমার ব্যবহারকারীর কাছ থেকে। এই কাজ করতে একটি উপায় আছে কি?

বিটিডাব্লু প্রস্থান && প্রস্থান কাজ করে না কারণ এটি শেলটি থেকে বেরিয়ে যায় এবং বাকি কমান্ডটি প্রক্রিয়া করে না

josh@ubuntu:~$ sudo su -
root@ubuntu:~# exit && exit
logout
josh@ubuntu:~$

5
"প্রায় আমরা সকলেই এটি করি .." আমি সন্দেহ করি। আমি বেশ কয়েকটি মেশিন বজায় রাখি এবং সমস্ত পাসওয়ার্ড রাখি এবং আমি কখনও ডেবিয়ান ভিত্তিক সিস্টেমে "sudo su" ব্যবহার করি না। এবং আমি আমাদের বেশিরভাগই এটি ব্যবহার না করার প্রত্যাশা করি।
রিনজউইন্ড

1
ব্যবহার করবেন না sudo su, এটি অর্থহীন এবং কেবল একটি অতিরিক্ত প্রক্রিয়া চালু করে। ব্যবহারের sudo -i, যদি আপনি আছে, পরিবর্তে।
টেরডন

আমি sudo -iএকটি রুট শেল পেতে ব্যবহার । Ssh হিসাবে, আপনি রুট লগইনগুলিকে অনুমতি দেওয়ার জন্য ssh কনফিগার করতে পারেন, ব্যক্তিগতভাবে আমি রুটের জন্য "পাসওয়ার্ডবিহীন" বিকল্পগুলি ব্যবহার করি এবং ssh কী এরের কার্বেরোস। এটি রুট অ্যাকাউন্টটিকে পাসওয়ার্ডগুলিতে লক করে রাখে।
প্যান্থার

যা কাজ করে না আমি তা পুরোপুরি পাই না। প্রথমটি exitপ্রস্থান করে su, দ্বিতীয়টি লগআউট করে। আপনি কি করতে চেয়েছিলেন তাই না?
পাইলট 6

1
@ পাইলট 6 আপনি কি কোডটি পরীক্ষা করেছেন ?? আমি সবেমাত্র করেছি এবং এটি কাজ করে না .. আমি যা করতে চাই তা কেবল এটিই .. তবে এটি কাজ করে না ..
জোশুয়া জিতটিং

উত্তর:


9

প্রযুক্তিগতভাবে, কেউ আপনার প্রশ্নের উত্তর দেয়নি। আমি তাদের প্রশংসা করি যে তারা মনে করেন যে তাদের উপায়টি ভাল (সম্ভবত হ'ল) ​​তবে এখানে আরও একটি পদ্ধতি রয়েছে (আপনার যদি su -কিছুটা সময় এবং একই সমস্যা থাকে);

  1. [একটি সিস্টেমে লগইন করুন]
  2. $ sudo su -;exit
  3. # echo "do things"
  4. # exit

আপনি যখন রুট থেকে প্রস্থান করবেন, এটির শেষ কমান্ডটি চালিয়ে যাওয়ার পরে আসল ব্যবহারকারীটি লগ আউটও করবে।

চিয়ার্স!


14

শুধু কর

exec sudo -i

এখন রুট শেলটি ডিফল্টটিকে প্রতিস্থাপন করছে এবং আপনি যখন প্রস্থান করবেন তখন আপনি "উভয়" থেকে বেরিয়ে যাবেন (ভুল শব্দের সাথে, প্রথম শেলটি উপস্থিত থাকা বন্ধ করে দেয় exec)।

দেখুন:

[romano:~] % ssh pern
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-28-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

[romano@pern:~] % exec sudo -i
[sudo] password for romano: 
root@pern:~# whoami
root
root@pern:~# pstree -a -s -l -p -u $$
init,1
  └─sshd,1140 -D
      └─sshd,17450 
          └─sshd,17570,romano  
              └─sudo,17571,root -i
                  └─bash,17665
                      └─pstree,17678 -a -s -l -p -u 17665
root@pern:~# exit
logout
Connection to pern.XXX.XXX.XXX closed.
[romano:~] % 

আমি sshএডেড টার্মিনালটি ব্যবহার করতে এটি প্রচুর ব্যবহার করি : ব্যবহার করুন exec ssh whateverএবং যখন আপনি প্রস্থান করবেন, টার্মিনালটি বন্ধ হবে।


2
সুন্দরভাবে সম্পন্ন!!! ধন্যবাদ! আমাকে আর দুবার প্রস্থান টাইপ করতে হবে না !!
জোশুয়া জিতটিং

চালাক হয়ে গেছে! দুর্দান্ত
আনোয়ার

1

আপনি যখন রুট ব্যবহারকারী হয়ে যাচ্ছেন ঠিক তখন টাইপ করুন ::

sudo -s && exit

আপনি যখন রুট থেকে প্রস্থান করবেন তখন শেল স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। স্থায়ী করার জন্য আপনি এই আদেশটি রফতানি করতে পারেন।

echo "alias mysudo='sudo -s; exit'" >> ~/.bashrc && source ~/.bashrc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.