Как навсегда установить /proc/fs/cifs/SecurityFlags?

Как навсегда установить /proc/fs/cifs/SecurityFlags?

Я отредактировал /proc/fs/cifs/SecurityFlags, чтобы мои монтирования cifs монтировались правильно. (Мне пришлось использовать значение 0x81.)

Для редактирования SecurityFlagsя набираю команду modprobe cifs, которая затем позволяет мне увидеть /proc/fs/cifsкаталог (я не могу увидеть его, пока не введу эту команду).

После перезагрузки значение SecurityFlagsвернулось к значению по умолчанию, которое равно 0x7.

Как можно сделать так, чтобы после перезагрузки сохранялось значение 0x81?

решение1

Устанавливается как опция при компиляции ядра.

/proc — это виртуальная файловая система, см.http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html

/proc очень особенный, поскольку он также является виртуальной файловой системой. Иногда его называют псевдофайловой системой информации о процессе. Он не содержит «реальных» файлов, а содержит системную информацию времени выполнения (например, системную память, смонтированные устройства, конфигурацию оборудования и т. д.). По этой причине его можно рассматривать как центр управления и информации для ядра. Фактически, довольно много системных утилит являются просто вызовами файлов в этом каталоге. Например, «lsmod» — это то же самое, что и «cat /proc/modules», а «lspci» — это синоним «cat /proc/pci». Изменяя файлы, расположенные в этом каталоге, вы даже можете читать/изменять параметры ядра (sysctl) во время работы системы.

Видетьhttps://www.kernel.org/doc/readme/Documentation-filesystems-cifs-README

SecurityFlags Флаги, которые управляют согласованием безопасности, а также подписью пакетов. Флаги аутентификации (может/обязательна) (например, для NTLM и/или NTLMv2) могут быть объединены с флагами подписи. Указание двух разных механизмов хеширования паролей (как «обязательное использование»), с другой стороны, не имеет особого смысла. Флаги по умолчанию — 0x07007 (разрешены NTLM, NTLMv2 и подпись пакетов). Максимально допустимые флаги, если вы хотите разрешить монтирование на серверах с использованием более слабых хэшей паролей, — 0x37037 (lanman, plaintext, ntlm, ntlmv2, подпись разрешена). Некоторые SecurityFlags требуют включения соответствующих опций menuconfig (например, lanman и plaintext требуют CONFIG_CIFS_WEAK_PW_HASH). Включение аутентификации с открытым текстом в настоящее время также требует включения аутентификации lanman в флагах безопасности, поскольку модуль cifs поддерживает отправку паролей laintext только с использованием старой формы диалекта lanman настройки сеанса SMB. (например, для аутентификации с использованием паролей с открытым текстом установите 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. Добавьте эти две строки в файл, чтобы каждый раз при запуске Ubuntu cifsзагружался модуль (если он еще не был загружен) и текст 0x81записывался в `SecurityFlags:

    modprobe cifs
    echo 0x81 > /proc/fs/cifs/SecurityFlags
    
  3. Сохраните файл и закройте текстовый редактор.

Я говорю, что это «выглядит» таким образом, потому что информация о пробелах, включая новую строку между, как я полагаю, двумя отдельными командами, не видна.в комментарии, и потому что я считаю, что был использован полный путь, /proc/fs/cifs/SecurityFlagsа не просто путь SecurityFlags(или что cdперед ним была добавлена ​​команда), так как в противном случае решение не сработало бы.

решение3

Для более постоянного решения предлагаем создатьудевправило для установки значения SecurityFlags. Это будет устанавливать значение каждый раз при загрузке модуля cifs. Вы определяете свои правила в /etc/udev/rules.d.

50-cifs-securityflags.правила:

# 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

Связанный контент