Deskripsi masalah
Saat menjalankan perintah su untuk berganti ke pengguna lain, Anda menerima pesan error berikut:
su: failed to execute /bin/bash: Permission deniedPenyebab
Error ini terjadi karena izin pada path ke /bin/bash tidak mencukupi. Secara khusus, file tersebut atau direktori induknya tidak memiliki izin eksekusi (x). Tanpa izin tersebut, sistem tidak dapat mengakses file eksekusi /bin/bash untuk memulai sesi shell baru.
Solusi
Login ke instance ECS.
Buka ECS console - Instance. Pada bilah navigasi atas, pilih wilayah dan resource group yang dituju.
Buka halaman detail instans yang dituju. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login ke terminal.
Periksa dan hapus atribut immutable.
Jika sebuah file memiliki atribut immutable atau append-only, Anda tidak dapat mengubah izinnya sampai atribut tersebut dihapus.
Periksa atribut immutable.
sudo lsattr /bin/bash# Menunjukkan bahwa atribut 'a' (append-only) telah diatur ----a---------e------ /bin/bash # Menunjukkan bahwa atribut 'i' (immutable) telah diatur ----i---------e------ /bin/bash # Menunjukkan bahwa kedua atribut telah diatur ----ia--------e------ /bin/bashJika output menampilkan flag
iataua, lanjutkan ke langkah berikutnya untuk menghapusnya. Jika tidak, lewati ke Langkah 3.Hapus atribut tersebut.
# Hapus atribut 'i' sudo chattr -i /bin/bash # Hapus atribut 'a' sudo chattr -a /bin/bashSetelah atribut dihapus, lanjutkan ke langkah berikutnya.
Verifikasi dan perbaiki izin path.
Periksa seluruh izin path.
sudo namei -l /bin/bashf: /bin/bash dr-xr-xr-x root root / dr-xr-xr-x root root bin -r-xr-xr-x root root bashSetiap direktori dalam path harus memiliki izin eksekusi (
x). Jika output menunjukkan ada izin yang hilang, perbaiki segera. Jika tidak, lanjutkan ke Langkah 4.Sebagai contoh, jika izin untuk direktori root (
/) adalahdr--r--r--, ini menandakan bahwa izin eksekusi tidak ada dan perlu diperbaiki.Terapkan izin yang benar menggunakan
chmod.# Perbaiki izin untuk direktori root (/) sudo chmod 755 / # Perbaiki izin untuk direktori /bin sudo chmod 755 /bin # Perbaiki izin untuk file /bin/bash sudo chmod 755 /bin/bash
Verifikasi perbaikan.
Jalankan kembali perintah
suuntuk mengganti pengguna. Jika izin telah dikoreksi dengan benar, error tersebut tidak akan muncul lagi.