web-dev-qa-db-ja.com

Macでパスワード保護されたCIF共有をマウントする安全な方法

MacとLinuxの異種ネットワークを維持しているので、マシン全体でマウント戦略を統一するための小さなPerlスクリプトを作成することにしました。

実際、私はすでに動作しているPerlスクリプトを持っていますが、パスワードはコマンドラインの一部であり、私が好きではないようです。

 mount_smbfs -d 755 -f 755 //username_here:[email protected]/cifs_share

Mount_smbfsとnsmb.confのmanページを読んでみましたが、どうすれば先に進むか混乱しています。

私のマシンはSnow Leopard、Leopard、Lionマシンです。

7
icasimpan

SvenWによって提案されたものよりも安全なソリューションであり、Appleの方法でより適切な方法は、パスワードをキーチェーンに追加することです。これを行う方法は次のとおりです。 AFP共有(-rオプションで指定されたプロトコルを変更するだけでよいと思いますが、SMB=でテストする可能性はありません。 「afp」の空白は意図的で必要なものであり、私はこれを10.6環境でのみ使用しました):

Sudo security add-internet-password -a "username_here" -D "Network Password" -r "afp " -l "cifs_share" -s "myserver.com" -p "cifs_share" -w "password_here"  -T "/System/Library/CoreServices/NetAuthAgent.app/Contents/MacOS/NetAuthAgent"

securityコマンドのmanページの関連部分は次のとおりです。

add-internet-password [-h] [-a account] [-s server] [-w password] [options...] [keychain]
            Add an internet password item.

            -a account      Specify account name (required)
            -c creator      Specify item creator (optional four-character code)
            -C type         Specify item type (optional four-character code)
            -d domain       Specify security domain string (optional)
            -D kind         Specify kind (default is "application password")
            -j comment      Specify comment string (optional)
            -l label        Specify label (if omitted, service name is used as default label)
            -p path         Specify path string (optional)
            -P port         Specify port number (optional)
            -r protocol     Specify protocol (optional four-character SecProtocolType, e.g. "http", "ftp ")
            -s server       Specify server name (required)
            -t authenticationType
                            Specify authentication type (as a four-character SecAuthenticationType, default is "dflt")
            -w password     Specify password to be added
            -A              Allow any application to access this item without warning (insecure, not recommended!)
            -T appPath      Specify an application which may access this item (multiple -T options are allowed)
            -U              Update item if it already exists (if omitted, the item cannot already exist)

            By default, the application which creates an item is trusted to access its data without warning.  You can remove this default access
            by explicitly specifying an empty app pathname: -T "". If no keychain is specified, the password is added to the default keychain.

SMB共有でも同じことが機能しますが、キーチェーンエントリを照合するメカニズムは非常に特殊であるため(たとえば、プロトコル名に奇数の空白が必要))、テストしてパスワードをどのように保存するかについて正確に説明します。このアプローチを初めて使用したとき、パラメーターを正しくするために、GUIを介してキーチェーンにパスワードを最初に作成するのに役立ちました(つまり、Finderに共有をマウントして、ボックスを使用して、認証資格情報をキーチェーンに保存し、キーチェーン内の結果のエントリを調べて逆方向に作業します。

SvenWによって指摘されているように、このアプローチを機能させるにはキーチェーンのロックを解除する必要がありますが、これはユーザーがログインしたときに自動的に行われ、説明に基づく問題ではありません。また、Kerberosが10.5と10.6では実際に機能するが、10.7では問題があることも確認したい。

7
Joe Carroll

次の内容を含む〜/ Library/Preferences/nsmb.confファイルを、マウントするユーザーのホームディレクトリに配置します。

[myserver.com]
username=username_here
password=password_here

その後、あなたは単に行うことができます

mount -t smbfs -o -d=755,-f=755 //myserver.com/cifs_share /mountpoint 
5
Sven

私にとっては、キーチェーンのが何であるかを見るだけでした

enter image description here

そしてthatを私のauto_smbマップと一致させます...

/../Volumes/ServiceData -fstype=smbfs,soft ://home._smb._tcp.local/ServiceData

1
mralexgray