sshfsマウントポイントに適切な権限を設定して、sambaと共有できるようにする


12

SSH経由のアクセスを提供するドメインホスティング業者がいます。

私のプラットフォームは:

  • Gentoo 2.6.36-r5
  • Windows(XP / Vista / 7)

私は自分のWindowsで作業しています。Gentooを使用して、Windowsができないすべての魔法を実行しています。

したがって、sshfsを使用して、ドメインのリモートパブリックディレクトリを/mnt/mydomain.comにマウントします。認証はキーを介して行われるため、怠け者は時々パスワードを入力する必要がありません。

私はWindowsでコーディングを行っており、変更されたファイルを常にアップロード/ダウンロードしたくないので、samba共有を介してこの/mnt/mydomain.comにアクセスします。

そのため、私は/ mntをsambaで共有しました。mydomain.comを除くすべてのマウントがWindowsエクスプローラーにリストされています。

私の理論は次のとおりです。

  1. sshfsは、マウントポイントuid / gidをsambaが期待するものに設定しない
  2. sambaは、/ mnt / mydomain.comが設定されたuid / gidを含める必要があることを知りません。
  3. 上記のすべてが間違っている、と私は知りません。

コンソールからの設定と出力は次のとおりです。他に何かが必要な場合はお知らせください。また、この問題に関連していることに気付いたエラーや警告はありませんが、間違っている可能性があります。

gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x  9 root  root  4.0K Mar 26 16:15 .
drwxr-xr-x 18 root  root  4.0K Mar 26  2011 ..
-rw-r--r--  1 root  root     0 Feb  1 16:12 .keep
drwxr-xr-x  1 root  root     0 Mar 18 12:09 buffer
drwxr-s--x  1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------  2 root  root  4.0K Feb  1 16:12 cdrom
drwx------  2 root  root  4.0K Feb  1 16:12 floppy
drwxr-xr-x  1 root  root     0 Sep  1  2009 services
drwxr-xr-x  1 root  root     0 Feb 10 15:08 www

/etc/samba/smb.conf

[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt

/ etc / fstab

sshfs#myusername@mywebhotel.com:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0

読みやすくするには:

  • myusername@mywebhotel.com
  • / home / to / pub / dir /
  • /mnt/mydomain.com/

オプション:

  • comment = sshfs
  • オート
  • ユーザー
  • 幹部
  • uid = 0
  • gid = 0
  • allow_other
  • 再接続
  • follow_symlinks
  • transform_symlinks
  • idmap = none
  • SSHOPT = HostBasedAuthentication

助けて!


IIRC、HostbasedAuthentication使用することは推奨されません(ユーザーベースPubkeyAuthenticationが推奨されます)
-user1686

SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
トム・ヘイル

回答:


11

sshfsはFUSEベースのファイルシステムであり、FUSEレイヤーでは、セキュリティ上の理由から、デフォルトで他のユーザーがそのマウントにアクセスすることを許可していません。あなたは持っているallow_otherオプションでは、しかし、あなたはまた、編集まで、それは無視されます/etc/fuse.conf含めますuser_allow_other


1
「ps aux」を実行すると、左の列にsshfsプロセスとsmbdプロセスの両方のルートが表示されます。両方が同じ特権で実行されるため、これを「解析」します。ls -lahの出力から、uidがルートではないことがわかります。このuidはsshfsによって設定されますが、少なくともオプションのuid / gidの変更では設定できません。サンバはどういうわけかuid / gid 68591でその特定のディレクトリを除外する必要があると思うと思います。(私の一部の混乱をクリアしようとしています。)
CS01

@ CS01:「マスター」smbdはルートとして実行されますが、接続ハンドラーには当てはまりません。SMBを介して「jim」としてログインすると、smbdプロセスも「jim」のUIDに切り替わります。
user1686

1
また、オプションuid = <UID>、gid = <GID>を使用して、UIDおよび/またはGIDを目的のユーザーにマップする必要があります。
sweisgerber.dev

答えてくれてありがとう。要約すると、Ubuntuの最新バージョンでテストした後:1. /etc/fuse.confを更新します。2. 3つのsshfsコマンドオプション(-o allow_other -o uid=<UID> -o gid=<GID>)を指定します。再起動する必要smbdはないようです(しかし、smbdとにかく再起動したのでわかりません)。
ブルーイン

2

sshfsをWindowsから直接マウントしてみませんか?
そのための無料のソリューションがいくつかあります(詳細はこちらこちらをご覧ください)。


1
うわー、このツールは素晴らしいです!
CS01

彼らはあまり有望に見えず、少なくとも今、3年後に中断されています:)あなたは彼らと安定性の経験がありますか?
sweisgerber.dev

0

通常のsmb共有が機能しているので、通常のフォルダを共有するのとまったく同じようにsshfsマウントをsahreできるので、Sambaの設定に関する言葉を失いません。ただし、sshfsを介したSSH共有のマウントは、ローカルマシンアクセスのみと比較すると特別です。

fstabを介して共有をマウントするには、この行を/ etc / fstabに入れて、必要に応じて共有をマウントします。コマンドラインコマンドをc&pするよりも便利です。

汎用etc / fstab行:

**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0

noauto:mount /MOUNT/POINT / etc / fstabのこの行から取得される他のすべての情報を介してマウントする必要があります

users: 通常のユーザーがこのマウントエントリをマウントできるようにします

再接続:スタンバイ後などにahreを再接続/再マウントします

uid = / gid =:リモートuid / gidをこのローカルuid / gidにマップします

例:

foo@example.org:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0

sshfsのマウントについて知っておく必要があるすべて[ https://wiki.archlinux.org/index.php/Sshfs]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.