Ubah direktori menggunakan sudo

22

Bagaimana cara saya berubah menjadi direktori yang dimiliki oleh root?

Jika aku melakukan: sudo cd RootOwedDir

Saya mendapat: sudo cd: command not found

Jika saya su root

Saya mendapatkan authentication failure:, mungkin karena saya tidak pernah benar-benar membuat akun root yang sebenarnya.

Apa yang saya lakukan salah di sini?

pengguna google tidak dikenal
sumber
Untuk meringkas: "sudo su" dan "sudo sh -sc" cd dir_path "cYrus" (perhatikan parm tambahan) menyelesaikan masalah. Terima kasih kepada semua orang atas bantuan mereka.
pengguna google yang tidak diketahui

Jawaban:

20

Alih-alih mencoba menggunakan sudo -suntuk memulai shell root dan kemudian cukup cdke direktori.
Setelah selesai sebagai root, tekan CtrlDatau ketik exit.

Penting untuk dicatat bahwa sebagai root, seseorang dapat dengan mudah merusak komponen sistem yang penting. Gunakan dengan hati-hati!

oktosiTe
sumber
5

Itu karena cdbukan perintah tetapi fungsi shell built-in; dan sumengharapkan kata sandi root. Cukup gunakan:

sudo su

untuk menjalankan shell dengan hak akses root. Ketik exitatau tekan Ctrl+ Duntuk kembali ke shell sebelumnya setelah selesai.

cYrus
sumber
2
sudo sutidak perlu rumit. sudo -smembuat sudo memulai sebuah shell; atau Anda dapat menjalankan sudo bashatau sudo zshjika Anda tidak ingin harus mengingat -sopsi.
Gilles 'SO- stop being evil'
3
sudo sh -c "cd dir_path"
Wesley Rice
sumber
Ini juga tidak bekerja untuk saya. Mungkin karena direktori yang ingin saya masukkan telah menyematkan ruang dalam nama. Saya telah mencoba variasi pada sudo sh -c "cd my \ path" tanpa hasil. Tidak ada pesan kesalahan itu hanya mengembalikan seolah-olah ia melakukan sesuatu tetapi saya tetap di direktori yang sama. sh diinstal pada sistem saya meskipun saya biasanya menggunakan bash.
pengguna google tidak dikenal
@unknown - Saya selalu berpikir Anda harus menelurkan subkulit untuk menjalankan shell builtins sebagai root, baik dalam bash atau sh lama biasa. Saya bertekad untuk mencari tahu ini.
Wesley Rice
Menambahkan opsi -s di sepanjang -c berhasil. Terima kasih atas usahanya.
pengguna google tidak dikenal
1

Anda juga dapat melakukan sudo vimpada folder, yaitu sudo vim RootOwedDirdan itu akan menampilkan tampilan vim untuk folder, yang akan menampilkan semua file / folder yang ada di folder itu. maka Anda bisa menjalankan apa yang Anda butuhkan dari luar folder, dan sudo seperti biasa.

Menandai
sumber
0

su -lalu ketikkan kata sandi Anda. Anda sekarang bisa langsung cd ke direktori. Ingatlah bahwa Anda sekarang menjadi root jadi ctrl-d sebelum Anda melakukan apa pun yang Anda tidak ingin menjadi root.

Kacang tidak didanai
sumber
Itu menghasilkan kesalahan otentikasi pada Ubuntu.
Wesley Rice
Sangat? Saya tidak pernah memiliki masalah untuk saya.
Unfundednut
2
Untuk OP, tentu saja, karena dia tidak memiliki akun root yang tepat.
Wesley Rice
Menarik, saya sedang menginstal Ubuntu baru, saya tidak pernah 'mengatur' pengguna root namun saya dapat dengan mudah sudo -dan saya adalah dewa sistem.
Unfundednut
Ya, saya baru saja mendapatkan kesalahan otentikasi.
pengguna google tidak diketahui
0

Bagi saya kombinasi sudodan screenberhasil:

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

Perintah ini pertama-tama beralih ke vagrantpengguna. Kemudian sebagai vagrantperubahan direktori /vagrantdan jalankan npm install.

Czerasz
sumber
-2

Cara termudah untuk melakukan ini adalah mengaktifkan akun root dan menggunakan su untuk menjadi root. Ubuntu sangat protektif terhadap akun root karena potensi penyalahgunaan, tetapi terkadang, jauh lebih mudah menggunakan akun root daripada sudo di setiap baris. Perlu diketahui akun apa yang Anda gunakan pada waktu tertentu.

Diambil dari sini :

Buka terminal dan ketik: sudo passwd root . Ketika Anda melihat prompt yang mengatakan "Masukkan kata sandi UNIX baru" , masukkan kata sandi yang Anda inginkan untuk pengguna root dan konfirmasikan.

Pada titik ini, Anda dapat mengubah ke root menggunakan su dan cd ke direktori.

zcid
sumber
-1. Ini penuh kesalahan. Apa hubungannya GDM dengan apa pun? OP ingin 'cd' ke direktori hanya dapat dibaca oleh root. Tidak seorang pun boleh login sebagai root melalui GDM.
Wesley Rice
Poin bagus. Saya tidak sepenuhnya membaca apa yang saya tempel di sana.
zcid
Jauh lebih mudah daripada ini memungkinkan shell root dengan sudo -s seperti yang dikatakan orang lain, dan jauh lebih baik dari ini belajar tentang sudo, alat yang jauh lebih fleksibel dan granular daripada su, jika digunakan dengan baik.
Adriano Varoli Piazza