Làm cách nào để gắn kết chia sẻ CIFS qua FSTAB và cung cấp RW đầy đủ cho Khách


33

Tôi muốn tạo một thư mục Công cộng có quyền truy cập RW đầy đủ. Vấn đề với cấu hình của tôi là người dùng Windows không gặp vấn đề gì với tư cách khách (họ có thể RW và Xóa), ứng dụng khách Ubuntu của tôi không thể làm như vậy. Chúng tôi chỉ có thể viết và đọc, nhưng không thể tạo hoặc xóa.

Đây là smb.conf của tôi từ máy chủ của tôi:

[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

Mục nhập FSTAB sau đây không mang lại quyền truy cập R / W đầy đủ cho chia sẻ.

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

Điều này cũng không hoạt động

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

Sử dụng vị trí sau trong Nemo / Nautilus với chức năng Chia sẻ được gắn kết hoạt động:

smb://192.168.0.5/storage/

Thông tin thêm. Tôi chỉ nhận thấy rằng nếu tôi sao chép tệp vào chia sẻ sau khi cài đặt, máy khách Ubuntu của tôi ngay lập tức biến "không ai" trở thành chủ sở hữu và nhóm "không có nhóm" đã đọc và viết, với mọi người khác là chỉ đọc.

nhập mô tả hình ảnh ở đây

Tôi đang làm gì sai?


Vì vậy, hãy cho tôi xem: bạn có thể gắn kết chia sẻ từ máy khách Ubuntu của mình (với quyền root tôi giả sử đã cho các mục nhập fstab của bạn), sau đó bạn có thể đọc và viết, nhưng bạn không thể xóa hoặc tạo? Làm thế nào mà bạn có thể sao chép (để sao chép, tạo một tập tin là bắt buộc)?
Tháng Một

Câu trả lời:


56

Hóa ra tôi cần thêm UID cục bộ (máy khách) vào dòng gắn kết trong FSTAB để thực hiện công việc này. Tôi đến đây thông qua lực lượng vũ phu:

//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
Một vấn đề phổ biến và không có câu trả lời nào cả ... Tuyệt vời!
dan3

Ohhh, chỉ là những gì tôi cần ... cảm ơn rất nhiều - tìm kiếm điều này trong nhiều giờ!
pkdkk

1
Một hình ảnh xác thực khác: Đảm bảo đã cifs-utilsđược cài đặt (đối với tôi, nó chưa được cài đặt dưới 16.04 sau khi cài đặt samba pkg "chính"). Nếu bạn chưa cài đặt nó, bạn sẽ gặp lỗi 'tùy chọn xấu / tùy chọn xấu'.
bshea

Sau khi tôi cài đặt, tôi sử dụng perms trong câu trả lời khác và thêm: //10.20.30.40/share/mysharedir /mnt/mymountpoint cifs guest,uid=nobody,iocharset=utf8,noperm 0 0 vào /etc/fstablúc đó sudo mount -a. Có vẻ để gắn kết / viết tốt bây giờ.
bshea

Đối với tôi, một phiên bản đơn giản hơn một chút (không có uid) đã hoạt động để gắn R / W đúng cách cho tất cả người dùng chia sẻ công khai từ một máy linux khác://server_name/share_name /media/local_mountpoint cifs guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
woohoo

6

CIFS thường không có bất kỳ khái niệm nào về người dùng và nhóm, do đó, việc chia sẻ cifs sẽ mặc định hiển thị người dùng và nhóm là 'không ai':

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

Vì bạn không phải là 'không ai' Linux sẽ không cho phép bạn viết thư cho bất cứ điều gì không có quyền 0777 trừ khi bạn sử dụng sudo. Để khắc phục điều này, hãy thêm uid = mylogin, gid = mygroup vào fstab và nó sẽ làm cho chia sẻ xuất hiện như thể đó là thư mục của riêng bạn:

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

Bây giờ bạn có toàn quyền kiểm soát mà không cần sudo.

Điều này không thực sự không thay đổi bất cứ điều gì trên máy chủ, vì máy chủ không thực thi bất cứ điều gì. Nó bảo Linux giả vờ rằng bạn là chủ sở hữu và cung cấp cho bạn quyền truy cập không hạn chế.


1
Có nếu sử dụng khách / không ai / vv. Đảm bảo các thư mục cha mẹ có đầy đủ đọc / ghi / thực thi. Tôi sử dụng perm này trên một số chia sẻ mạng nội bộ - vì vậy đó không phải là vấn đề bảo mật. Nâng cấp
bshea

Nhưng trái ngược với bài đăng của bạn - Tôi đã có thể sử dụng userid 'none' (để gắn kết) khi nó có các tùy chọn chính xác để gắn. Xem những bình luận khác của tôi ..
bshea

Đây là một giải pháp tốt hơn nhiều so với việc đặt quyền rộng rãi cho mọi người trên các tệp được gắn. Và nó hoạt động.
j08

5

Bạn gần như ở đó. Mở FSTAB bằng cách sử dụng:

sudo nano /etc/fstab

Trong dòng cuối cùng (hoặc trên dòng cuối cùng), đặt:

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

*** (đây là tất cả một dòng dài)

Ctrl- Xđể đóng, Ylưu và nhập để đóng dấu thỏa thuận.

Bây giờ khởi động lại bằng cách:

sudo reboot

Và bạn nên có toàn quyền kiểm soát chia sẻ mạng trên thiết bị Linux của mình!


1
Bạn có thể muốn thay thế mật khẩu đó bằng mật khẩu mẫu.
Tiêu điểm

9
Người ta không cần phải khởi động lại để gắn kết fstabcác mục. Chỉ mount <DEVICE>hoặc mount <MOUNTPOINT>hoặc thậm chí mount -alàm công việc tốt.
David Foerster

1

Tôi gặp vấn đề này và đó là do người dùng chia sẻ không sở hữu nó. Tôi đã sửa nó bằng "sudo chown {username}: {username} / {share} / {path}" sau đó tôi có thể di chuyển và xóa các tập tin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.