#author("2024-10-11T07:32:03+09:00","default:nobuoki","nobuoki")
#author("2025-04-14T16:31:37+09:00","default:nobuoki","nobuoki")
* 困ったこと [#aaae57eb]

[[ゼロトラスト>https://www.ntt.com/business/lp/zero-trust.html]]とやらで会社のPC(Windows10)の自由度が低下しました

- local admin 権限が無くなった
-- レジストリを操作するアプリ、システム環境変数を変更するアプリはインストールできない
-- symlink や junction が作れなくなった
- ファイル書き込みは %userprofile% 以下のみ
-- C:\ とか C:\Program Files あたりにアプリケーションを入れたりできない
- 全ての通信は基本的にVPN経由になった(かつ、透過型プロキシを経由するっぽい)
-- 53, 80, 443 /tcp 以外のダイレクトアクセスが禁じられた
--- ssh(22/tcp), rdp(3389/tcp), proxy(8080, etc.) などなど、とにかく透過型プロキシに持ってかれる
- curl/wget で https の証明書エラー(透過型プロキシでhttpsを終端している) ←よくあること(ゼロトラストとは関係ない)

こんな状況でも出来ることはあります

* 環境変数の編集ダイアログを開きたい [#da961292]

設定 > システム > 詳細情報 > システムの詳細設定 ←ここで管理者パスワードを求められて行く手を阻まれます

なので直接ダイアログを表示しましょう。Win-R(ファイル名を指定して実行)で


  rundll32 sysdm.cpl,EditEnvironmentVariables


あるいはコマンドプロンプトで


  setx 変数名 値


setx だと環境変数の削除が出来ないようです(ヌル値を設定できるけど、環境変数自体は残ってしまう)

* Cygwin 使いたい [#pf458397]

パラメータ付きでインストーラを起動(コマンドプロンプトで)

 setup-x86_64.exe --no-admin

** インストール後の設定 [#d555b95c]

社内プロキシの証明書をCygwinに導入

- 入手方法の例:[[会社のプロキシ:Zscaler環境下でAWS CLIやGitが繋がらない場合 #Git - Qiita>https://qiita.com/satoushina/items/56831655a141ec80917d]]

#prism(bash){{{
cer=/path/to/ca.cer
cp -v "$cer" /etc/pki/ca-trust/source/anchors/
bash -x /usr/bin/update-ca-trust -o /etc/pki/ca-trust/extracted  # --no-admin の場合
}}}


- 社内プロキシの証明書が手に入らない場合のワークアラウンド
#prism(bash){{{
$ echo 'check_certificate = off' | tee ~/.wgetrc
$ echo 'insecure' | tee ~/.curlrc
$ git config --global http.sslVerify false
$ pip3 config set global.trusted-host "pypi.org files.pythonhosted.org pypi.python.org"
}}}

ユーザー名を変える
#prism(bash){{{
$ mkpasswd -c | sed -E 's/^.[^:]+/お好きなユーザ名/' | tee /etc/passwd
# cygwinを再起動すると変わっている
}}}

** 小ネタ [#h8318522]

- [[mr/cygwinのsocatでsocks使いたい]]

** Permission denied [#m8f7bdde]

こんなエラーが出たら
*** その1:互換性のトラブルシューティングでどうにかする [#m5208101]

#prism(bash){{{
$ teip --help
bash: /usr/local/bin/teip: Permission denied
}}}

exeファイルをエクスプローラーで右クリック
-> 互換性のトラブルシューティング(Y) -> ... -> 推奨設定を利用する

で使えることがあります。

動作実績

- [[greymd/teip: Masking tape to help commands "do one thing well">https://github.com/greymd/teip]]
- [[nkf Network Kanji Filter プロジェクト日本語トップページ - OSDN>https://ja.osdn.net/projects/nkf/]]
-- [[ nkf-2.1.5.tar.gz のミラー>https://ftp.iij.ad.jp/pub/osdn.jp/nkf/70406/nkf-2.1.5.tar.gz]]
-- 参考:[[OSDNのミラーコンテンツ 2023/11/19 · GitHub>https://gist.github.com/shujisado/2864e2475567fbbad8f8bacdb290d48a]]

*** その2:scoopで代替コマンドを入れる [#x13f67ec]

#prism(bash){{{
$ /usr/bin/grep -V
bash: /usr/bin/grep: Permission denied
}}}

+ scoop install grep する
+ PATH の優先順位を変える
-- /cygdrive/c/Users/あなたのユーザーID/AppData/Local/scoop/shims をPATHの先頭に入れる


** cygwin から shellcheck.exe 使いたい [#jcab42d1]

- shellcheck.exe にパスを通す
- 対象ファイル名をWindowsのパスに変えてあげる

bash:

#prism(bash){{{
shellcheck(){
  args=()
  for arg in "$@"; do args+=("$(cygpath -w -- "$arg")"); done
  command shellcheck "${args[@]}"
}
}}}

vim コマンドモード:

  !shellcheck "$(cygpath -w "%")"


* scoop 使いたい [#ccd0aeaf]

powershellで

#prism(powershell){{{
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
cd $env:LocalAppData
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -ScoopDir "$env:LocalAppData\scoop"
}}}

ScoopDir は暗号化対象外のディレクトリを指定する

- [[GitHub - ScoopInstaller/Install: 📥 Next-generation Scoop (un)installer>https://github.com/ScoopInstaller/Install#readme]]

たまにこんなエラーも出たりするが、他のマシンからひっぺがして耐える

- [[scoop update でnewフォルダが存在しないエラーの暫定解決方法 #Git - Qiita>https://qiita.com/maztake/items/f521067cf97afcdba09d]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS