Apa keuntungan dari sinkronisasi UID / GID di mesin Linux?

24

Sebelum saya terjun ke kedalaman cara menyinkronkan UID / GID di berbagai mesin Linux saya, saya ingin tahu apa sebenarnya manfaatnya?

Saya tahu bahwa ini menjaga sinkronisasi file relatif mudah (karena kepemilikan "secara alami" dipertahankan). Namun ini juga dapat dicapai jika tidak tergantung pada layanan transmisi.

Apakah ada hal lain yang akan mendapat manfaat dari UID / GID yang konsisten?

alex
sumber
4
Jangan lupa, saat mengganti uid / gid, untuk memperbarui arsip (file tar, dll.), Dan juga mengonfigurasikan file yang mungkin menggunakan id numerik alih-alih nama pengguna / nama grup.
Olivier Dulac

Jawaban:

31

hutang teknis

Untuk alasan di bawah ini, jauh lebih mudah untuk mengatasi masalah ini sejak dini untuk menghindari akumulasi utang teknis . Bahkan jika Anda sudah berada dalam situasi ini, mungkin lebih baik mengatasinya dalam waktu dekat daripada membiarkannya terus membangun.

sistem file jaringan

Pertanyaan ini tampaknya difokuskan pada lingkup sempit mentransfer file antara mesin dengan sistem file lokal, yang memungkinkan untuk status kepemilikan spesifik mesin.

Pertimbangan filesystem jaringan dengan mudah adalah kasus terbesar untuk mencoba menjaga pemetaan UID / GID Anda tetap sinkron, karena Anda biasanya dapat membuang "pencapaian sebaliknya" yang Anda sebutkan di luar jendela begitu mereka memasuki gambar. Tentu, Anda mungkin tidak memiliki sistem file jaringan yang dibagikan di antara host-host ini sekarang ... tetapi bagaimana dengan masa depan? Bisakah Anda dengan jujur ​​mengatakan bahwa tidak akan pernah ada kasus penggunaan untuk sistem file jaringan yang diperkenalkan antara host Anda saat ini, atau host yang dibuat di masa depan? Tidak terlalu berpikir ke depan untuk berasumsi sebaliknya.

Asumsikan itu /homeadalah sistem file jaringan yang dibagi antara host1dan host2dalam contoh berikut.

  • Izin yang tidak disetujui : /home/user1dimiliki oleh pengguna yang berbeda di setiap sistem. Ini mencegah pengguna untuk dapat secara konsisten mengakses atau memodifikasi direktori home mereka di seluruh sistem.
  • chown wars : Sangat umum bagi pengguna untuk mengirimkan tiket yang meminta izin direktori home mereka diperbaiki pada sistem tertentu. Memperbaiki masalah ini pada host2istirahat izin pada host1. Kadang-kadang diperlukan beberapa tiket untuk dikerjakan sebelum seseorang mundur dan menyadari bahwa tarik ulur sedang berlangsung. Satu-satunya solusi adalah memperbaiki pemetaan ID yang tidak setuju. Yang mengarah ke ...
  • Neraca penyeimbangan ulang UID / GID : Kompleksitas untuk mengoreksi ID kemudian meningkat secara eksponensial dengan jumlah remapping yang terlibat untuk mengoreksi satu pengguna di beberapa mesin. ( user1Memiliki ID dari user2, tetapi user2memiliki ID dari user17... dan itu hanya sistem pertama di cluster) Semakin lama Anda menunggu untuk memperbaiki masalah, semakin kompleks rantai ini bisa menjadi, sering membutuhkan downtime aplikasi pada beberapa server untuk menyelaraskan semuanya dengan benar.
  • Masalah keamanan : user2pada host2memiliki UID yang sama seperti user1pada host1, yang memungkinkan mereka untuk menulis ke /home/user1atas host2tanpa sepengetahuan user1. Perubahan ini kemudian dievaluasi host1dengan izin dari user1. Apa yang mungkin salah? (Jika user1adalah pengguna aplikasi, seseorang di dev akan menemukan itu bisa ditulisi dan akan membuat perubahan. Ini adalah fakta yang sudah terbukti.)

Ada skenario lain, dan ini hanyalah contoh dari yang paling umum.

nama tidak selalu merupakan opsi

