기본적으로 제가 겪고 있는 문제는 Samba
로컬 파일 시스템과 로컬 파일 시스템 간의 권한 불일치입니다. 파일 권한을 로컬로 설정하고 -r--r--r--
를 chmod 444 textfile.txt
사용하여 이러한 설정을 확인했습니다 ls -al
. 그런 다음 Samba 마운트를 수행합니다. Samba를 통해 동일한 파일의 권한을 보면 또는 이 표시되지만 -rwxr-xr-x
이 -r-xr-xr-x
표시되지 않습니다 -r--r--r--
. 이는 Linux 시스템이 자체를 보고 있는 경우에도 발생합니다 Samba
.
다양한 공급업체와 버전을 사용하는 Linux VM(Windows VM도 포함되지만 이 문서에서는 Linux만 다룹니다) 간에 Samba를 사용해야 합니다. CentOS 7 & 8
, RedHat 7 & 8
및 을 사용하여 OpenSUSE 15
테스트하고 있습니다 SUSE 15
. 이러한 Linux 배포판의 모든 순열에서 비슷한 결과를 얻었습니다. 올바르게 작동하는 유일한 방법은 CentOS8
Samba 서버로서 Samba 클라이언트로 작동하는 것입니다. 이것은 표시된 권한이 로컬로 표시된 권한과 일치하는 유일한 경우입니다 OpenSUSE15
.Samba
예, NFS
더 쉬울 텐데 통과해야 했습니다 Samba
. 이것은 단지 테스트 환경일 뿐이라는 점에 유의하십시오. 아래 내용 중 일부는 환경을 단순화하려는 나의 시도를 반영합니다. 모든 것이 작동되면 보안을 강화하겠습니다.
내 설정과 단계는 다음과 같습니다.
에서는 smb.conf
전체 드라이브를 C
. SMB
사용자 에게 루트를 추가 하고 비밀번호를 할당했습니다.
[global]
workgroup = WORKGROUP
wins support = yes
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[C]
Path = /
Browseable = yes
Writeable = yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
저는 동일한 가상 머신, 단계, 파일, 모든 순열을 사용합니다. 모든 가상 머신에 대해 PuTTY를 통해 루트로 bash 셸에 로그인합니다.
서버 컴퓨터에서 텍스트 파일이 포함된 폴더를 만들고 권한을 할당하고 확인합니다.
mkdir /temp
cd /temp
cp /etc/samba/smb.conf /temp/smb.conf
It could be any file, I'm using smb.conf as an example.
chmod 444 smb.conf
ll smb.conf
-r--r--r-- 1 root root <size> <date> smb.conf
클라이언트 시스템에서 설치 명령을 실행하고 다음을 통해 파일 권한을 확인합니다 Samba
.
mkdir /mnt/test
mount -t cifs //svrname/c /mnt/test -o username=root,password=mypasswd
In the simplest loopback case, svrname is 'localhost'.
ll /mnt/test/temp/smb.conf
-rwxr-xr-x 1 root root <size> <date> smb.conf
Samba
다음과 같은 로컬 권한을 일치시키려면 파일의 권한 보기가 필요합니다 .
ll /mnt/test/temp/smb.conf
-r--r--r-- 1 root root <size> <date> smb.conf
-rwxr-xr-x
그러나 위에서 언급한 한 가지 경우를 제외하고는 항상 or 가 보입니다 -r-xr-xr-x
.
다양한 방법을 시도했지만 성공하지 못했습니다. 어떤 아이디어가 있나요?
고마워요, 제프
답변1
Samba Unix 확장이 활성화되어 있는지 확인하십시오. 예를 들어,:
[global]
unix extensions = yes
⋮
그렇지 않으면 프로토콜은 Unix 권한이 아닌 Windows 권한(ACL)만 지원합니다. (나는 예가 기본값이라고 생각하지만 배포판이 이를 변경했을 수도 있습니다).
마찬가지로 마운트하려면 활성화해야 하며 옵션이 있습니다 unix
. 또한 guest ok = no
실제로 인증되었는지 확인하고 실수로 방문자가 방문하지 않도록 설정하는 것이 좋습니다 .