Apa yang harus saya masukkan ke Terminal, menggunakan sudo untuk menjadikan diri saya seorang administrator?

11

Akun pengguna saya adalah akun standar di Mac saya. Apa yang harus saya masukkan ke Terminal menggunakan sudo, untuk menjadikan saya administrator?

Steven Savary
sumber
1
Apakah ini tentang mengubah akun pengguna Anda secara permanen, atau tentang menjalankan sesi terminal dengan hak-hak pengguna admin (atau root) yang Anda ketahui info logonnya?
rackandboneman

Jawaban:

14

Jika pengguna sebenarnya <user_name> memiliki akun standar, Anda harus memasukkan

sudo dscl . -append /Groups/admin GroupMembership <user_name>

untuk membuat <user_name> admin.

Namun, hanya sejumlah pengguna terbatas yang sudoer (yaitu akun yang diizinkan untuk menjalankan suatau sudodengan hak akses root berhasil). File sudoers standar ( / etc / sudoers ) di OS X terlihat seperti ini:

...
# User privilege specification
root    ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel    ALL=(ALL) ALL
...

Jadi hanya root dan anggota grup admin yang diizinkan berjalan sudosecara default. Perintah di atas dijalankan oleh <user_name> akan gagal akibatnya, karena <user_name> tidak ada dalam daftar.

Untuk mengaktifkan sudoing untuk <user_name> , Anda harus menambahkan <user_name> ke daftar (di bawah # Spesifikasi privilege pengguna ) atau menghapus tanda komentar pada baris% wheel sudo visudoyang harus dijalankan oleh sudoers lagi (itulah Catch22 yang disebutkan oleh Tetsujin).

klanomath
sumber
1
Baik khusus untuk melawan 'luar biasa samar' saya. +1, seperti biasa.
Tetsujin
1
Saya tidak ingat: bukankah rev OSX terbaru. termasuk semacam "not-really-sudo" yang tidak memiliki hak su unix standar penuh?
Carl Witthoft
3
@CarlWitthoft Yap, Anda mungkin berpikir tentang SIP .
Deditos
12

Itu sedikit Catch22 ...

Anda harus sudah menjadi administrator untuk berada di daftar sudoers [dengan sangat sedikit pengecualian yang diubah secara manual]

Intinya, Anda tidak bisa mempromosikan diri sendiri.
Itulah inti dari sudo & menjadi administrator, untuk dapat menetapkan kemampuan terbatas non-admin.

Tetsujin
sumber
-2

Jika Anda memiliki akses ke akun administrator, Anda dapat menjadi akun itu untuk sementara dengan:

su - <admin_username>

Dari sana Anda dapat melakukan tindakan administratif melalui sudo.

Jika Anda tidak memiliki akses ke akun administrator, maka tidak ada cara "sanksi" untuk mendapatkan akses admin (karena itulah inti untuk memiliki peran admin terpisah), tetapi ada banyak cara yang kurang sah untuk mendapatkannya , seperti eksploitasi eskalasi hak istimewa atau boot ke mode pengguna-tunggal. (Ini akan dibiarkan sebagai latihan bagi pembaca.)

halus
sumber