Membangun di Windows 7

3

Di tempat kerja saya, kami baru saja pindah dari XP ke Windows 7, dan sebagai pengembang, ini merupakan mimpi buruk. Saya mengembangkan untuk sistem embedded, jadi proses pembangunan kami mungkin sedikit berbeda. Proses pembuatan kami sangat rumit, dan menghasilkan banyak salinan file, yang perlu dipindahkan dan disalin. Masalahnya adalah bahwa sebuah build akan sering gagal karena tidak memiliki izin untuk menyalin file.

Di seluruh direktori build saya, saya akan menjalankan

takeown /F * /R /D Y
icacls . /T /Grant <userid>:F

Dari direktori root build, tetapi saya masih memiliki masalah menyalin file (tidak dapat membuat file biasa 'bla.bla': Izin ditolak). Jadi saya terpaksa menyentuh file secara manual, mengatur mode ke + www, dan membangun lagi.

Pertanyaan saya adalah apakah ada cara sederhana untuk mendapatkan pohon direktori sehingga setiap pengguna / aplikasi dapat membuat / memodifikasi semua file di dalamnya. icacls tampaknya tidak memotongnya.

EDIT: Informasi tambahan: Windows x64, GNU make, menggunakan file bat untuk mengatur variabel lingkungan sebelum memanggil make

Gdogg
sumber

Jawaban:

2

Temukan direktori build di Windows Explorer grafis, klik kanan padanya, lalu pilih Properti . Pergi ke Keamanan tab, dan klik Maju tombol, dan kemudian di jendela yang muncul, klik tombol Maju tombol. Jika Sertakan izin yang dapat diwarisi dari induk objek ini dicentang, hapus centang. Memilih Menghapus di kotak dialog peringatan yang muncul. Jika ACL tetap ada di Entri izin kotak, hapus mereka.

Sekarang, pilih Menambahkan , masukkan nama pengguna Anda, klik baik . Kemudian, kotak dialog yang memungkinkan Anda memilih izin untuk pengguna itu muncul. Periksalah Kontrol penuh kotak di bawah Hibah dan klik baik . Ulangi untuk akun pengguna lain atau grup yang membutuhkan akses ke direktori, jika ada. Juga, tambahkan Kontrol Penuh untuk Administrator grup dan built-in SYSTEM pengguna untuk berjaga-jaga. Jika direktori ada di mesin lokal Anda dan hanya Anda yang bisa masuk, Anda mungkin ingin memberikannya saja Semua orang kelompok kontrol penuh sebagai gantinya, untuk benar-benar hal-hal tertentu akan bekerja.

Selanjutnya, pilih Ganti semua izin objek anak dengan izin bawaan dari objek ini . Kotak dialog sekarang akan terlihat seperti ini:

Windows advanced security dialog

Akhirnya, klik baik , dan pilih iya nih untuk memverifikasi bahwa Anda ingin menimpa izin semua file dan subdirektori dalam direktori itu. Itu akan menggantikan sup alfabet apa pun yang Anda miliki dengan izin yang cocok persis dengan apa yang baru saja Anda terapkan pada direktori build itu sendiri. Selain itu, perubahan pada izin membangun direktori akan secara otomatis menyebar ke semua file di bawahnya sekarang, jadi Anda hanya perlu mengubah izin direktori pembangunan di masa mendatang, daripada melakukannya secara rekursif di seluruh direktori.

Patches
sumber
Selain beberapa masalah kecil dengan terpaksa (mengharapkan file yang tidak diperiksa menjadi RO) ini berhasil. -- Terima kasih!
Gdogg
0

Sebagai permulaan, saya akan menjalankan alat yang Anda gunakan untuk membangun / memindahkan sebagai administrator, yang seharusnya memperbaiki banyak masalah. Selain itu, ketika Anda mengatakan bahwa ICacls tampaknya tidak memotongnya, apakah ICACL gagal memberi Anda hak, atau apakah ia memberi Anda hak, tetapi Anda masih mengalami masalah?

soandos
sumber
Saya masih memiliki masalah, tetapi tampaknya berjalan dengan baik. Sepertinya file baru tidak dibuat dengan izin apa pun, ketika saya menginginkannya dibuat dengan izin direktori induknya. Saya menjalankan skrip sebagai pengguna dengan hak administratif, menggunakan windows PowerShell (atau cmd.exe * 32). Bagaimana saya bisa menjalankannya sebagai admin (dari baris perintah?)
Gdogg
Dalam pengaturan folder, atur agar semua file yang dibuat dalam folder mewarisi izin (jawaban lain memiliki gambar yang bagus).
soandos