sudo -i একটি ত্রুটি প্রদান করে


11

আমি যখন sudo -iত্রুটিটি ব্যবহার করে রুটে স্যুইচ করার চেষ্টা করি তখন /var/tmp/sclDvf3Vx: line 8: -i: command not found... তবুও, su -আমি যা ব্যবহার করব তা কাজ করে works আমি কোনও উপায়ে কোনও লিনাক্স সিস্টেম প্রশাসক না তাই পরিবেশ এখনও আমার কাছে বেশ কুয়াশাচ্ছন্ন। আমার ধারণা আমার প্রশ্নগুলি হ'ল:

  1. ত্রুটি কেন নিক্ষেপ করা হচ্ছে?
  2. দুটি আদেশের মধ্যে পার্থক্য কী?
  3. কেন আপনি একে অপরকে ব্যবহার করবেন?

হালনাগাদ:

আমি CentOS সংস্করণটি ব্যবহার করছি: CentOS রিলিজ Fin..6 (চূড়ান্ত)

এখানে নীচের মন্তব্যে আমাকে কমান্ড চালানোর জন্য জিজ্ঞাসা করা হয়েছে from

  • type sudo : sudo is /opt/centos/devtoolset-1.1/root/usr/bin/sudo
  • sudo -V : /var/tmp/sclIU7gkA: line 8: -V: command not found
  • grep'^root:' /etc/passwd : root:x:0:0:root:/root:/bin/bash

হালনাগাদ:

এটি আমার অ-রুট ব্যবহারকারীর ~ / .bashrc এ কিছুক্ষণ আগে যুক্ত হয়েছিল কারণ আমার সি ++ 11 সমর্থন প্রয়োজন। আমি যখন এটি মন্তব্য করি, পুনরায় প্রবেশ করি, আমি কোনও ত্রুটি ছাড়াই সুডো-আই চালাতে পারি।

if [ "$(gcc -dumpversion)" != "4.7.2" ]; then 
  scl enable devtoolset-1.1 bash
fi

আপনি কি নিশ্চিত যে -এটি সত্যিই একটি (এএসসিআইআই) -?
স্টিল্ড্রাইভার

1
কেউ কি aliasআপনার sudoআদেশের জন্য একটি তৈরি করেছে ?
গ্যারেথ দ্য রেড 27'15

2
ঠিক আছে, সুতরাং আপনার কাছে একটি স্থানীয় কমান্ড রয়েছে sudoযা সাধারণ সুডো কমান্ড নয়। প্রদত্ত যে এটি সুডোর বিকল্পগুলি বুঝতে পারে না, এটি কোনও স্ট্যান্ডার্ড জিনিস নয়। হয় /usr/bin/sudoআপনার স্থানীয় প্রশাসকদের ব্যবহার করুন বা জিজ্ঞাসা করুন (যখন তারা আপনাকে সুডো ক্ষমতা দিয়েছে তখন কে সত্যই আপনাকে এ সম্পর্কে জানিয়েছিল)।
গিলস 23'8

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

3
আমি মনে করি না যে এটি মোটেও জন্মেছে, এটি আরএইচ বিকাশকারী সরঞ্জামসেটের সেন্টোসের সংস্করণ : people.centos.org/tru/devtools-1.1 । সম্ভবত ইন্টারনেটে কেউ এই সম্পর্কে জানেন।
মাইকেল হোমার

উত্তর:


6

মন্তব্য এবং আপনার আরও তদন্ত থেকে দেখে মনে হচ্ছে আপনার ডিভলটলসটি পরিবর্তন করছে PATH। দুর্ভাগ্যক্রমে এতে পুরানো বা ভাঙা সুডো কমান্ড বলে মনে হয়।

আপনার .bashrcমতো ডিভোটোলসেটটি অন্তর্ভুক্ত করে সংশোধন করার চেষ্টা করা উচিত এবং তারপরে আবার লগ ইন করুন:

if [ "$(gcc -dumpversion)" != "4.7.2" ]; then 
  scl enable devtoolset-1.1 bash
  PATH=/usr/bin:$PATH    # We need a working sudo
fi

2

এসসিএলের ভাঙা সুডো মোড়কের চারপাশে কাজ করার পরিবর্তে, আমি কেবল এটি অক্ষম করেছি।

echo >> /opt/rh/devtoolset-2/root/usr/bin/sudo
chmod -x /opt/rh/devtoolset-2/root/usr/bin/sudo

ফাইলের শেষে একটি নতুন লাইন যুক্ত করা নিশ্চিত করে যে এটি পরবর্তী ইউম আপডেটগুলির দ্বারা ওভাররাইট করা হবে না এবং তারপরে আমি কেবল এটিকে কার্যকর করা যায় না।

আমি আরএইচইএল 6 তে জিসিসি এবং সি ++ এর আধুনিক সংস্করণগুলি পেতে ডেভ টুলসটি ইনস্টল করেছি এবং মিশ্রণে ভুয়া সুডো ছাড়া কোড সংকলনের কোনও সমস্যা নেই।


1

sudo -Eডিভোটোলসেট -4 ব্যবহার করার পরে পতাকা নিয়ে আমার একই রকম সমস্যা ছিল । আপনার -Eক্ষেত্রে পতাকাটি যুক্ত করা উচিত নয় , কারণ এটি /opt/rh/devtoolset-4/root/usr/bin/sudoমোড়ক স্ক্রিপ্টে যুক্ত করা হয়েছে, এখানে এর লিখিত সামগ্রী রয়েছে:

#! /bin/sh
# TODO: parse & pass-through sudo options from $@
sudo_options="-E"

for arg in "$@"
do
   case "$arg" in
    *\'*)
      arg= ;;
   esac
   cmd_options="$cmd_options '$arg'" 
done
exec /usr/bin/sudo $sudo_options LD_LIBRARY_PATH=$LD_LIBRARY_PATH PATH=$PATH scl enable devtoolset-4 "$cmd_options"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.