Windows10でbash(Ubuntu)

installの仕方は、Windows 10でLinuxプログラムを利用可能にするWSL(Windows Subsystem for Linux)をインストールする(バージョン1803対応版)とか。

で、シェルを立ち上げて真っ先に思ったのは、この/homeってWindowsから見たらどこだろう、と。
正解は、
%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\<アカウント>
%userprofile%は、いわゆるWindows側のユーザーホームフォルダ。


とりあえず、apt-getしてみる。
~$ sudo apt-get update
[sudo] password for xxx:
Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8570 kB]
・・・

これでレンタルサーバも生粋のシェルで行ける!


Windows10インストール

そろそろ2週間ほど経つ。が、Win7とのデュアルブートなのでほとんど使っていない。。。
ブラウザやアプリの設定が微妙に全部持っていけないのでチョコチョコ設定するのが億劫。

OS自体に問題は今のところ全くないのでさっさと乗り換えよう!


Windows7ログイン画面のユーザ選択で非表示にする

Git用のsshアカウント作成したが、ヘッドレスアカウントのためこのユーザでログインすることはない。
で、非表示にしたいのだが、どうもレジストリをいじるしかないようで・・・

ウーム、ま、デスクトップOSだしそうかな。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
にDWORD値で sshd というエントリを作成し、値のデータを「0」に設定。

win_user_hide.jpg

WindowsのGitサーバ(リモートリポジトリ)構築メモ

Windows7にリモートリポジトリ用のGitサーバを構築したのでそのメモ。
利用したのは、Gitの公式ツールGit for Windows

手順としては、
1. Git for Windowsのインストール
2. sshd用アカウントの作成
3. sshdの起動
4. git daemonの起動
5. リモートリポジトリの作成

1. Git for Windowsのインストール

Git for WindowsをDLして、インストール。特に困ることはないと思うのでそのままインストール。
改行コートの指定などは各環境に合わせて適当に。

2. sshd用アカウントの作成

Windows用のsshdは、Microsoftの公式OpenSSHのライブラリの中にもありますが、微妙にパス解決のやり方が違うのかそのままだとリポジトリがない的なエラーが出ます。ということで、Git公式ツールの中にもssh関連のライブラリが同梱されているのでそのsshdを利用。
公式Gitツールのsshdとの違いは下記の通り。
内容 Git公式 MS公式
sshdアカウント 必要 不要
起動シェル MINGW64 標準コマンドライン
起動方法 フルパス指定 管理者権限で(psexecが便利)

Git公式のsshdはsshdアカウントが必要なのでコンパネから標準ユーザで作成。
コントロール パネル\ユーザー アカウント\アカウントの管理\新しいアカウントの作成

3. sshdの起動

まず、sshd用に各種hostキーを作成。
$ ssh-keygen.exe -t rsa -f ssh_host_rsa_key
$ ssh-keygen.exe -t dsa -f ssh_host_dsa_key
$ ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
$ ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_key
で、作成したキーはGitをインストールした/etc/sshに保存する。
例えば、C:\Program Files\Git\etc\ssh とか。

コピー後、MINGW64を立ち上げ(エクスプローラの適当なフォルダを右クリップでGit Bash Hereを選択)フルパスで起動。

sshdの起動はフルパスでないと怒られるのでフルパスで起動。
user01@PC01 MINGW64 /
$ /usr/bin/sshd.exe
タスクマネージャで確認。

4. git daemonの起動

同じく、MINGW64からgitコマンドで起動
user01@PC01 MINGW64 /c/a_git_repo
$ git daemon --verbose --reuseaddr --export-all --enable=receive-pack --enable=upload-pack --base-path=/c/a_git_repo
[7736] Ready to rumble

5. リモートリポジトリの作成

下記の様なスクリプトを作成しておくと便利。
#!/bin/sh

REPO=test01.git

rm -fr $REPO
mkdir $REPO
touch $REPO/git-daemon-export-ok

cd $REPO
git init --bare --share


複数のGitクライアントとのやり取りは下記に続く

[続きを見る]

Windows PowerShellによるファイル・フォルダ権限の一括変換

自作PCなどで以前使っていたハードディスクをデータ領域として使い回す場合、以前の権限が残っていて Administratorユーザでさえ自由に使えない場合があります。
WindowsではGUIで所有者と権限を変更することができますが、ファイル、フォルダ数が多いととても面倒になります。Linux系ではchown、chmodでガツッと一括で変更することが可能ですが、Windows7でもPowerShellを使えば可能です。

Linux系のchownに対応するコマンドはtakeown、chmodに対応するコマンドはicaclsになります。
機能WindowsLinux
所有者変更takeownchown
権限変更icaclschmod


所有者変更の実行例
PS C:\Users\user01> takeown /s pc01 /u user01 /f .\testdir /r
/s: コンピュータ名(/u指定時は必須)
/u: ユーザ名
/f: 対象ファイル(またはフォルダ)
/r: リカーシブ(サブフォルダも対象)

権限変更の実行例
PS C:\Users\user01> icacls testdir /grant user01:F /t
第一引数に、ファイル(フォルダ)を指定。
/grant: ユーザ名を指定。続いて「:」の後に設定する権限(上記のFはフルアクセス権)を指定。
/T: リカーシブ(サブフォルダも対象)

このWindows PowerShell、微妙にUnix系のオペランドも認識するようで、Dirの区切りを/(スラッシュ)にしても自動で円マークに変換してくれたりします。 使い方知っておくと便利かも。

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
261位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
47位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm