Linux 파일 보안 설정이 SMB에 적용됩니까?

Linux 파일 보안 설정이 SMB에 적용됩니까?

다양한 Google 검색을 시도했지만 내 질문에 대한 직접적인 답변을 찾을 수 없습니다.

소유자, 그룹, 권한 비트 등과 같은 Unix 개념이 SMB에 적용됩니까?

처음에는 SMB가 Windows 보안 모델(예: ACL)과 작동하도록 설계되어 Unix 보안 개념을 이해하지 못할 수도 있다는 생각이 들었습니다. 그러나 다시 누군가가 이에 대한 지원을 추가하기 위해 프로토콜을 확장했을 수도 있습니다.

기본적으로 하나의 Linux 상자에서 Samba를 실행하고 다른 Linux 상자에 파일 공유를 마운트할 수 있지만 권한이 있으면 아무 것도 할 수 없습니다. 클라이언트에서 실행 chown되거나 chgrp성공을 반환하지만 보고된 실제 권한은 변경되지 않았습니다. 이번에도 chmod이상한 짓을 하고 있습니다. 이렇게 해도 chmod 000파일은 여전히 ​​누구나 읽을 수 있고 실행할 수 있습니다. 실제로 실행 권한을 끄는 것은 전혀 불가능한 것 같습니다.

내가 잘못 구성했기 때문인가요, 아니면 단지 SMB인가요?지원하지 않음유닉스 파일 권한?

답변1

smb.confSamba 공유를 생성하면 서버의 공유에 대해 다음 옵션을 설정할 수 있지만 때로는 올바른 옵션을 사용하지 않으면 생성된 디렉터리에 대해 Samba가 적절한 권한을 설정하도록 할 수 없습니다(이는 설정할 수 있는 항목의 예시일 뿐, 모두 함께 설정할 수는 없으며 예시 설정을 사용하지 마세요.):

[anonymous]
path                    = /usr/share/anonymous
valid users             = anonymous
hosts allow             = 23.32.23.32
writeable               = yes
guest ok                = no
public                  = no
browsable               = no
printable               = no
usershare allow guests  = no
usershare owner only    = no
usershare max shares    = 0
read only               = no
create mask             = 0644
directory mask          = 0644
valid users             = %S
create mask             = 664
force create mode       = 664
security mask           = 664
force security mode     = 664
directory mask          = 2775
force directory mode    = 2775
directory security mask = 2775
force directory security mode = 2775

모든 소스를 확인하고 어떤 매개변수를 설정해야 하는지 확인하고 시도해 보세요.

답변2

처음에는 SMB가 Windows 보안 모델과 작동하도록 설계되었을 수도 있겠다는 생각이 들었습니다.

중소기업 =서버 메시지 블록. 그렇지 않다삼바.

https://en.wikipedia.org/wiki/Server_Message_Block

SMB(서버 메시지 블록)는 IBM OS/2를 실행하는 시스템 네트워크의 노드 간 파일에 대한 액세스와 프린터에 대한 공유 액세스를 제공하기 위해 1983년 IBM의 Barry A. Feigenbaum이 원래 개발한 통신 프로토콜[1]입니다. 또한 인증된 IPC(프로세스 간 통신) 메커니즘을 제공합니다. 1987년에 Microsoft와 3Com은 OS/2의 LAN Manager에서 SMB를 구현했습니다. 이때 SMB는 NetBIOS 프레임 프로토콜 위에 NetBIOS 서비스를 기본 전송으로 사용했습니다. Microsoft는 나중에 Windows NT 3.1에서 SMB를 구현했으며 최신 기본 전송과 함께 작동하도록 업데이트했습니다.

따라서 SMB는 designed work with[Microsoft] Windows 보안 모델이 아닙니다.서버 메시지 블록1992년에는 Windows 3.1, 1995년에는 Windows95보다 이전 버전입니다. 이는 Microsoft를 포함하여 모든 사람이 사용하기 시작한 프로토콜이며 SMB 2.0 및 3.0으로 업데이트되었습니다. 컴퓨팅 초기의 모든 것과 마찬가지로,안전개념은 기본적으로 존재하지 않습니다.Windows 보안 모델매우 모호하거나 불특정합니다.

기본적으로 Linux 상자에서 Samba를 실행하고 있으며 다른 Linux 상자에 파일 공유를 마운트할 수 있습니다...

삼바는리눅스 소프트웨어 제품군Microsoft Windows 시스템과의 상호 운용성을 제공합니다.파일 및 인쇄 서비스를 제공하고 Linux 서버를 Active Directory 환경에 원활하게 통합합니다. SAMBA를 사용하여 파일 공유를 내보낼 수 있습니까?중소 기업(또는 더 이상 사용되지 않는 CIFS?) 물론 다른 Linux 서버에 설치하도록 하세요. 하지만 SAMBA의 단순한 정의와 목적에 따르면 저는 그렇게 하지 않을 것입니다. Linux와 Linux 사이에서 내 제안은 NFS를 사용하는 것입니다 vers=4.2. SMB3.0과 함께 SAMBA를 독점적으로 사용하려면 samba.org 웹 사이트에서 /etc/samba/smb.confLinux가 오늘 파일 시스템 내용(권한 등)을 적용할 수 있도록 해당 공유를 적절하게 내보내고 마운트하는 모든 구성 옵션을 검색합니다/ SMB3.0 프로토콜을 통과해야 합니다.

