
최근 Linux 서버에 Samba를 설정하고 Windows 시스템에서 공유 드라이브를 쉽게 발견했지만 추가 권한을 요구하기 때문에 해당 드라이브에 파일을 복사할 수 없었습니다.
777 권한으로 하위 폴더에 쓸 수 있었지만 기본 드라이브에는 775 권한이 있었습니다.
777 권한은 매우 안전하지 않다는 조언을 받았는데, Linux 서버에 사용자 수준 권한이 없는 Windows에서 검색하는 사용자를 포함하도록 그룹을 수정하려면 어떻게 해야 합니까?
이것은 홈 네트워크이며 Samba 서버에 대한 액세스는 네트워크 외부로부터의 액세스를 방지하는 전역 설정을 통해 제한됩니다(/etc/samba/smb.conf에 다음 줄을 추가).
[global]
hosts allow = 192.168.0.
hosts deny = ALL
따라서 네트워크 내의 보안에 대해서는 걱정하지 않습니다. 사용자가 192.168.0.x 서브넷에 있는 경우 해당 사용자가 합법적이라고 가정하고 현재로서는 추가 인증 단계를 추가하고 싶지 않습니다.
답변1
나는 당신이 원하는 것을 봅니다. LAN의 모든 사용자/컴퓨터는 '게스트'여야 하며 파일 공유에 대한 전체 '읽기/쓰기' 액세스 권한을 가지고 있어야 합니다.
단계:
삼바 구성을 확인하세요. 공유에 다음이 포함됩니까?
[Share]
available = yes
browsable = yes
public = yes
writeable = yes
POSIX 권한을 확인하세요. 예 ls -lh:
drwxrws---+ 1 nobody nogroup 252 May 12 14:55 Music
그렇지 않으면 Windows에서 예상한 대로 파일 공유가 작동하지 않을 것입니다. chmod 2770 [dir]... 모든 디렉토리에 대한 권한을 적용하려면 find를 사용하십시오. 예
find . -type d -exec chmod 2770 {} \;
find . -type f -exec chmod 2760 {} \;
또한 그룹을 Samba의 기본 게스트 그룹인 nogroup으로 설정하려고 합니다.
마지막으로 ACL입니다. 사용getfacl그리고설정. 사용자 none 및 그룹 nogroup에 대한 기본값을 설정하려고 합니다. 이 작업을 수행하면 Samba를 통해 생성된 모든 항목은 좋은 권한을 상속받게 됩니다. 다음은 디렉터리 ACL의 예입니다.
# file: Downloads
# owner: nobody
# group: nogroup
# flags: -s-
user::rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---
일부 기본값을 사용하려면 find를 사용하십시오.
find . -type d -exec setfacl -d -m u::rwx {} \;
find . -type d -exec setfacl -d -m g::rwx {} \;
기존 파일을 수정하려면:
find . -type f -exec chgrp nogroup {} \;
find . -type f -exec chmod 660 {} \;
find . -type f -exec setfacl -m g::rw {} \;
더 원해 !
POSIX 그룹을 변경하고 싶지 않다고 가정해 보겠습니다. 그런 다음 ACL을 사용하여 그룹을 명시적으로 추가할 수 있습니다. 예:
setfacl -m g:linuxgroup:rw [filename]
이러한 설정을 사용하여 우분투, Windows, RPi, Android 및 기타 Linux 앱 간에 공유합니다.
답변2
일반적으로 네트워크 액세스 권한이 있는 모든 사람에게 디렉토리에 대한 쓰기 액세스 권한을 부여하고 싶지 않습니다. 사용자 그룹 간에 파일을 공유하는 더 나은 솔루션이 있는 경우가 많습니다. 예를 들어 모든 사람에게 자신만의 네트워크 공유를 제공하고 다른 모든 사람에게는 (부분) 읽기 액세스 권한을 부여하는 것입니다. 이것이 바로 누구나 쓸 수 있는 액세스 권한을 사용하지 말라는 권장 사항이 나온 곳입니다.
그러나 귀하의 경우에는 그것이 정확히 귀하가 원하는 것 같습니다. 따라서 chmod -R a+rwX /path/to/share
1 과 같은 적절한 Samba 구성 항목과 함께 사용하십시오 writable = yes
.
1은 a+rwX
다음을 의미합니다ㅏll(소유자, 그룹 등)이 수신합니다.아르 자형에드,승의식및 조건부이자형엑스실행하다권한. "조건부"는 실행/통과 권한이 하나 이상의 액세스 그룹(소유자, 그룹, 기타)에 이미 부여된 경우에만 실행/통과 권한이 추가된다는 의미입니다. 이는 소유자가 이미 실행/통과할 수 있는 파일 및 디렉터리의 실행/통과 권한을 확장하려는 경우에 유용합니다.