困ったこと†
ゼロトラストとやらで会社のPC(Windows10)の自由度が低下しました
- local admin 権限が無くなった
- レジストリを操作するアプリ、システム環境変数を変更するアプリはインストールできない
- symlink や junction が作れなくなった
- ファイル書き込みは %userprofile% 以下のみ
- C:\ とか C:\Program Files あたりにアプリケーションを入れたりできない
- 全ての通信は基本的にVPN経由になった(かつ、透過型プロキシを経由するっぽい)
- rdp(3389/tcp), http(s)(80, 8080, 443, 50000-65535/tcp) 以外のダイレクトアクセスが禁じられた
- https の証明書エラー頻発(httpsを途中で解いてるから?)で curl/wget が面倒になった
- 認証あり git が通らなくなった
こんな状況でも出来ることはあります
環境変数の編集ダイアログを開きたい†
設定 > システム > 詳細情報 > システムの詳細設定 ←ここで管理者パスワードを求められて行く手を阻まれます
なので直接ダイアログを表示しましょう。Win-R(ファイル名を指定して実行)で
rundll32 sysdm.cpl,EditEnvironmentVariables
あるいはコマンドプロンプトで
setx 変数名 値
setx だと環境変数の削除が出来ないようです(ヌル値を設定できるけど、環境変数自体は残ってしまう)
Cygwin を使う†
パラメータ付きでインストーラを起動(コマンドプロンプトで)
setup-x86_64.exe --no-admin
インストール後の設定†
$ echo 'check_certificate = off' | tee ~/.wgetrc
obsolated: msys2を使いたい†
Git for Windows SDK†
- Windowsのユーザー環境変数で http_proxy/https_proxy/all_proxy/no_proxy を設定する(インストーラー内でgitを使う為)
- リリースページからインストーラをダウンロード Releases git-for-windows/build-extra GitHub
- インストーラを起動し、ファイル解凍パスの指定ダイアログを修正する
- デフォルト C:\git-sdk-64
- 修正例 C:\Users\あなたのユーザーID\AppData\Local\git-sdk-64 (%localappdata%\git-sdk-64)
- インストールが完了し、ターミナルが表示されたら初期設定を実施
- git-for-windows のリポジトリを無効化する(2022年頃からアクセスNGになっている)
- *.msys2.org をリポジトリのミラーリストから外す(*.msys2.org は高確率で接続NGになる)
- /etc/profile.d/git-sdk.sh を無効化する(bash起動のたび、デスクトップにショートカットを作ろうとして必ず失敗するのを避ける)
# git-for-windows リポジトリを無効化
sed -i -E -e '/git-for-windows|wingit\.blob/s/^/#/' /etc/pacman.conf
# *.msys2.org を無効化
find /etc/pacman.d -maxdepth 1 -type f | xargs sed -i '/^Server.*\.msys2\.org/s/^/#/'
# git-sdk.sh を無効化
(conf=/etc/profile.d/git-sdk.sh; mv -v "$conf" "$conf.disabled")
# アップデート
pacman -Syuu
# ここでターミナルが自動で閉じる
# 再び手動でターミナルを開いてアップデート
pacman -Syuu
失敗: msys2 そのまま使う(と、gitコマンドが使えない/permission denied)†
- Windowsのユーザー環境変数で http_proxy/https_proxy/all_proxy/no_proxy を設定する(インストーラー内でgitを使う為)
- msys2 installer を起動し、インストールディレクトリを変更する
- msys2 のターミナルを起動してプロキシ設定をし、システムアップデートする
# プロキシ設定ファイルを作成
conf=/etc/profile.d/proxy.sh
cat <<'...7 >"$conf"
export no_proxy=localhost,127.0.0.1 # 環境に合わせて編集
export all_proxy=http://proxy_ip:proxy_port # 環境に合わせて編集
...
# 環境変数を読み込んで、アップデート
. "$conf"
pacman --needed --noconfirm -Syuu
一見、良さげだが・・・
$ git pull
fatal: cannot exec 'git-remote-https': Permission denied