2018年5月12日土曜日

WSL の Debian 9 で初期ユーザのパスワードを忘れたら

WSL の Debian 9 では、管理者権限で開いたコンソールから debian.exe を実行し、ログインユーザーを root に変更することが出来ます。Ubuntu の場合は ubuntu.exe で、他のディストリビューションの場合も似たようなネーミングの命令が入っていると思います。

PS C:\WINDOWS\system32> debian help
Launches or configures a linux distribution.

Usage:
    
      - Launches the distro's default behavior. By default, this launches your default shell.

    run 
      - Run the given command line in that distro, using the default configuration.
      - Everything after `run ` is passed to the linux LaunchProcess call.

    config [setting [value]]
      - Configure certain settings for this distro.
      - Settings are any of the following (by default)
        - `--default-user `: Set the default user for this distro to 

    clean
      - Uninstalls the distro. The appx remains on your machine. This can be
        useful for "factory resetting" your instance. This removes the linux
        filesystem from the disk, but not the app from your PC, so you don't
        need to redownload the entire tar.gz again.

    help
      - Print this usage message.
PS C:\WINDOWS\system32> debian config --default-user root
Default UNIX user set to: root

初期ユーザのパスワードを忘れてしまったので、実際に作業してみました。
  1. 管理者として PowerShellかcmdウインドウを開く。
  2. PS> debian config --default-user root でログインユーザを root にする
  3. WSL Debian を開くとログインユーザが root になっているはず。
  4. # passwd firstuser などとしてパスワードを変更する。
  5. WSL Debian を閉じておく。
  6. PS> debian config --default-user firstuser などとしてログインユーザを初期ユーザにする。
  7. WSL Debianを開くとログインユーザが 初期ユーザになっているはず。 sudo su などしてパスワードが新しいものになっているか確認する。
実機の場合はgrubの起動に割り込んでinit=/bin/sh とか追加書きして云々、とかやるパターンですが、これはありがたいですね。

参考記事はこちら。
https://askubuntu.com/questions/772050/reset-the-password-in-linux-bash-in-windows

2018年5月3日木曜日

WSL の Debian 9 をインストールするとこうなる

Windows 10 の Windows Subsystem for Linux では様々なディストリビューションを導入出来るわけですが、その中でも最近加わった Debian 9.x を導入し、即 apt update ; apt upgrade すると 163 パッケージ(後述)でしょうか。小さいですね。
まあこれではなかなか辛いものがありますので、もう少し足していきたい。

# apt install lsb build-essential task-japanese

あたりでしょうか。しかし task-japanese を入れてもlocaleがご覧のありさまでは…

# locale -a
C
C.UTF-8
POSIX
en_US.utf8

これでは update-locale してもダメですね。そもそも無いので。作りましょう。

# grep ja_JP.UTF-8 /etc/locale.gen
# ja_JP.UTF-8 UTF-8  (←コメントアウトされている)
# vi /etc/locale.gen (←頑張ってviで編集してください)
# grep ja_JP.UTF-8 /etc/locale.gen
ja_JP.UTF-8 UTF-8    (←コメントアウトを解除した)
# locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.
# locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8 (←増えてる)
#

あとはroot で update-locale LANG=ja_JP.UTF-8 なり シェルの設定に書くなりお好みで。
ターミナルが Windows Console ですので、好き嫌いが出るかも知れません。wsltty の導入をご検討下さい。ウィルスバスタークラウドを使っている人はこちらの情報も重要です。よくある。
・wsltty が起動しない(すぐ落ちる)件
 https://yami-beta.hateblo.jp/entry/2016/10/30/175923

