/proc/fs/cifs/SecurityFlags を永続的に設定するにはどうすればよいですか?

/proc/fs/cifs/SecurityFlags を永続的に設定するにはどうすればよいですか?

/proc/fs/cifs/SecurityFlagscifs マウントが正しくマウントされるように編集しました。(値 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、その解決策を報告しました。このコメントそしてその後のコメント

ソリューション登場次のようになっていたはずです。

  1. /etc/rc.d/rc.localテキストエディタで開きます。

    [このファイルは必ずしも存在するか、デフォルトで使用されているUbuntu の新しいバージョンの場合。]

  2. ファイルに次の 2 行を追加すると、Ubuntu が起動するたびにモジュールcifsが読み込まれ (まだ読み込まれていない場合)、テキストが0x81`SecurityFlags: に書き込まれます。

    modprobe cifs
    echo 0x81 > /proc/fs/cifs/SecurityFlags
    
  3. ファイルを保存してテキスト エディターを終了します。

このように「見える」と言うのは、2つの別々のコマンドの間にある改行を含む空白に関する情報が見えないためである。コメント欄また、完全なパスが使用された(またはその前にコマンドが追加された)/proc/fs/cifs/SecurityFlagsと信じているため、そうでなければ解決策は機能しなかったでしょう。SecurityFlagscd

答え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

関連情報