/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 및 일반 텍스트에는 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

초= 보안 모드. 허용되는 값은 다음과 같습니다.

null 사용자로 연결을 시도하지 않음(이름 없음)

krb5 Kerberos 버전 5 인증 사용

krb5i Kerberos 인증 및 패킷 서명 사용

ntlm NTLM 비밀번호 해싱 사용(기본값)

ntlmi 서명과 함께 NTLM 비밀번호 해싱 사용(/proc/fs/cifs/PacketSigningEnabled가 켜져 있거나 서버에 서명이 필요한 경우 기본값이 될 수도 있음)

ntlmv2 NTLMv2 비밀번호 해싱을 사용합니다.

ntlmv2i 패킷 서명에 NTLMv2 비밀번호 해싱 사용

[주의: 이 [초 매개변수]는 개발 중이며 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아닌 전체 경로를 믿기 때문에 그렇지 않으면 솔루션이 작동하지 않았을 것이기 때문입니다.SecurityFlagscd

답변3

보다 영구적인 솔루션을 위해서는 다음을 만드는 것이 좋습니다.udevSecurityFlags 값을 설정하는 규칙입니다. 이는 cifs 모듈이 로드될 때마다 값을 설정합니다. /etc/udev/rules.d에서 규칙을 정의합니다.

50-cifs-securityflags.rules:

# 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

관련 정보