ファイル所有者の変更

WindowsとLinuxとではファイルやフォルダといったリソースの保護メカニズムが異なっているので同列で話をするのが難しいのだが、それでも結果的には同じような設定ができるようになっている。今回はそうした機能の1つとして、ファイルの所有者を変更する方法を紹介しよう。

最初から複数のユーザーが混在している状態で動作することを前提にしたオペレーティングシステムを真似て作られたLinuxは、たとえ利用するユーザーが1人しかいない場合でも、システム上は複数のユーザーが用意された状態になっている。ファイルやディレクトリには所有者が存在しており、所有者を変更する操作も簡単に行うことができる。

一方、1人のユーザーが利用することを前提としたシステムから発展してきたWindowsは、この辺りがユーザーから見えにくいように思う。Windowsでもファイルやフォルダの所有者を変更することはできるのだが、ちょっとばかり面倒だ。今回はこの辺りを詳しく紹介しよう。

Windows 10でファイルの所有者を変更する

Windows 10でファイルの所有者を変更する場合、まずファイルエクスプローラから対象ファイルを選択して、メニューから「プロパティ」を選んでプロパティダイアログを起動する。起動してきたダイアログの「セキュリティ」タブを選択し、アクセス許可の「詳細設定」ボタンをクリックする。

  • ファイルのプロパティダイアログ。セキュリティから「詳細設定」を選択

    ファイルのプロパティダイアログ。セキュリティから「詳細設定」を選択

起動してくる「セキュリティの詳細設定」ダイアログの所有者の部分に「変更」というリンクが存在するので、これをクリックする。

  • 所有者の「変更」をクリック

    所有者の「変更」をクリック

「ユーザーまたはグループの選択」というダイアログが立ち上がってくるので、「選択するオブジェクト名を入力してください」という部分に変更先の所有者名を入力してから、その右側にある「名前の確認」というボタンをクリックする。

  • 変更先の所有者名を入力してから「名前の確認」をクリックする

    変更先の所有者名を入力してから「名前の確認」をクリックする

「名前の確認」をクリックすると、次のようにオブジェクト名が表示される。表示されたら下の「詳細設定」をクリックする。

  • オブジェクト名が表示されたら「詳細設定」をクリックする

    オブジェクト名が表示されたら「詳細設定」をクリックする

「ユーザまたはグループの選択」が詳細設定として展開されるので、右側に表示される「検索」をクリックする。

  • 展開される詳細設定の右側に表示される「検索」をクリック

    展開される詳細設定の右側に表示される「検索」をクリック

そうすると、検索結果に名前がずらっと表示されるので、ここから変更先のユーザーを選択して「OK」ボタンをクリックする。

  • 検索結果からユーザを選んで「OK」ボタンを押す

    検索結果からユーザーを選んで「OK」ボタンを押す

元のダイアログに戻るので、「OK」ボタンを押す。

  • 「OK」ボタンを押す

    「OK」ボタンを押す

「セキュリティの詳細設定」のダイアログまで戻ってくるのだが、この段階で所有者がdaichiからsasakiに変更されたことを確認できる。

  • 「セキュリティの詳細設定」で所有者が変わったことを確認

    「セキュリティの詳細設定」で所有者が変わったことを確認

ためしにコマンドプロンプトから該当ファイルを表示させ、所有者をチェックしてみると、所有者がsasakiに変更されたことを確認できる。このファイルのもともとの所有者はdaichiだったので、所有者が変更されたことがわかる。

  • コマンドプロンプトからファイルの所有者がdaichiからsasakiに変更されたことを確認

    コマンドプロンプトからファイルの所有者がdaichiからsasakiに変更されたことを確認

Windowsではファイルエクスプローラからファイルやフォルダの所有者を変更するのは面倒だ。もっと簡単に所有者を変更できるようにUI/UXを変更してもよいのでなないかという気はするが、そもそもWindowsでは所有者を変更するような使い方をする機会がほとんどないので、このままでもよいのかもしれない。

Linuxでファイルの所有者を変更する

次に、Linuxでファイルの所有者を変更してみよう。Linuxでファイルの所有者を変更するのは簡単だ。chownコマンドを使えば次のように変更できる。

chown ユーザ:グループ 対象パス

Linuxではユーザに割り当てられるグループがユーザー名と同じものになっていることが多く、「ユーザ:グループ」という部分が「daichi:daichi」や「sasaki:sasaki」になることも多い。もちろんグループ「daichi:wheel」とか「sasaki:stuff」のようになっていることもある。

chownコマンドを使って所有者を変更すると次のようになる。

  • chownコマンドで所有者を変更するサンプル / Ubuntu 18.04 on WSL

    chownコマンドで所有者を変更するサンプル / Ubuntu 18.04 on WSL

Windowsのファイルエクスプローラから変更する場合と比べて、Linuxのコマンドで変更する操作は一瞬だ。なお、自分の権限を越える変更をする場合には、いったんrootユーザーになってから作業するか、sudoコマンドで管理者権限をもって実行する必要がある。

保護ドメインはシンプル

今回、操作の面から極端な例を取り上げたが、Windowsの利用しているアクセス制御リストとLinuxがベースとしている保護ドメインを比べると、アクセス制御リストのほうが制御用コマンドの指定が複雑になる傾向が見られると言える。

Linuxでもアクセス制御リストやそれ以外のセキュリティ機能を利用しようとすると、コマンドの使い方やシステムコール、関数の使い方が複雑になることもあるのだが、保護ドメインはかなりシンプルだ。アクセス制御リストと保護ドメインは同列で比較するようなものではないのだが、基本としているメカニズムの違いでいろいろと操作方法に違いがあることは覚えておいてもらえればと思う。