Debian を入れた直後のパッケージリストはこちら。
$ apt list --installed
Listing...
adduser/stable,now 3.115 all [installed]
apt/stable,now 1.4.8 amd64 [installed]
apt-utils/stable,now 1.4.8 amd64 [installed]
base-files/stable,now 9.9+deb9u4 amd64 [installed]
base-passwd/stable,now 3.5.43 amd64 [installed]
bash/stable,now 4.4-5 amd64 [installed]
bsdmainutils/stable,now 9.0.12+nmu1 amd64 [installed]
bsdutils/stable,now 1:2.29.2-1+deb9u1 amd64 [installed]
coreutils/stable,now 8.26-3 amd64 [installed]
cpio/stable,now 2.11+dfsg-6 amd64 [installed]
cron/stable,now 3.0pl1-128+deb9u1 amd64 [installed,automatic]
dash/stable,now 0.5.8-2.4 amd64 [installed]
debconf/stable,now 1.5.61 all [installed]
debconf-i18n/stable,now 1.5.61 all [installed]
debian-archive-keyring/stable,now 2017.5 all [installed]
debianutils/stable,now 4.8.1.1 amd64 [installed]
diffutils/stable,now 1:3.5-3 amd64 [installed]
dmidecode/stable,now 3.0-4 amd64 [installed]
dmsetup/stable,now 2:1.02.137-2 amd64 [installed,automatic]
dpkg/stable,now 1.18.24 amd64 [installed]
e2fslibs/stable,now 1.43.4-2 amd64 [installed]
e2fsprogs/stable,now 1.43.4-2 amd64 [installed]
findutils/stable,now 4.6.0+git+20161106-2 amd64 [installed]
gcc-6-base/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed]
gnupg/stable,now 2.1.18-8~deb9u1 amd64 [installed]
gnupg-agent/stable,now 2.1.18-8~deb9u1 amd64 [installed,automatic]
gpgv/stable,now 2.1.18-8~deb9u1 amd64 [installed]
grep/stable,now 2.27-2 amd64 [installed]
gzip/stable,now 1.6-5+b1 amd64 [installed]
hostname/stable,now 3.18+b1 amd64 [installed]
ifupdown/stable,now 0.8.19 amd64 [installed]
init/stable,now 1.48 amd64 [installed]
init-system-helpers/stable,now 1.48 all [installed]
iproute2/stable,now 4.9.0-1+deb9u1 amd64 [installed,automatic]
iptables/stable,now 1.6.0+snapshot20161117-6 amd64 [installed]
iputils-ping/stable,now 3:20161105-1 amd64 [installed]
isc-dhcp-client/stable,now 4.3.5-3+deb9u1 amd64 [installed]
isc-dhcp-common/stable,now 4.3.5-3+deb9u1 amd64 [installed]
kmod/stable,now 23-2 amd64 [installed]
libacl1/stable,now 2.2.52-3+b1 amd64 [installed]
libapparmor1/stable,now 2.11.0-3+deb9u2 amd64 [installed,automatic]
libapt-inst2.0/stable,now 1.4.8 amd64 [installed,automatic]
libapt-pkg5.0/stable,now 1.4.8 amd64 [installed]
libassuan0/stable,now 2.4.3-2 amd64 [installed,automatic]
libattr1/stable,now 1:2.4.47-2+b2 amd64 [installed]
libaudit-common/stable,now 1:2.6.7-2 all [installed]
libaudit1/stable,now 1:2.6.7-2 amd64 [installed]
libblkid1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libbsd0/stable,now 0.8.3-1 amd64 [installed,automatic]
libbz2-1.0/stable,now 1.0.6-8.1 amd64 [installed]
libc-bin/stable,now 2.24-11+deb9u3 amd64 [installed]
libc-l10n/stable,now 2.24-11+deb9u3 all [installed,automatic]
libc6/stable,now 2.24-11+deb9u3 amd64 [installed]
libcap-ng0/stable,now 0.7.7-3+b1 amd64 [installed]
libcap2/stable,now 1:2.25-1 amd64 [installed,automatic]
libcomerr2/stable,now 1.43.4-2 amd64 [installed]
libcryptsetup4/stable,now 2:1.7.3-4 amd64 [installed,automatic]
libdb5.3/stable,now 5.3.28-12+deb9u1 amd64 [installed]
libdebconfclient0/stable,now 0.227 amd64 [installed]
libdevmapper1.02.1/stable,now 2:1.02.137-2 amd64 [installed,automatic]
libdns-export162/stable,stable,now 1:9.10.3.dfsg.P4-12.3+deb9u4 amd64 [installed,automatic]
libelf1/stable,now 0.168-1 amd64 [installed,automatic]
libestr0/stable,now 0.1.10-2 amd64 [installed,automatic]
libfastjson4/stable,now 0.99.4-1 amd64 [installed,automatic]
libfdisk1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libffi6/stable,now 3.2.1-6 amd64 [installed,automatic]
libgcc1/stable,stable,now 1:6.3.0-18+deb9u1 amd64 [installed]
libgcrypt20/stable,stable,now 1.7.6-2+deb9u2 amd64 [installed]
libgdbm3/stable,now 1.8.3-14 amd64 [installed]
libgmp10/stable,now 2:6.1.2+dfsg-1 amd64 [installed,automatic]
libgnutls30/stable,now 3.5.8-5+deb9u3 amd64 [installed,automatic]
libgpg-error0/stable,now 1.26-2 amd64 [installed]
libhogweed4/stable,now 3.3-1+b2 amd64 [installed,automatic]
libidn11/stable,now 1.33-1 amd64 [installed,automatic]
libidn2-0/stable,stable,now 0.16-1+deb9u1 amd64 [installed,automatic]
libip4tc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libip6tc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libiptc0/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
libisc-export160/stable,stable,now 1:9.10.3.dfsg.P4-12.3+deb9u4 amd64 [installed,automatic]
libkmod2/stable,now 23-2 amd64 [installed,automatic]
libksba8/stable,now 1.3.5-2 amd64 [installed,automatic]
liblocale-gettext-perl/stable,now 1.07-3+b1 amd64 [installed,automatic]
liblogging-stdlog0/stable,now 1.0.5-2+b2 amd64 [installed,automatic]
liblognorm5/stable,now 2.0.1-1.1+b1 amd64 [installed,automatic]
liblz4-1/stable,now 0.0~r131-2+b1 amd64 [installed]
liblzma5/stable,now 5.2.2-1.2+b1 amd64 [installed]
libmnl0/stable,now 1.0.4-2 amd64 [installed,automatic]
libmount1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libncurses5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed,automatic]
libncursesw5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
libnetfilter-conntrack3/stable,now 1.0.6-2 amd64 [installed,automatic]
libnettle6/stable,now 3.3-1+b2 amd64 [installed,automatic]
libnewt0.52/stable,now 0.52.19-1+b1 amd64 [installed,automatic]
libnfnetlink0/stable,now 1.0.1-3 amd64 [installed,automatic]
libnpth0/stable,now 1.3-1 amd64 [installed,automatic]
libp11-kit0/stable,now 0.23.3-2 amd64 [installed,automatic]
libpam-modules/stable,now 1.1.8-3.6 amd64 [installed]
libpam-modules-bin/stable,now 1.1.8-3.6 amd64 [installed]
libpam-runtime/stable,now 1.1.8-3.6 all [installed]
libpam0g/stable,now 1.1.8-3.6 amd64 [installed]
libpcre3/stable,now 2:8.39-3 amd64 [installed]
libpipeline1/stable,now 1.4.1-2 amd64 [installed]
libpopt0/stable,now 1.16-10+b2 amd64 [installed,automatic]
libprocps6/stable,now 2:3.3.12-3 amd64 [installed,automatic]
libpsl5/stable,now 0.17.0-3 amd64 [installed,automatic]
libreadline7/stable,now 7.0-3 amd64 [installed,automatic]
libseccomp2/stable,now 2.3.1-2.1 amd64 [installed,automatic]
libselinux1/stable,now 2.6-3+b3 amd64 [installed]
libsemanage-common/stable,now 2.6-2 all [installed]
libsemanage1/stable,now 2.6-2 amd64 [installed]
libsepol1/stable,now 2.6-2 amd64 [installed]
libslang2/stable,now 2.3.1-5 amd64 [installed,automatic]
libsmartcols1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libsqlite3-0/stable,now 3.16.2-5+deb9u1 amd64 [installed,automatic]
libss2/stable,now 1.43.4-2 amd64 [installed]
libssl1.0.2/stable,now 1.0.2l-2+deb9u3 amd64 [installed]
libssl1.1/stable,now 1.1.0f-3+deb9u2 amd64 [installed]
libstdc++6/stable,stable,now 6.3.0-18+deb9u1 amd64 [installed]
libsystemd0/stable-updates,now 232-25+deb9u3 amd64 [installed]
libtasn1-6/stable,stable,now 4.10-1.1+deb9u1 amd64 [installed,automatic]
libtext-charwidth-perl/stable,now 0.04-7+b5 amd64 [installed,automatic]
libtext-iconv-perl/stable,now 1.7-5+b4 amd64 [installed,automatic]
libtext-wrapi18n-perl/stable,now 0.06-7.1 all [installed,automatic]
libtinfo5/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
libudev1/stable-updates,now 232-25+deb9u3 amd64 [installed]
libunistring0/stable,now 0.9.6+really0.9.3-0.1 amd64 [installed,automatic]
libustr-1.0-1/stable,now 1.0.4-6 amd64 [installed]
libuuid1/stable,now 2.29.2-1+deb9u1 amd64 [installed]
libxapian30/stable,now 1.4.3-2 amd64 [installed]
libxtables12/stable,now 1.6.0+snapshot20161117-6 amd64 [installed,automatic]
locales/stable,now 2.24-11+deb9u3 all [installed]
login/stable,now 1:4.4-4.1 amd64 [installed]
logrotate/stable,now 3.11.0-0.1 amd64 [installed]
lsb-base/stable,now 9.20161125 all [installed,automatic]
mawk/stable,now 1.3.3-17+b3 amd64 [installed]
mount/stable,now 2.29.2-1+deb9u1 amd64 [installed]
multiarch-support/stable,now 2.24-11+deb9u3 amd64 [installed]
nano/stable,now 2.7.4-1 amd64 [installed]
ncurses-base/stable,now 6.0+20161126-1+deb9u2 all [installed]
ncurses-bin/stable,now 6.0+20161126-1+deb9u2 amd64 [installed]
netbase/stable,now 5.4 all [installed]
passwd/stable,now 1:4.4-4.1 amd64 [installed]
perl-base/stable,now 5.24.1-3+deb9u3 amd64 [installed]
pinentry-curses/stable,now 1.0.0-2 amd64 [installed,automatic]
procps/stable,now 2:3.3.12-3 amd64 [installed,automatic]
readline-common/stable,now 7.0-3 all [installed,automatic]
rsyslog/stable,now 8.24.0-1 amd64 [installed]
sed/stable,now 4.4-1 amd64 [installed]
sensible-utils/stable,stable,now 0.0.9+deb9u1 all [installed]
sudo/stable,now 1.8.19p1-2.1 amd64 [installed]
systemd/stable-updates,now 232-25+deb9u3 amd64 [installed,automatic]
systemd-sysv/stable-updates,now 232-25+deb9u3 amd64 [installed,automatic]
sysvinit-utils/stable,now 2.88dsf-59.9 amd64 [installed]
tar/stable,now 1.29b-1.1 amd64 [installed]
tzdata/stable-updates,now 2018d-0+deb9u1 all [installed]
udev/stable-updates,now 232-25+deb9u3 amd64 [installed]
util-linux/stable,now 2.29.2-1+deb9u1 amd64 [installed]
vim-common/stable,now 2:8.0.0197-4+deb9u1 all [installed,automatic]
vim-tiny/stable,now 2:8.0.0197-4+deb9u1 amd64 [installed]
wget/stable,stable,now 1.18-5+deb9u1 amd64 [installed]
whiptail/stable,now 0.52.19-1+b1 amd64 [installed]
xxd/stable,now 2:8.0.0197-4+deb9u1 amd64 [installed,automatic]
zlib1g/stable,now 1:1.2.8.dfsg-5 amd64 [installed]
$ wc aptlist-init.txt
164  653 9155 aptlist-init.txt

ウイルスバスタークラウドのフォルダシールド


Windows では ウイルスバスタークラウド というウイルス対策ソフトウェアがあり、その中に『フォルダシールド』という機能があります。
https://esupport.trendmicro.com/support/vb/solution/ja-jp/1114436.aspx

ランサムウェアなど未知のアプリケーションによるフォルダへのアクセスを阻止するものなので、例えば OneDrive の同期用フォルダや NAS 上のバックアップ用フォルダにシールドを張っておくと、ランサムウェアの被害が伝播してしまうのを防げるかな、と思ったのですが……

簡単なプログラムを作成したり実行したり、ファイルを生成する作業をこのシールドが張られたディレクトリで実行すると、時々 powershell.exe などが「そんなアプリ知らんし(意訳)」などとシールドから拒否され、アクセス出来ないという問題が起きます。

海外でも話題になっていて、例えば以下。

https://en.community.trendmicro.com/tm_en/topics/scrobj-dll-and-powershell-exe

ここのQ&Aでも「ドライブ全体を守るんじゃなくてドキュメントフォルダを守るのに使ってね」といった結論になってますね。

これもしかして日曜プログラマの開発環境とか、TeX などと相性悪かったりします…?