先日書いた記事「
Ubuntu14.04LTSにsambaを設定する」で、ubuntu14.04LTSに接続した外付けHDDをパス有りで共有化しましたが、別にフォルダを作り、そっちのフォルダはパス無し共有フォルダ化(誰でもアクセス可能に)したいと思い、ちょっと試してみました。
まずは/media/user/usbhddフォルダを開き、対象となるフォルダ「share」を作成します。
次に、作成したshareフォルダを右クリックしてプロパティを開き、「ローカルネットワーク共有」タブをクリック、「このフォルダーを共有する」と「このフォルダー内でのファイルの作成・削除を他のユーザに許可する」、「ゲストによるアクセス(ユーザーアカウントを持たない人向け)」の3つにチェックを入れます。
これで他PCからshareフォルダが見れるようになりました。
が、アクセスしてみると、「アクセス権限がありません」という非情なメッセージが。
ubuntuからshareフォルダを右クリックしてプロパティを開き、「アクセス権」タブをクリックしてみると、「その他」の「アクセス」が「なし」になっていました。
これじゃだめですよねー、ということで、「なし」から「作成と削除」に変更・・・
したいのですが、何度やっても「なし」に戻ります。
GUIがダメならCUIだ、ということで端末を起動して以下コマンドを実行し、アクセス権限を変更します。
user@pc:~$ chmod -R 777 /media/user/usbhdd/share
エラー出なかったので上手くいったかと思いましたが、確認してみると変更されておらず、他PCからは相変わらずshareフォルダにアクセス出来ません。
うむむ、どういうことでしょうか。
色々調べたり試してみたりした結果、どうやらマウントされた後では、アクセス権限の変更は不可能のようです。
じゃあどのタイミングだったら変更可能なのか?
変更可能タイミング、それは「マウントする時」でした。
外付けHDDをPCに接続すると、ubuntuが自動的にマウントしてくれます。
ですがubuntuにマウントしてもらうと、全フォルダ・ファイルの所有者・所有グループは「ログイン中のユーザー」に、アクセス権限は「700(所有者:フルアクセス 所有グループ・その他:アクセスなし)」に設定されます。
ですので所有者情報やアクセス権限を自由に設定したい場合、ubuntuにマウントしてもらうのではなく、こちらでマウントしなければいけません。
さて、そのマウント方法ですが、マウント毎に端末起動してコマンド実行してマウント先設定してマウントさせる「手動マウント」と、予めマウントしてほしいデバイスを登録しておけば、PC起動時に登録されてあるデバイスを設定値でマウントしてくれる「自動マウント」があります。
毎回コマンド実行するのは面倒なので、「自動マウント」の方法を選択します。
といっても、途中まではどちらも同じ作業なんですけどね。
では改めて、マウント方法は以下のとおりです。
【ubuntuへの外付けHDD自動マウント方法】
- マウント先フォルダを作成します。
ubuntuはデフォルトでマウント用のフォルダ「/mnt」を用意してくれているので、ここにフォルダを作れば良いでしょう。
フォルダ名は何でも良いですが、とりあえずここでは「usbhdd」とします。
ちなみに「/home/user」フォルダ内に作ったり、フォルダ名に記号が入っていたりすると、正常に動作しませんので注意が必要です。
私の環境では、マウント後のフォルダ・ファイルのアクセス権限の全メンバーが、「読み込み・実行のみ」に固定されてしまいました。
(2017年3月11日 追記)
最近のアップデードで修正されたか、自身の確認不足だったかどうかわかりませんが、現在は「/home/user」フォルダ内に作ったり、フォルダ名に記号が入っていたりしていても正常に動作するようになっていました。
- マウントする外付けHDDのID(UUID)を確認します。
コマンドと実行結果は以下のとおり。
user@pc:~$ blkid
(省略)
/dev/sdb1: LABEL="usbhdd" UUID="(略)" TYPE="ntfs"
(省略)
UUID="(略)"
の部分を確認しましょう。
- マウントする外付けHDDの所有者となる、現在ログイン中のユーザーのIDを確認します。
コマンドと実行結果は以下のとおり。
user@pc:~$ id user
uid=1000(user) gid=1000(user) (略)
uid=1000(user)
とgid=1000(user)
の部分を確認しましょう。
- 端末で
sudo gedit /etc/fstab
コマンドを実行して自動マウント設定ファイルを開き、最下行に自動マウントさせたい外付けHDDの情報を書き込みます。
書き込む情報は以下のとおり。
# usbhdd 2016.5.25 add
UUID=(略) /mnt/usbhdd auto defaults,uid=1000,gid=1000,umask=002 0 0
UUID=(略)
の部分は、手順2で確認した外付けHDDのIDを設定します。
ID確認時には囲っていたダブルコーテーション(")を記入しないように注意しましょう。
/mnt/usbhdd
の部分は、手順1で作成したマウント先フォルダパスを設定します。
マウント成功すると、このフォルダ内に外付けHDD内のデータが展開されます。
auto
の部分は、ファイルシステムを設定します。
「auto」だと自動判断してくれます。
defaults,uid=1000,gid=1000,umask=002
の部分は、マウントオプションを設定します。
「defaults」だと、未設定項目については標準値を設定するようです。
「uid」は所有者ID、「gid」は所有グループIDですので、手順3で確認したユーザーIDを設定します。
「uid」と「gid」を設定しないと、所有者・所有グループは「root」になります。
「umask」はアクセス権限です。
3桁の数値は左から「所有者」、「所有グループ」、「その他」になります。
「0」だとフルアクセス、「2」だと読み込みと実行のみ(変更・書き込み禁止)、「7」だとアクセス権限なしになります。
「002」だと、所有者と所有グループはフルアクセス、その他は読み込みと実行のみ、となります。
「umask」を設定しないと、すべてのメンバーがフルアクセス(「000」設定した状態)になります。
行末の2つの「0」ですが、これはえーっと、なんでしたっけ?
とりあえずどちらも「0」で問題無いようです。
- PCを再起動し、起動後の/mnt/usbhddフォルダ内に外付けHDD内データが展開されてあればOKです。
以上が自動マウント方法です。
長々と書いてますが、やってることは単純です。
マウント先フォルダ作って、ID確認して、設定ファイルにマウント情報書き込んでるだけです。
それにしても、まさか外付けHDDはマウント後にアクセス権限変更出来ないようになっていたとはねぇ。
今回試していなかったら、多分ずっと知らないままでした。
いやはや、試しておいて良かったです。
今回参考にさせてもらったサイトさんは以下のとおりです。
ありがとうございました。
まだ参考にしたサイトさんあった気がするんですが、履歴探しても見つからない・・・
次からは参考サイトさんメモ書いとかないと。
【関連記事(時系列順)】
