cygwinで複数のユーザアカウントを管理する
ユーザ作成
ここの一番下を参照。
事前に
スタート -> コントロールパネル -> ユーザアカウント
でユーザを作っておく。
複数のユーザにログイン
どうせならWindowsでユーザを切り替えることなく
一人のユーザから色んなcygwinのユーザにログイン(?)したいと思ったのでcygwin.batを変更してみた。
(使う人は最初のcygdriveとcygdirだけ自分の環境に合わせて変更してください)
動作としては最初に
user:
とプロンプトが出るのでそこにログインしたいユーザ名を入れてください。
何も入れなければWindowsでの現在のログイン名(USERNAME)が使われます。
でもこれだとHOMEは変更できても
USERやUSERNAMEは変更できないので
そういう環境変数を見るプログラムは誤作動するかもしれない。
ただ自分は.vimとか.screenrcとか.sshとか
そういう設定ファイル(orフォルダ)を移行できればいいと考えてたので今のところ問題は起こってない。
あとユーザ(のホームディレクトリ)を新しく追加したい時は、
コマンドプロンプトから
cygwin.bat create
とするとホームディレクトリの存在確認をパスするようになるので
プロンプトが出たら追加したいユーザの名前を入れてください。
@echo off rem ### 環境に合わせて変更 set cygdrive=G: set cygdir=G:\cygwin rem ### コマンドプロンプトから入っても rem ### 直前のディレクトリを復活させる pushd . rem ### 端末の色を変える(あんまり変わらない...) color 0F setlocal set /p foo=user: <nul set /p usr= if not defined usr set usr=%USERNAME% title Cygwin - %usr% set HOME=%cygdir%\home\%usr% rem ### ユーザを作るならスキップ if "%1" == "create" goto skipcheckdir if not exist %HOME% ( echo no home directory for %usr%. echo. pause cls goto endofbatch ) :skipcheckdir rem ### 環境変数変更 rem ### set USER=%usr% rem ### set USERNAME=%usr% rem ### set CYGWIN=binmode nontsec tty set CYGWIN=tty notitle glob rem ### set PATH= set MAKE_MODE=unix set PAGER=less set JLESSCHARSET=japanese-sjis set TERM=cygwin set TERMCAP=cygwin set TERMINFO=cygwin set TMP=C:\cygwin\tmp set TEMP=C:\cygwin\tmp set TMPDIR=C:\cygwin\tmp set TZ=JST-09 set LANG=ja_JP.sjis rem ### WARNING: terminal is not fully functionalって出る set LESS=MrXEd rem ### ログイン cls %cygdrive% chdir %cygdir%\bin bash --login -i endlocal :endofbatch color popd