실행 권한을 전혀 끄는 것은 불가능한 것 같습니다.

이로 인해 Linux에서 NTFS 파일 시스템을 사용하는 것에 대해 생각하게 되었습니다. https://unix.stackexchange.com/questions/604674/chmod-is-not-working-on-ntfs-3g-partition#:~:text=For%20either%20chmod%20or%20chown,commands%20can%27t %20Maybe%20work.&text=이%20은%20mount%20을 지정하고%20,755%20 및%20files%20mode%20644%20을 지정합니다..

ntfs-3gLinux 지원 파일 시스템(예: XFS 또는 EXT3/4) 대신 Linux에서 NTFS 파일 시스템을 마운트하는 경우 명시적으로 마운트하지 않는 한 모든 항목에 대한 실행 권한이 항상 표시됩니다.

Linux 파일 보안 설정이 SMB에 적용됩니까?

그렇다고 말하고 싶지만 귀하의 설명에 따르면 사용중인 Linux 버전, 사용중인 SAMBA 버전, 프로토콜 smb.conf및 SMB 프로토콜이 실제로 작동하는 것과 같은 중요한 컨텍스트가 많이 누락되어 있습니다. , 그래서 잘못 구성한 것 같아요... 당신이 언급한어쩌면 누군가가 이에 대한 지원을 추가하기 위해 프로토콜을 확장했을 수도 있습니다....답은 SMB가 최신 버전 3.0으로 업데이트되는 방식에 있습니다. Linux Samba 내보내기를 사용하여 3.0을 통해, Samba security=userpassdb backend = tdbsam.

답변3

CIFS(Common Internet File System)라고도 알려진 SMB(Server Message Block)는 Windows 시스템에서 주로 사용되는 네트워크 파일 공유 프로토콜입니다. Unix 계열 시스템(Linux, macOS 등)에서는 Unix 스타일 권한(소유자, 그룹, 권한 비트)을 직접 지원하지 않습니다.

Linux 클라이언트의 Samba 서버에서 SMB/CIFS 공유를 마운트하면 클라이언트는 SMB 권한을 Unix 스타일 권한에 매핑하여 호환성과 일관성을 제공하려고 시도합니다. 이는 일반적 **cifs으로 VFS** 모듈을 사용하여 수행됩니다.CIFS로컬 파일 시스템 계층 구조의 일부로 나타나는 대로 공유합니다.

그러나 SMB 권한을 Unix 스타일 권한에 매핑할 때 몇 가지 제한 사항이 있습니다. chmod권한을 사용하거나 변경할 수 없고 실행 권한이 있는 이상한 동작과 같이 설명하는 동작은 chownSMB 권한이 Unix 스타일 권한에 매핑되는 방식 때문일 수 있습니다.

고려해야 할 몇 가지 사항은 다음과 같습니다.

  1. 사용자 매핑: Linux 클라이언트와 Samba 서버 간에 올바른 사용자 매핑이 구성되어 있는지 확인하세요. 매핑이 잘못된 경우 클라이언트에 공유의 파일을 수정하는 데 필요한 권한이 없을 수 있습니다.

  2. ACL(액세스 제어 목록): SMB/CIFS는 기존 Unix 스타일 권한보다 파일 권한을 더 세부적으로 제어할 수 있는 ACL(액세스 제어 목록)을 지원합니다. 공유에 ACL이 설정된 경우 Unix 스타일 권한보다 우선할 수 있습니다.

  3. CIFS 유닉스 확장cifs: Samba는 Samba 서버 구성에서 활성화하거나 비활성화할 수 있는 Unix 확장이라는 매개 변수를 제공합니다 . 활성화되면 클라이언트는 권한을 통해 Unix와 유사한 동작을 더 많이 수행할 수 있습니다. Samba 서버 구성에서 이 옵션이 활성화되어 있는지 확인하십시오.

  4. 설치 옵션: 클라이언트가 SMB 공유를 마운트할 때 마운트 옵션을 지정하여 권한 처리 방법을 제어할 수 있습니다. 예를 들어 uid, gid, file_modedir_mode옵션을 사용하여 마운트된 공유의 파일 및 디렉터리에 대한 기본 소유권과 권한을 설정할 수 있습니다.

SMB/CIFS는 기본적으로 Unix 스타일 권한을 지원하지 않지만 Samba는 Unix 계열 클라이언트에서 더 쉽게 사용할 수 있도록 일부 호환성과 매핑을 제공하려고 시도한다는 점에 주목할 가치가 있습니다. 그러나 권한 시스템 간의 본질적인 차이로 인해 일부 제한 사항과 불일치가 있을 수 있습니다.

Linux 클라이언트에서 전체 Unix 스타일 권한 및 기능이 필요한 경우 Unix 계열 시스템용으로 특별히 설계되었으며 기본 Unix 스타일 권한 및 소유권 관리를 제공하는 NFS(네트워크 파일 시스템) 사용을 고려할 수 있습니다.

관련 정보