Berikan izin symlink aplikasi dalam direktori di Windows

1

Saya tidak tahu banyak tentang izin Windows, tetapi apakah ada cara untuk memberikan skrip atau izin aplikasi untuk membuat symlink yang hanya menautkan dalam pohon direktori yang mengatakan aplikasi "memiliki"? (Tautannya hidup di pohon. Begitu juga targetnya.)

Catatan: Saya tidak ingin memberikan hak admin skrip.

jamesldurham
sumber

Jawaban:

1

Tidak ada yang built in, maaf. Anda bisa memberi pengguna yang menjalankan proses (baik itu sendiri atau akun lain) hak istimewa SeSymbolicLink, yang akan memungkinkan membuat symlink tanpa memberikan akses tingkat Admin lainnya. Symlink akan tetap hanya dapat diciptakan di mana saja yang akunnya dapat membuat file, dan pemeriksaan akses normal masih berlaku (jika symlink menunjuk ke file yang dapat Anda baca tetapi tidak menulis, Anda dapat membacanya melalui symlink tetapi masih tidak akan bisa menulis ke sana). Mudah-mudahan itu cukup aman; satu-satunya alasan symlink memerlukan hak istimewa khusus pada Windows adalah karena mereka tidak tersedia sampai Vista, sehingga banyak program warisan tidak menanganinya dengan baik terutama untuk hal-hal seperti loop direktori atau ide-ide buruk lainnya.

Untuk mengaktifkan pengguna tertentu untuk membuat symlink (dengan memberikan pengguna SeSymbolicLinkPrivilege), lakukan hal berikut:

  1. Jalankan Editor Kebijakan Keamanan Lokal ( secpol.msc). Ini akan membutuhkan akses Administrator.
  2. Lihat di bawah "Kebijakan Lokal" -> "Penugasan Hak Pengguna". Temukan entri "Buat tautan simbolis".
  3. Klik dua kali entri untuk membukanya, lalu tekan [Add User or Group...].
  4. Di kotak yang muncul, ketikkan nama pengguna Windows Anda dan tekan [Check Names]. Itu harus berubah menjadi nama yang sepenuhnya memenuhi syarat, dengan garis bawah. Jika tidak, Anda harus mencoba bentuk lain dari nama pengguna. Anda juga dapat mengklik [Advanced]untuk mencari daftar opsi.
  5. Setelah nama pengguna digarisbawahi dalam kotak, tekan [OK]pada jendela "Pilih Pengguna dan Grup", lalu tekan [OK]pada jendela "Buat Properti tautan simbolik".
  6. Jika pengguna tersebut masuk, keluar dan masuk lagi. Pengguna itu sekarang harus dapat membuat tautan simbolik tanpa memerlukan hak admin.

Pilihan lain adalah menggunakan tautan keras NTFS. Tidak seperti symlink, setiap pengguna diizinkan membuat tautan keras (secara default). Namun, juga tidak seperti symlink (dan tidak seperti hardlink POSIX), Anda tidak dapat membuat hardlink kecuali Anda memiliki izin khusus (Tulis Atribut? Sesuatu dalam kategori umum "Tulis") pada file tujuan. Jadi, jika Anda hanya perlu menautkan file (bukan direktori), dan Anda memiliki akses tulis ke file yang dimaksud, Anda mungkin dapat menggunakan hardlink dengan baik (mereka beroperasi seperti hardlink POSIX, mengikuti simpul file daripada nama file, dan jika Anda menghapus "file asli" tetapi bukan tautannya, data tersebut tidak dihapus sampai Anda juga menghapus tautannya).

Jika Anda memerlukan penautan direktori juga, Anda dapat - seperti yang disarankan @WesSayeed - menggunakan persimpangan NTFS. Mereka lebih sulit untuk dibuat secara pemrograman (meskipun mudah dari skrip) tetapi berfungsi dengan baik untuk sebagian besar tujuan yang biasanya Anda gunakan untuk symlink direktori.

CBHacking
sumber
0

Pengguna normal tidak memerlukan izin khusus untuk membuat persimpangan (yang sangat mirip dengan symlink direktori).

Anda dapat melihat ini sendiri dengan membuka prompt perintah (tidak ditinggikan), dan mengetik mklink /j <link> <target>(mengganti tautan dan nama target dengan direktori apa pun yang Anda inginkan). Anda akan melihat bahwa perintah ini berhasil bahkan jika Anda tidak memiliki izin admin. Anda masih tidak dapat menggunakan tautan jika Anda tidak memiliki izin untuk target.

Cukup gunakan mklinkperintah dalam skrip dan itu akan berfungsi dengan baik.

Wes Sayeed
sumber