Setiap skrip atau file konfigurasi yang ditulis dengan ID numerik menjadi tidak dapat inheren di lingkungan Anda. Umumnya bukan masalah karena kebanyakan orang tidak melakukan hardcode kecuali mereka benar-benar diharuskan ... tetapi kadang-kadang alat yang Anda gunakan tidak memberi Anda pilihan dalam hal ini. Dalam skenario ini, Anda dipaksa untuk mempertahankan n versi skrip atau file konfigurasi yang berbeda.

Contoh: pam_succeed_ifmemungkinkan Anda untuk menggunakan bidang user, uiddan gid... "kelompok" pilihan adalah jelas tidak ada. Jika Anda menempatkan di posisi di mana beberapa sistem diharapkan untuk melaksanakan beberapa bentuk pembatasan akses berbasis kelompok, Anda akan memiliki n variasi yang berbeda dari konfigurasi PAM. (atau setidaknya satu GID yang harus Anda hindari tabrakan)

manajemen terpusat

Jawaban natxo telah mencakup ini dengan cukup baik.

Andrew B
sumber
Saya tidak begitu yakin mengatakan menggunakan sistem file jaringan mencegah perbaikan masalah dengan uids yang berbeda, saya tahu setidaknya satu sistem file yang mendukung peta uid yang memungkinkan Anda untuk menentukan grup dan pengguna mana yang cocok dengan mesin yang berbeda.
Vality
@ Vality Apakah itu solusi yang tersedia secara umum, saya masih ragu untuk menyebutnya solusi yang dapat diskalakan.
Andrew B
Saya setuju, saya hanya tidak ingin OP berpikir itu tidak mungkin, saya sangat setuju dengan saran Anda bahwa solusi terbaik adalah menjaga mereka tetap sinkron.
Vality
Terima kasih! Sayangnya "sejak awal" sudah lama berlalu. Meskipun saya tahu bahwa beberapa konfigurasi ldap / kerberos adalah sesuatu yang ingin saya sertakan di sini di tempat saya bekerja, tetapi itu tidak akan terjadi sekarang. Untuk beberapa alasan lain saya secara khusus tertarik pada penggunaan UID / GID lintas sistem. Seperti yang saya katakan, transfer file adalah satu masalah (yang saat ini memiliki status "berfungsi"), itu sebabnya saya ingin tahu apakah ada hal-hal lain (seperti yang Anda sebutkan) juga dipengaruhi oleh UID. Bisakah Anda menambahkan beberapa kata kunci dari "skenario lain" itu? Itu akan membuat ini jawaban yang bagus!
alex
@ alex Yah, maksud saya "skenario lain" dalam hal masalah sistem file jaringan. Tidak peduli seberapa terlambat permainan Anda, masalahnya hanya terus bertambah buruk karena tidak terselesaikan. Jika alasan yang kami berikan tidak memadai, mungkin akan membantu jika Anda sedikit lebih mengarahkan pertanyaan dengan memberikan "alasan lain" itu. Jawaban yang diberikan sejauh ini cukup bagus menurut saya. Jika Anda mencoba meyakinkan manajemen, tanggung jawab tidak ada pada kita untuk membuat mereka melakukan hal yang benar.
Andrew B
18

setelah Anda mencapai ukuran tertentu (dan selalu lebih cepat dari yang Anda pikirkan), Anda akan menyadari bahwa mengubah kata sandi atau menonaktifkan akun untuk seseorang di semua host adalah PITA. Itu sebabnya orang menggunakan sistem dengan basis data LDAP (atau NIS tetapi tidak melakukan itu, tidak aman saat ini) seperti openldap atau saat ini freeipa yang sangat baik.

Anda menyimpan semua info akun / grup dalam database pusat, semua host berbagi informasi itu. Anda dapat melakukan lebih banyak hal dari sana: tentu saja, gunakan info pengguna untuk izin file, tetapi juga buat pengguna virtual untuk semua aplikasi yang memiliki ldap binding daripada harus membuat pengguna Anda di sana juga (banyak aplikasi web dapat menggunakan ldap untuk basis data penggunanya), pertahankan database aturan sudo pusat, sebarkan lingkungan autof Anda, pertahankan zona dns Anda, ...

natxo asenjo
sumber