Tambahkan pengguna Domain AD ke sudoers dari baris perintah

10

Saya sedang menyiapkan server Ubuntu 11.04 VM untuk digunakan sebagai server basis data. Itu akan membuat hidup semua orang lebih mudah jika kita bisa membuat orang masuk menggunakan kredensial windows dan bahkan mungkin membuat mesin bekerja dengan keamanan berbasis AD saat ini yang kita punya di tempat lain.

Kaki pertama ini sangat mudah untuk dicapai - apt-get install likewise-opendan saya cukup banyak dalam bisnis. Masalah yang saya alami adalah memasukkan admin kami ke dalam kelompok sudoers - sepertinya saya tidak bisa mendapatkan apa pun untuk diambil. Saya sudah mencoba:

a) usermod -aG sudoers [username]
b) menambahkan nama pengguna dalam beberapa format (DOMAIN \ pengguna, pengguna @ domain) ke file sudoers.

Sepertinya tidak ada yang mengambil, saya masih diberi tahu "pengguna DOMAIN \ tidak ada dalam file sudoers. Kejadian ini akan dilaporkan."

Jadi, bagaimana cara menambahkan pengguna non-lokal ke sudoers?

Wyatt Barnett
sumber

Jawaban:

6

Saya menghadapi masalah ini dan inilah solusi saya:

Edit /etc/sudoers: dengan entri berikut

Pertama periksa aduser menggunakan id perintah

#id <AD user>( #id domain\\aduser01 )

Hasil dari tambang:

SMB\aduser01@linux01:~/Desktop$ id smb\\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)

getent passwddan gid NUMBERStidak bekerja untuk saya. DOMAIN\\domain^usersbekerja untukku

%SMB\\domain^users ALL=(ALL) ALL

seperti yang kita ketahui pengguna AD individu bekerja juga

SMB\\<aduser01> ALL=(ALL) ALL
Jao Madn
sumber
2

kami memiliki nama domain yang panjang dengan .local sufix,

lebih dekat

%domainname\\group ALL=(ALL) ALL

atau

%domainname.local\\group ALL=(ALL) ALL

bekerja...

tetapi jika saya hanya menggunakan nama grup seperti ini:

%Domain^Admins ALL=(ALL) ALL

berhasil.

pengguna387622
sumber
Ini adalah solusi yang berhasil pada akhirnya. %Domain^Admins ALL=(ALL) ALL
mjp
2

Masalah dengan saran lainnya adalah itu

  • mereka hanya berfungsi ketika Anda memiliki akses ke LAN perusahaan (atau VPN)
  • Anda harus memelihara file sudoers di setiap komputer setiap saat
  • sebagai bonus, mereka tidak bekerja untuk saya - sama sekali

Sebaliknya, saya menginginkan sesuatu yang

  • cache kredensial dan akses sudo
  • dikelola secara terpusat

Solusi aktual menggunakan SSSD dan memperluas skema AD. Dengan cara ini SSSD mengambil pengaturan sudo dan kredensial pengguna secara berkala dari AD dan menyimpan cache lokal. Aturan sudo kemudian disimpan dalam objek AD, di mana Anda dapat membatasi aturan untuk komputer, pengguna dan perintah, bahkan - semua itu tanpa pernah menyentuh file sudoers di workstation.

Tutorial yang tepat terlalu panjang untuk dijelaskan di sini, tetapi Anda dapat menemukan panduan langkah demi langkah dan beberapa skrip untuk membantu otomatisasi di sini:

TL; DR:

IKLAN

Ambil rilis sudo terbaru , dapatkan file doc / schema.ActiveDirectory , lalu impor (pastikan untuk memodifikasi jalur domain sesuai dengan nama domain Anda):

ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .

Verifikasi dengan ADSI Edit: buka konteks penamaan Skema dan cari kelas sudoRole .

Sekarang buat sudoers OU pada root domain Anda, OU ini akan menampung semua pengaturan sudo untuk semua workstation Linux Anda. Di bawah OU ini, buat objek sudoRole. Untuk membuat objek sudoRole Anda harus menggunakan ADSI Edit, tetapi begitu dibuat, Anda dapat menggunakan Pengguna dan Komputer Direktori Aktif untuk memodifikasinya.

Mari kita asumsikan saya memiliki komputer bernama foo32linux , seorang pengguna bernama stewie.griffin dan saya ingin membiarkan dia menjalankan semua perintah dengan sudo di komputer itu. Dalam hal ini, saya membuat objek sudoRole di bawah sudoers OU. Untuk sudoRole Anda dapat menggunakan nama yang Anda inginkan - saya tetap menggunakan nama komputer karena saya menggunakan aturan per-komputer. Sekarang atur atributnya sebagai berikut:

  • sudoHost : foo32linux
  • sudoCommand : ALL
  • sudoUser : stewie.griffin

Untuk perintah, Anda dapat menggunakan entri tertentu juga, seperti / bin / kurang atau apa pun.

SSSD

Tambahkan ke /etc/sssd/sssd.conf Anda , setidaknya:

[sssd]
services = nss, pam, sudo

[domain/AD.FOOBAR.COM]
cache_credentials = True

SSSD menyegarkan cache lokal dengan aturan yang diperbarui setiap beberapa jam, tetapi cara paling sederhana untuk mengujinya adalah dengan hanya me-reboot komputer. Kemudian masuk dengan pengguna AD dan periksa:

sudo -l

Seharusnya daftar semua entires terkait yang Anda tambahkan ke pengguna dan komputer itu. Mudah sekali!

bviktor
sumber
1
Mungkin panjang tetapi, karena tautan menjadi tidak valid, itu adalah aturan bahwa bagian-bagian penting dimasukkan di sini, dengan tautan untuk referensi.
TheWanderer
Sebenarnya, saya menambahkan bagian-bagian penting, yaitu konsep. Saya bisa memilih bagian lain tetapi mereka tidak berguna tanpa sisanya dan tanpa memahami gambaran besarnya, jadi saya gagal memahami intinya. Itu akan lebih berbahaya daripada kebaikan.
bviktor 3-15
adalah aturan AskUbuntu bahwa seseorang yang datang harus dapat melihat jawaban Anda dan menyelesaikan masalah mereka tanpa pergi ke situs eksternal.
TheWanderer
1
Menambahkan info yang lebih relevan.
bviktor
1

Informasi terbaik yang dapat saya temukan mengenai masalah ini ada di sini:

http://www.mail-archive.com/[email protected]/msg00572.html

Itu pada dasarnya meminta Anda untuk memodifikasi /etc/sudoersfile Anda dengan konfigurasi yang benar untuk memungkinkan orang-orang dalam grup administrator Anda pada AD untuk memiliki akses ke semua hak istimewa.

Jika Anda harus selektif dan dibatasi oleh pengguna, Anda juga bisa melakukannya. Tetapi itu memperingatkan bahwa Anda harus memastikan untuk mengetahui apa nama pengguna pada sistem linux dengan menggunakan getend passwdperintah seperti yang ditunjukkan.

Martin Owens -doctormo-
sumber
Terima kasih benar-benar tidak tahu ke mana harus mencari. Sebagai catatan, nama pengguna DOMIAN \\ berfungsi untuk individu.
Wyatt Barnett
0

Menggunakan Centify direct, saya telah menambahkan pengguna domain ke file / etc / sudoers.

(Pengguna Domain) ALL = (ALL) ALL

pengguna160720
sumber
0

Saya menggunakan perintah umum

sudo usermod -a -G sudo DOMAIN\username 

dan ganti DOMAIN\userdengan DOMAIN\\\username.

Paramanand Dubey
sumber