2018/03/31
symbolic link privilege not held が出る場合の対処方法 (Windows 10)
Python でシンボリックリンクを作成するには `os.symlink()` を使用します。 ただ、Windows でこれを普通に実行すると `OSError: symbolic link privilege not held` が発生してしまいます。 ### 原因は権限不足 シンボリックリンクの作成には `SeCreateSymbolicLinkPrivilege` が必要です。 しかし、デフォルトでこの権限が与えられているのは管理者のみ なので、一般ユーザで実行すると上記のエラーが発生してしまいます。 > 参考 > > [Windowsのシンボリックリンクとジャンクションとハードリンクの違い:Tech TIPS - @IT](http://www.atmarkit.co.jp/ait/articles/1306/07/news111.html) ### 対策 (Windows 10 Pro) `SeCreateSymbolicLinkPrivilege` を対象のユーザーに与えます。 以下は Windows 10 Pro で動作確認しました。 1. スタートメニューから `gpedit` (グループポリシーの編集)を起動 1. コンピューターの構成 → Windowsの設定 → セキュリティの設定 → ローカルポリシー → ユーザー権限の割り当て → シンボリックリンクの作成 1. ユーザーを追加する 1. サインアウト 一度サインアウトしないと反映されません ### 他の環境での対策 Windows 10 Home には `gpedit` がインストールされていないようなので、事前にインストールする必要があります。また、Windows 7 では `secpol.msc` を使用するようです 。 > 参考 > - [Windows10 Homeでローカルグループポリシーエディター(gpedit.msc)をインストールする方法](https://www.billionwallet.com/goods/windows10/windows10_gpedit.html) > - [How do I create a link in Windows 7 home premium as a regular user? - Super User](https://superuser.com/questions/124679/how-do-i-create-a-link-in-windows-7-home-premium-as-a-regular-user)
0 件のコメント:
コメントを投稿