Ketika saya mencoba untuk beralih ke root menggunakan sudo -i
saya mendapatkan kesalahan /var/tmp/sclDvf3Vx: line 8: -i: command not found
... Namun, su -
berfungsi yang saya akan terus menggunakan. Saya sama sekali bukan administrator sistem linux sehingga lingkungan masih cukup berkabut bagi saya. Saya kira pertanyaan saya adalah:
- Mengapa kesalahan itu dilemparkan?
- Apa perbedaan antara kedua perintah?
- Mengapa Anda menggunakan salah satunya?
Memperbarui:
Saya menggunakan versi CentOS: CentOS rilis 6.6 (Final)
Ini adalah output dari beberapa perintah yang saya diminta untuk menjalankan, dalam komentar di bawah ini.
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
Memperbarui:
Ini ditambahkan ke pengguna non-root saya ~ / .bashrc beberapa waktu lalu karena saya membutuhkan dukungan C ++ 11. Ketika saya berkomentar, re-ssh in, saya dapat menjalankan sudo -i baik-baik saja tanpa kesalahan.
if [ "$(gcc -dumpversion)" != "4.7.2" ]; then
scl enable devtoolset-1.1 bash
fi
linux
centos
command-line
sudo
th3v0id
sumber
sumber
-
itu benar-benar (ASCII)-
?alias
untuk Andasudo
?sudo
yang bukan perintah sudo normal. Mengingat tidak mengerti opsi sudo, itu jelas bukan hal standar. Baik gunakan/usr/bin/sudo
atau tanyakan administrator lokal Anda (yang seharusnya benar-benar memberi tahu Anda tentang ini ketika mereka memberi Anda kekuatan sudo).Jawaban:
Dari komentar dan penyelidikan lebih lanjut Anda sepertinya devtoolset Anda sedang memodifikasi
PATH
. Sayangnya itu termasuk apa yang tampak sebagai perintah sudo yang lama atau rusak.Ada baiknya mencoba memodifikasi devtoolset termasuk dalam Anda
.bashrc
seperti ini, dan kemudian masuk kembali:sumber
Daripada bekerja di sekitar pembungkus sudo rusak SCL, saya hanya menonaktifkannya.
Menambahkan baris baru ke akhir file memastikan tidak akan ditimpa oleh pembaruan Yum berikutnya, dan kemudian saya membuatnya tidak dapat dieksekusi.
Saya menginstal toolset dev untuk mendapatkan versi modern gcc dan c ++ di RHEL 6, dan tidak memiliki masalah mengkompilasi kode tanpa sudo palsu dalam campuran.
sumber
Saya memiliki masalah serupa dengan
sudo -E
flag setelah menggunakan devtoolset-4. Anda tidak boleh menambahkan-E
flag dalam kasus itu, karena ditambahkan dalam/opt/rh/devtoolset-4/root/usr/bin/sudo
skrip wrapper, berikut isinya:sumber