FSTAB를 통해 CIFS 공유를 마운트하고 게스트에게 전체 RW를 제공하는 방법


33

전체 RW 액세스 권한이있는 공용 폴더를 만들고 싶습니다. 내 구성의 문제는 Windows 사용자가 게스트로 문제가 없으며 (RW 및 삭제 가능) 내 Ubuntu 클라이언트가 동일하게 수행 할 수 없다는 것입니다. 쓰기와 읽기만 할 수 있지만 만들거나 삭제할 수는 없습니다.

내 서버의 내 smb.conf는 다음과 같습니다.

[global]
    workgroup = WORKGROUP
    netbios name = FILESERVER
    server string = TurnKey FileServer

    os level = 20
    security = user
    map to guest = Bad Password
    passdb backend = tdbsam
    null passwords = yes

    admin users = root
    encrypt passwords = true
    obey pam restrictions = yes
    pam password change = yes
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

    add user script = /usr/sbin/useradd -m '%u' -g users -G users
    delete user script = /usr/sbin/userdel -r '%u'
    add group script = /usr/sbin/groupadd '%g'
    delete group script = /usr/sbin/groupdel '%g'
    add user to group script = /usr/sbin/usermod -G '%g' '%u'

    guest account = nobody

    syslog = 0
    log file = /var/log/samba/samba.log
    max log size = 1000

    wins support = yes
    dns proxy = no

    socket options = TCP_NODELAY
    panic action = /usr/share/samba/panic-action %d


[homes]
    comment = Home Directory
    browseable = no
    read only = no
    valid users = %S

[storage]
    create mask = 0777
    directory mask = 0777
    browseable = yes
    comment = Public Share
    writeable = yes
    public = yes
    path = /srv/storage

다음 FSTAB 항목은 공유에 대한 전체 R / W 액세스를 제공하지 않습니다.

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0

이것은 작동하지 않습니다

//192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

마운트 된 공유없이 Nemo / Nautilus에서 다음 위치를 사용하면 작동합니다.

smb://192.168.0.5/storage/

추가 정보. 마운트 후 파일을 공유에 복사하면 Ubuntu 클라이언트가 즉시 "nobody"를 소유자로 만들고 "no group"그룹은 다른 사람과 읽기 및 쓰기 권한을가집니다.

여기에 이미지 설명을 입력하십시오

내가 무엇을 잘못하고 있지?


자, 우분투 클라이언트에서 공유를 마운트 할 수 있습니다 (루트로 fstab 항목이 있다고 가정하면) 읽고 쓸 수는 있지만 삭제할 수는 없습니까? 그렇다면 복사 할 수있는 방법은 무엇입니까 (복사를 위해서는 파일을 작성해야합니다)?
1 월

답변:


56

이 작업을 수행하려면 로컬 (클라이언트) UID를 FSTAB의 마운트 라인에 추가해야합니다. 나는 엄청나게 무력을 통해 이것에 도착했다.

//192.168.0.5/storage /media/myname/TK-Public/ cifs guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0

3
일반적인 문제이며 전혀 대답이 없습니다.
dan3

오, 내가 필요한 것 ... 많은 감사합니다-이것을 몇 시간 동안 찾고 있습니다!
pkdkk

1
또 다른 문제 : cifs-utils"main"samba pkg 설치 후 16.04 아래에 설치되지 않았는지 확인하십시오 . 설치되어 있지 않으면 'bad fs / bad option'오류가 발생합니다.
bshea

설치 한 후 다른 답변에 perms를 사용 //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 하고 /etc/fstab다음에 추가했습니다 sudo mount -a. 이제 마운트 / 쓰기가 잘되는 것 같습니다.
bshea

나를 위해, 약간 더 간단한 버전 (uid 제외)은 다른 리눅스 머신에서 모든 사용자에게 공개 공유를 올바르게 R / W 마운트하기 위해 일했습니다.//server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
woohoo

6

CIFS에는 일반적으로 사용자 및 그룹 개념이 없으므로 cifs 공유를 마운트하면 기본적으로 사용자 및 그룹이 'nobody'로 표시됩니다.

drwxdrwxdrwx. 3 nobody nobody 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 nobody nobody 0 Sep 29 09:00 ..

당신은 '아무도'가 아니기 때문에 리눅스는 sudo를 사용하지 않으면 0777 권한이없는 어떤 것도 쓸 수 없습니다. 이 문제를 해결하려면 uid = mylogin, gid = mygroup을 fstab에 추가하면 공유가 마치 자신의 디렉토리 인 것처럼 나타납니다.

drwxdrwxdrwx. 3 mylogin mygroup 0 Sep 29 09:00 .
drwxdrwxdrwx. 9 mylogin mygroup 0 Sep 29 09:00 ..

이제 sudo가 없어도 완전히 제어 할 수 있습니다.

서버가 아무것도 시행하지 않기 때문에 실제로 서버의 아무것도 변경하지는 않습니다. 리눅스에게 당신이 소유자 인 것처럼하고 무제한 액세스 권한을 부여하라고 지시하고 있습니다.


1
guest / nobody / etc를 사용하는 경우 예 상위 폴더에 전체 읽기 / 쓰기 / 실행이 있는지 확인하십시오. 일부 내부 네트워크 공유에서이 파마를 사용하므로 보안 문제가 아닙니다. 공감
bshea

그러나 귀하의 게시물과 달리-올바른 장착 옵션이있을 때 사용자 장착 'nobody'(마운트 용)를 사용할 수있었습니다. 내 다른 의견을 참조하십시오 ..
bshea

이것은 마운트 된 파일의 모든 사람에게 광범위한 권한을 설정하는 것보다 훨씬 더 나은 솔루션입니다. 그리고 작동합니다.
j08lue

5

거의 다 왔습니다. 다음을 사용하여 FSTAB을여십시오.

sudo nano /etc/fstab

마지막 줄 또는 마지막 줄에서 :

//192.168.0.5/storage /media/myname/TK-Public/ cifs username=YOURUSERNAME,password=YOURPASSWORD,iocharset=utf8,file_mode=0777,dir_mode=0777

*** (이것은 모두 하나의 긴 줄입니다)

Ctrl- 거래 X를 닫으 Y려면 저장하고 입력하십시오.

다음으로 재부팅하십시오 :

sudo reboot

Linux 장치에서 네트워크 공유를 완전히 제어 할 수 있어야합니다!


1
해당 비밀번호를 예제 비밀번호로 바꾸려고 할 수 있습니다.
Spotlight

9
fstab항목 을 마운트하기 위해 재부팅 할 필요는 없습니다 . 그냥 mount <DEVICE>또는 mount <MOUNTPOINT>심지어 mount -a일을 잘합니다.
David Foerster

1

나는이 문제가 있었고 공유 사용자가 그것을 소유하지 않았기 때문입니다. "sudo chown {username} : {username} / {share} / {path}"로 수정 한 후 파일을 이동하고 삭제할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.