IT 담당자가 사망한 회사에서 일하는 친구가 있는데 그 친구가 다른 사람을 채용할 수 있을 때까지 도와주려고 합니다. Linux 서버와 네트워크로 연결된 작업 그룹입니다. 그들은 최근 파일 공유에 액세스해야 하는 새로운 직원을 고용했습니다. 저는 Linux를 사용한 적이 없지만 사용자를 생성하려고 시도했지만 파일 공유에 액세스할 수 없었습니다.
물론 그가 server\server1에 액세스하려고 하면 연결할 수 없습니다.
이것이 제가 현재 있는 곳입니다.
나는 그들의 서버에 chris라는 사용자를 생성하고 그를 그룹이라고 생각한 것에 추가했습니다.
cary 사용자가 올바르게 설정되어 있고 파일 공유에 액세스할 수 있으므로 그의 액세스를 복제해 보았습니다.
여기 id chris와 id cary가 있고 제가 생각하기에 문제가 될 수 있는 것이 있습니다.
uid=1010(cary) gid=100(users) groups=100(users),101(cad),1005(samba)
uid=1035(chris) gid=1035(chris) groups=1035(chris),100(users),101(cad),1005(samba)
Chris에 대한 첫 번째 GID는 1035이므로 100으로 변경해야 한다고 가정합니다. 그렇다면 그의 groups=1035(chris)는 전혀 존재하지 않아야 합니까?
어떤 도움이라도 대단히 감사하겠습니다! 감사해요!
답변1
사용자 Chris의 기본 그룹을 다음과 같이 변경하는 것이 좋습니다.
usermod -g users chris
이렇게 하면 기본 그룹이 다음에서 chris
변경 됩니다.chris(1035)
users(100)
삼바가 어떻게 구성되어 있는지 모르기 때문에 이것이 제가 제안할 수 있는 전부입니다. 아래 표시된 대로 언제든지 원래 구성으로 다시 전환할 수 있습니다.
usermod -g chris chris
또한 그룹에서 변경 사항을 적용한 후에는 사용자가 로그아웃했다가 다시 로그인했는지 확인하십시오.
답변2
Samba에 액세스하려면 Linux의 사용자 그룹은 무엇이어야 합니까?
drwxrwxrwx
이는 Linux [samba] 서버에서 파일을 보호하기 위해 관리상 의미가 있는 그룹이어야 하며, 다음 과 같이 Linux에 설정된 폴더 및 파일 권한의 간단한 컨텍스트에 있어야 합니다.ls -l
- 클라이언트에서 서버로 삼바 인증이 성공하면 Linux 파일 시스템 권한이 적용됩니다. 따라서 필요에 따라 Linux의 파일/폴더에 그룹 권한을 적용해야 하지만 사용자는 이를 보려면 해당 파일/폴더에 액세스할 수 있어야 합니다. 터미널에서 직접 Linux에 로그인하든, Samba 연결을 통해 로그인하든 상관없습니다.
- Linux 버전에 대해서는 언급하지 않았지만,SELinux영향을 받으면
samba_share_t
삼바 서버의 공유 폴더에 selinux 레이블을 적용해야 합니다. 그렇지 않으면 먼저 삼바 서버에 연결할 수 있지만 그 후에는 폴더에 대한 액세스가 거부됩니다.- 프롬프트에서 이 작업을 수행
setenforce 0
하고 삼바 액세스가 즉시 작동하는지 확인하는 것은 문제가 selinux로 인해 발생했는지 진단하는 쉬운 방법입니다. 그렇다면setenforce 1
먼저 다시 켜서sestatus
문제가 무엇인지 확인하세요. setsebool -P samba_enable_home_dirs on
설명을 참조하세요/etc/samba/smb.conf.example
.
- 프롬프트에서 이 작업을 수행
사용자가 처음에 Windows PC(클라이언트)에서 \\192.168.1.1
(*또는 Samba 서버 IP 주소를 실행하여) Samba [Linux] 서버에 연결할 수 없는 경우 Windows 사용자 계정 이름이 해당 계정과 일치하는지 확인하십시오. 이름이 linux에 나열되어 /etc/passwd
있으면 모든 사용자에 대해 삼바 비밀번호를 설정해야 합니다. 이 비밀번호는 에 표시된 계정 이름을 보면 알 수 있습니다 . 삼바 비밀번호가 Windows NT 비밀번호(Windows PIN 아님)와 일치하는 /etc/samba/smb.conf
경우 ) 삼바 서버가 액세스 권한을 부여합니다.passdb backend = tdbsam
smbpasswd -a <username>
pdbedit -L