777 권한 없이 Windows에서 쓰기 가능한 Samba 공유를 어떻게 생성합니까?

777 권한 없이 Windows에서 쓰기 가능한 Samba 공유를 어떻게 생성합니까?

Linux 시스템(Debian 8)에 Samba 4와 Windows 시스템(도메인의 Win7 및 8)을 공유하려는 경로가 있습니다. 광산에서는 smb.conf다음을 수행했습니다.

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes

나는 Windows에서 완벽한 읽기 권한을 가지고 있습니다. 하지만 쓰기 권한을 얻으려면 chmod -R 777 /path/to/shareWindows에서 쓰기 작업을 수행해야 합니다.

내가 원하는 것은 .net의 Linux 소유자의 Linux 자격 증명을 제공한 후 Windows에서 쓰기 액세스를 제공하는 것입니다 /path/to/share.

난 노력 했어:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes

그런 다음 Windows에서는 자격 증명을 요청하지만 내가 무엇을 입력하든 항상 거부됩니다.

777 권한을 부여하지 않고 Windows 도메인 시스템에서 Samba 공유에 대한 쓰기 액세스 권한을 얻는 올바른 방법은 무엇입니까?

답변1

공유에 대한 전용 사용자를 생성하고 이를 지정하는 것이 좋습니다.force user(문서 참조).

사용자( shareuser예:)를 만들고 공유 폴더에 있는 모든 콘텐츠의 소유자를 해당 사용자로 설정합니다.

adduser --system shareuser
chown -R shareuser /path/to/share

force user그런 다음 권한 마스크 설정을 추가합니다 smb.conf.

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
force user = shareuser

guest ok의 동의어임을 참고하세요 public.

답변2

의 공유 설정에는 smb.conf공유에 쓸 수 있는 사용자 및/또는 그룹의 이름을 지정하는 줄이 필요합니다 write list = ....

예:

[myshare]
...
write list = my_linux_username

그런 다음 다음 명령을 사용하여 Samba 인증을 smbpasswd위한 비밀번호를 설정 해야 합니다 .my_linux_username

sudo smbpasswd -a my_linux_username

/etc/shadow표준 시스템 암호에 대한 해싱 알고리즘은 SMB 프로토콜에 사용되는 암호 해싱 알고리즘과 호환되지 않기 때문에 이 단계가 필요합니다 . 클라이언트가 SMB 인증 패킷을 보내면 해시된 비밀번호가 포함됩니다. 동일한 알고리즘을 사용하는 다른 비밀번호 해시와만 비교할 수 있습니다.

(지난 천년 동안의 매우 오래된 지침에서는 Samba에서 비밀번호 암호화를 비활성화하고 일부 레지스트리 해킹 기술을 사용하여 Windows가 네트워크에 암호화되지 않은 비밀번호를 발행하도록 허용하는 것을 제안했을 수 있습니다. 이 조언은 다음과 같습니다.쓸모없는: 이러한 레지스트리 해킹은 현재 버전의 Windows에서는 더 이상 작동하지 않으며 네트워크 트래픽을 염탐할 수 있는 사람은 누구나 쉽게 암호를 알아낼 수 있습니다. )


클라이언트 측에서 수행해야 할 작업이 하나 더 있습니다. Windows 클라이언트 시스템이 Active Directory 도메인에 가입하고 AD 계정을 사용하여 로그인하면 자격이 없는 모든 사용자 이름 앞에 사용자의 AD 도메인 이름이 자동으로 붙습니다. 즉, 인증을 받을 AD_DOMAIN\your_username뿐만 아니라 인증을 받게 됩니다 your_username.

로컬 계정을 사용하여 로그인하는 경우(또는 클라이언트 시스템이 AD 도메인에 가입되어 있지 않은 경우) Windows는 자동으로 사용자 이름 앞에 다음을 붙일 수 있습니다.클라이언트 호스트 이름다른 도메인 이름을 지정하지 않는 한.

독립형 Windows 클라이언트에서 독립형 Samba 서버에 성공적으로 로그인하려면 사용자 이름을 지정해야 할 수도 있습니다 SAMBA_SERVER_HOSTNAME\your_username.

그렇지 않으면 Samba는 사용자 이름을 보고 WINDOWS_CLIENT_HOSTNAME\your_username해당 도메인에 속한 사용자를 인증할 수 없다고 가정하고 WINDOWS_CLIENT_HOSTNAME로그인을 거부합니다.

(Samba의 최신 버전가능한이 특정 사례에 대한 기본 검사가 있으며 여전히 액세스가 허용될 수 있습니다. 그러나 이것은 기본적으로 SMB 인증이 "내부적으로" 작동하는 방식이며 이전 버전의 Samba를 처리해야 하는 경우 여전히 유용할 수 있습니다. )

답변3

내 경우에는 기본 작업 설정(SABA 게스트 기능을 사용하면 /myfolder 액세스가 적합함)[your_SAMBA-Unix_share_user_account]):

[global]
guest account = [your_SAMBA-Unix_share_user_account]

[mymfolder]
path = /myfolder
browseable = yes
read only =no
guest ok =yes

동시에 여러 사용자가 로그인하는 것은 허용되지 않는 것처럼 보이므로 이 SAMBA 서버에서 Windows 시스템의 다른 매핑된 드라이브를 연결 해제하는 것이 중요합니다.

답변4

yaegashi의 답변은 다음과 같습니다.

    create mask = 0644
    directory mask = 0755
    force user = shareuser

그러나 이것은 나에게 효과가 없습니다. 나는 다음 제안을 따랐습니다.이 게시물작동하는 것 :

    create mask = 0660
    directory mask = 0770
    force user = shareuser

또한 공유 권한을 올바르게 설정해야 합니다.원래 답변.

관련 정보