Windowsのアカウント名とユーザー名の関係がよく分からない

帰省したら実家のパソコンの問題を相談されるのは、割と業界あるあるだと思う。 結局問題を根本から解決できなかったのだが、事象の記録のためにメモ。

事象

Windows10のPCにエクスプローラーからファイル共有できない。 ユーザー名とパスワードが誤っている旨のメッセージが出力されるが、接続元のPCにはその情報でログインできる。 しかしnet useで接続しようとすると、システムエラー86がでるので、認証周りの問題であることは確か。

原因

ログインで使っているアカウント名と、実際にプログラムを動かしているユーザ名が不整合を起こしている

ログインしたアカウント名でパッと見は動いているように見えるのだが*1、タスクマネージャーでログインユーザーを確認すると名前がアカウント名が異なる net userを実行すると、ログインのアカウント名は表示されず、タスクマネージャーで出るユーザー名が表示される。

タスクマネージャーで表示されたユーザー名でファイル共有すると問題なく接続できた

その他

おそらくアカウント名を途中で変更した結果、不整合が起こっているのだとは思うが、そこまで手を入れると色々と面倒なので断念 ※フォルダ名やレジストリを整合性を保ちながら変更すればよいのだと思うが、他のソフトへの影響もよく分からないので運用対処とした とりあえず、ユーザーサポートに休み明けに連絡するか、タスクマネージャーで表示されたユーザー名でファイル共有するように言っておいたが......

参考

http://tooljp.com/windows/doc/net-use/net-use-error.html

*1:GUIの設定からアカウント名を確認すると、ログイン時のアカウント名が表示される

L2スイッチのAccess Control List(ACL)で嵌った話

概要

  • 同一ネットワークのサーバ間の通信がpingしか通らないという事象に遭遇した
  • iptableやらnetstatやらいろいろしたのだが結局OSのレベルでは切り分けられず、NW屋さんに聞いたところL2スイッチにもAccess Control List(ACL)なる仕組みがあるそうで、それによって通信が制限されていた。
  • 広い視野をもたないといけないと思ったので、簡単なメモ書き

どんな事象だったのか?

  • サーバAとサーバBの間でping(ICMP)以外の通信が通らない。

  • traceroute-U-Tもだめで、-Iだけが通る。

  • iptables(OSのファイアウォール)でポートやIPアドレスが制限されているわけでもない。

といった状況でOSレベルではどうしようもないな、ということでNW屋さんにヘルプ要請

原因はなんだったのか?

サーバが接続されているL2スイッチのAccess Control List(ACL)が適切に設定されていなかったため、サーバ同士(IPアドレス)の通信ができなかったとのこと。

そして恥ずかしながらL2スイッチにおけるACLというものの存在を初めて知った。

Access Control List(ACL)とはなにか?

いろいろ調べたのだが、結局日本語ではスイッチレベルでもパケットの制限をできるという以上のことをすっきりとわかる説明は見当たらなかった。 スイッチのACLであればインターフェース単位での制御になるとか、多層防御の考えに立てば両方やるべきという理屈はたつとか、いろいろあるのだと思うがどうもすっきりしない。

で、たどり着いたのが以下のページ

Cisco Routers and Firewalls - Differences Between an ACL and Firewalls

とても雑に要約すると以下のような感じ。ひとまず理解できた気になれる程度の情報はある。

  • 機能はよく似ている面もあるけど実際には重要な違いがある

  • ACLはインターフェース単位で制御をかけるのでパケットのフィルタリング以外にもいろいろ使える

  • ACLはパケット単体でしかフィルタリングできない(ステートレス)だが、ファイアウォールはステートフルに通信を監視できる

実際のNW屋さんはもっといろいろ考えて設計しているのだと思うのだが、ひとまずはここまで。

サブネットマスクを間違っても通信できる場合

サブネットマスクを間違うと中途半端に通信ができてしまう場合がある。

そもそも論

IPで通信する端末は、まず最初に相手が自分と同じネットワーク(サブネット)に属しているかどうかを調べ、ネットワークが異なればルータを経由して通信する

通信相手が同じサブネットに所属しているかどうかの判断は、自分に設定されたサブネットマスクを使う

IPアドレスサブネットマスク論理積(AND)をとって比較します。

で、サブネットを間違うとどうなる?

たとえば、コンピュータAのIPアドレスが「192.168.0.1」、サブネットマスクが「255.255.255.0」だったとしよう。そして、コンピュータBのIPアドレスが「192.168.0.2」、サブネットマスクが「255.255.0.0」だったとする

上記の場合、なんと設定が間違っているのに通信できてしまう サブネットマスクIPアドレスサブネットマスクから二つのコンピュータは別ネットワークであるはずだが、たまたまIPアドレスサブネットマスク論理積が同じなため、コンピュータAからはコンピュータBが、コンピュータBからはコンピュータAが自身と同じネットワークにいるように認識してしまう。

参考情報

HTML tidyをCentOSにインストールする

  • HTMLのインデントをよさげに整形してくれるコマンドを探していた。

  • CentOSにインストール済みだったxmllintではうまくインデントを整形してくれなかった

  • そこでHTML Tidyをインストールした。が、yumではなくrpmでインストールしたので、備忘のためにメモを残すことにした。

続きを読む

Linuxのコマンドとして簡単に使えるC製のMarkdownパーサー「DISCOUNT」

  • Markdownを簡単にHTMLに変換したい。

  • Pandocもいいけど、自由度は下げてもよいのでとにかく簡単にしたい。

  • DISCOUNTというC製のMarkdownパーサーがDavid Parsons氏によりBSDライセンスで提供しており、良さげ。

続きを読む

椎橋章夫(2015)『ICカードと自動改札』

ICカードと自動改札 (交通ブックス)

ICカードと自動改札 (交通ブックス)

読んだ。 自動改札とICカードがどういう思想で作られて来たのか、歴史的な経緯も含めてわかる本。ニッチだが面白かった。

SEとしてはプログラムやシステムの工夫をもう少し知りたかったのだが、どちらかというと鉄道の仕組みや、ハードウェア的な部分に重点が置かれている本だった。

また、一部シンクライアント化について触れている部分があったのだが、むしろ個々の端末が機能を持つことで、通信不可でも決済ができることが強みだと思っていたので意外だった。*1

awkを使って特定の日時の範囲でログを抽出する

  • ある日時からある日時までのログを抽出したい(7月31日9時から8月1日9時まで、など)

  • timegrepのような便利なコマンドを追加するという手もあるが、現場ではハードルが高い*1

  • 特別なコマンドを利用することなく、プリインストールされているコマンドで対応するためのメモ

*1:少なくともSIerでは

続きを読む