High Sierraで消えたあの機能、あのサービス

macOS High Sierraでは、ネットワーク関連機能にもさりげなく手が入れられている。ftpとtelnetサーバ/サービスはそのひとつで、今回からサーバ(/usr/libexec/ftpd|telnetd)とクライアント(/usr/bin/ftp|telnet)が取り除かれた。システム環境設定「共有」パネルから設定項目が消えて久しく、よりセキュアなsshやsftpが機能を代替している現実もあり、名実ともに役目を終えたことが姿を消した理由と考えていいだろう。

役目を終えたといえば、長年Macで(ローカルエリアにおける)デフォルトのファイル共有サービスとして利用されてきた「AFP(Apple Filing Protocol)」もそうだ。High Sierraにアップデートすると、起動ボリュームはAPFS(Apple File System)に変換されてしまうが、APFS領域はAFPで公開できない。

AFPが廃止されたわけではなく、引き続きHFS+など他のフォーマット上では利用できるが、APFSでネットワーク共有に使えるプロトコルはSMBとNFSのみのため、AFPで接続しようとすると拒否される。Mavericksのときから廃止予定(deprecate)とされていたこともあり、ついにこの日が来たかという印象のほうが強いが、今後は他のMacから「afp://~」としてマウントを試みないよう注意したい。

High SierraではFTPとtelnetのサーバ/クライアントが取り除かれた

High Sierraが動作するMacのAPFSボリュームを共有に設定、他のMacから接続しようとしたところ、アクセスが拒否された

Macで気軽に「WebDAVサーバ」

あまり(ほとんど?)話題になっていないようだが、High Sierraには新たに「wfsctl」コマンドが収録されている。名前から推測できるとおり、WebDAV File Sharing serviceをコントロールするためのコマンドであり、早い話がこのコマンドを使えばHigh SierraベースのMacをWebDAVサーバとして運用できる。

WebDAVといえば、これまでServer.appの「ファイル共有」を利用していたものだが、macOS Server 5.4(2016年秋OS X ServerからmacOS Serverに名称変更)ではファイル共有をHigh Sierraと統合。iOS デバイスとのファイル共有はサポートされなくなり、代わりにWebDAVサーバの運用をアシストするコマンドが追加された。iOSとのファイル共有を必要とする環境はともかく、有償のmacOS Serverを導入しなくてもWebDAVサーバを利用できるようになったのだから、その点は歓迎したい。

CUIではあるものの、wfsctlの使いかたはかんたん。まず、内部コマンド「shares」で共有中の領域を確認する。コマンドを管理者権限で実行すると(sudo wfsctl shares)、初回は「No Share Points are configured」と返されるはずだ。

共有する領域がなければ話は始まらないので、次は内部コマンド「share」で公開作業を行う。たとえば、ユーザ→共有フォルダ(/Users/Shared)を公開する場合、以下の要領でwfsctlを実行する。これで、とりあえずの下準備は完了だ。

$ sudo wfsctl share /Users/Shared

wfsctlコマンドには管理者権限が必要なため、「sudo wfsctl ~」の要領で実行する

WebDAVサーバとしての機能は、内部コマンド「start」で開始する。管理者権限で「sudo wfsctl start」を実行すれば、先ほど公開した領域(/Users/Shared)がネットワーク上に公開されるはずだ。念のため、「sudo wfsctl diagnose」を実行して、サーバ名(WFS_SERVER_NAME)やポート番号などの情報も確認しておこう。

内部コマンド「start」でサービスを開始したあと、「diagnose」で設定を確認しておこう

あとは、サーバ名(○○○.local)と自分のユーザアカウントでマウントするだけ。macOSをクライアントにする場合は、Finderの「サーバへ接続」ダイアログで「http://○○○.local」と入力すればOK。iOSデバイスの場合は、「OverTheAir」などの無料アプリが役に立つことだろう。

なお、共有領域を非公開にする場合は「sudo wfsctl unshare /パス/」、WebDAVのサービスを停止する場合は「sudo wfsctl stop」を実行する。WebDAV(Apache httpd)の負荷はわずかなものだが、サービスが不要になった場合は停止しておこう。

iOSアプリ「OverTheAir」でWebDAV共有領域をマウントしたところ