はじめに
LinuxサーバからWindowsマシンの共有フォルダを参照したいとき、
接続先が少数であれば、fstabに設定する方法でよいですが、
接続先が多数1あるときには、それらをすべてfstabに設定する作業なんてしたくないですよね。
そんなときは、sudoersに設定を入れて、一般ユーザからmount、umountを可能にすると便利です。2
この記事では、/mnt 配下にマウントしたかったので、mkdirもsudoを許可してあります。
cifsはセットアップ済の想定です。
(なお、WSLは現時点ではcifsに対応していないようですね。3)
設定手順
ここでは、一般ユーザのユーザ名は foo としてあります。
console
$ su
# visudo -f /etc/sudoers.d/foo
sudoers.d
foo ALL=(ALL) NOPASSWD:/bin/mount,/bin/umount,/bin/mkdir
console
# exit
マウント手順
lsコマンドは、状況確認のために実行しているだけですので、実施しなくても構いません。
下記の例は、接続先WindowsマシンのIPアドレスが 192.168.111.222 、ユーザIDが hoge 、パスワードが Hogefuga123 です。
サーバ側のマウントポイントは /mnt/shares/machine001/ です。
console
$ sudo mkdir -p /mnt/shares/machine001/
$ ls /mnt/shares/
machine001
$ ls /mnt/shares/machine001/
$ sudo mount -t cifs -o ro,user=hoge,password=Hogefuga123 //192.168.111.222/share /mnt/shares/machine001
$ ls /mnt/shares/machine001/
(//192.168.111.222/share内の各フォルダが表示されます)
- 参照のみの例なので、マウント時の -o オプションで ro を指定しています。書き込みもする場合は ro, が不要になります。
- 一度マウントしたら、マウントポイント(/mnt/shares/machine001/)は残す運用をしています。
アンマウント手順
console
$ sudo umount /mnt/shares/machine001
$ ls /mnt/shares/machine001/
(なにも表示されなくなります)