
/proc/fs/cifs/SecurityFlags
cifs マウントが正しくマウントされるように編集しました。(値 0x81 を使用する必要がありました。)
編集するには、とSecurityFlags
入力するmodprobe cifs
と/proc/fs/cifs
ディレクトリが表示されます (このコマンドを入力する前には表示されません)。
再起動後、値はSecurityFlags
デフォルトの 0x7 にリセットされます。
再起動後も 0x81 の値を保持するようにこれを永続的に設定するにはどうすればよいですか?
答え1
カーネルをコンパイルするときにオプションとして設定されます
/procは仮想ファイルシステムです。http://www.tldp.org/LDP/Linux-ファイルシステム階層/html/proc.html
/proc は、仮想ファイルシステムでもあるという点で非常に特殊です。プロセス情報疑似ファイルシステムと呼ばれることもあります。実際のファイルではなく、ランタイム システム情報 (システム メモリ、マウントされているデバイス、ハードウェア構成など) が含まれます。このため、/proc はカーネルの制御および情報センターとみなすことができます。実際、多くのシステム ユーティリティは、このディレクトリ内のファイルへの呼び出しにすぎません。たとえば、「lsmod」は「cat /proc/modules」と同じで、「lspci」は「cat /proc/pci」の同義語です。このディレクトリにあるファイルを変更することで、システムの実行中にカーネル パラメータ (sysctl) を読み取り/変更することもできます。
見るhttps://www.kernel.org/doc/readme/Documentation-filesystems-cifs-README
SecurityFlags セキュリティ ネゴシエーションとパケット署名を制御するフラグ。認証 (may/must) フラグ (例: NTLM および/または NTLMv2) は、署名フラグと組み合わせることができます。一方、2 つの異なるパスワード ハッシュ メカニズム ("must use") を指定しても、あまり意味がありません。デフォルトのフラグは 0x07007 (NTLM、NTLMv2、パケット署名を許可) です。より弱いパスワード ハッシュを使用してサーバーにマウントできるようにする場合、最大で許可されるフラグは 0x37037 (lanman、プレーンテキスト、ntlm、ntlmv2、署名を許可) です。一部の SecurityFlags では、対応する menuconfig オプションを有効にする必要があります (たとえば、lanman およびプレーンテキストでは CONFIG_CIFS_WEAK_PW_HASH が必要です)。プレーンテキスト認証を有効にするには、現在、セキュリティ フラグで lanman 認証も有効にする必要があります。これは、cifs モジュールがセッション セットアップ SMB の古い lanman 方言形式を使用したプレーンテキスト パスワードの送信のみをサポートしているためです。 (たとえば、プレーンテキスト パスワードを使用した認証の場合は、SecurityFlags を 0x30030 に設定します)。
may use packet signing 0x00001
must use packet signing 0x01001
may use NTLM (most common password hash) 0x00002
must use NTLM 0x02002
may use NTLMv2 0x00004
must use NTLMv2 0x04004
may use Kerberos security 0x00008
must use Kerberos 0x08008
may use lanman (weak) password hash 0x00010
must use lanman password hash 0x10010
may use plaintext passwords 0x00020
must use plaintext passwords 0x20020
(reserved for future packet encryption) 0x00040
マウントオプションでこれを上書きできます
見るhttps://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html
sec= セキュリティ モード。許可される値は次のとおりです。
なし ヌルユーザー(名前なし)として接続を試行します
krb5 Kerberos バージョン 5 認証を使用する
krb5i Kerberos認証とパケット署名を使用する
ntlm NTLM パスワードハッシュを使用する (デフォルト)
ntlmi 署名付きの NTLM パスワード ハッシュを使用します (/proc/fs/cifs/PacketSigningEnabled がオンの場合、またはサーバーが署名を必要とする場合は、デフォルトにすることもできます)
ntlmv2 NTLMv2パスワードハッシュを使用する
ntlmv2i パケット署名付き NTLMv2 パスワードハッシュを使用する
[注: この [sec パラメータ] は現在開発中であり、cifs カーネル モジュール 1.40 以降で利用可能になる予定です]
ヘルプが必要な場合は、マウント オプションまたは fstab のエントリと、マウントしようとしたときに表示されるエラー メッセージを投稿してください。
答え2
オリジナルのポスター、ポール・ロサスは、コマンドを追加することで問題を解決しrc.local
、その解決策を報告しました。このコメントそしてその後のコメント。
ソリューション登場次のようになっていたはずです。
/etc/rc.d/rc.local
テキストエディタで開きます。[このファイルは必ずしも存在するか、デフォルトで使用されているUbuntu の新しいバージョンの場合。]
ファイルに次の 2 行を追加すると、Ubuntu が起動するたびにモジュール
cifs
が読み込まれ (まだ読み込まれていない場合)、テキストが0x81
`SecurityFlags: に書き込まれます。modprobe cifs echo 0x81 > /proc/fs/cifs/SecurityFlags
ファイルを保存してテキスト エディターを終了します。
このように「見える」と言うのは、2つの別々のコマンドの間にある改行を含む空白に関する情報が見えないためである。コメント欄また、完全なパスが使用された(またはその前にコマンドが追加された)/proc/fs/cifs/SecurityFlags
と信じているため、そうでなければ解決策は機能しなかったでしょう。SecurityFlags
cd
答え3
より永続的な解決策としては、ユーデブSecurityFlags の値を設定するルール。これにより、cifs モジュールがロードされるたびに値が設定されます。ルールは /etc/udev/rules.d で定義します。
50-cifs-セキュリティフラグ.ルール:
# Set SecurityFlags to 0x81.
ACTION=="add", SUBSYSTEM=="module", KERNEL=="cifs", RUN+="/bin/sh -c 'echo 0x81 > /proc/fs/cifs/SecurityFlags'"
そしてudevをリロードしますudevadm control --reload-rules && udevadm trigger