V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
LxnChan
V2EX  ›  Linux

samba 是否能够在同一主机内做到不同文件夹不同权限?

  •  
  •   LxnChan ·
    lxnchan · 2022-02-23 22:45:13 +08:00 · 2886 次点击
    这是一个创建于 1009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有三块硬盘:publicdata 、privatedata 、prosoft 。

    需要用 samba 做到:PublicData 所有人可读可写; PrivateData 部分账户可读可写; ProSoft 全部账户只读不可写。

    请问大家 smb.conf 需要如何配置?或者是否有类似案例的完整可供参考的记录?在 CSDN 上面搜出来的很多感觉都象是爬虫爬出来的,不是不全就是乱七八糟。不必向我重复推官方文档,谢谢。

    9 条回复    2022-02-26 23:17:42 +08:00
    vonsy
        1
    vonsy  
       2022-02-23 22:56:35 +08:00   ❤️ 2
    可以. 下面我共享了两个文件夹 share, backup, 系统用的是 ubuntu

    // 安装 Samba
    sudo apt install samba

    // 修改 Samba 配置文件
    /etc/samba/smb.conf
    [global]
    workgroup = WORKGROUP
    security = user
    # Added by fsy
    min protocol = SMB2
    ea support = yes
    fruit:nfs_aces = no

    [share]
    comment = Ubuntu File Server Share
    path = /zion/share
    writeable = yes
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
    force user = fsy

    [backup]
    comment = Time Machine Backup
    path = /zion/share/backups
    writeable = yes
    browsable = yes
    public = yes
    read only = no
    create mask = 0755
    force user = fsy
    vfs objects = catia fruit streams_xattr
    fruit:aapl = yes
    fruit:metadata = stream
    fruit:model = MacPro
    fruit:time machine = yes
    fruit:posix_rename = yes
    fruit:veto_appledouble = no
    fruit:wipe_intentionally_left_blank_rfork = yes
    fruit:delete_empty_adfiles = yes

    ps: Note that guest ok is a synonym for public.
    Osk
        2
    Osk  
       2022-02-23 23:04:40 +08:00   ❤️ 2
    没有任何问题, 这是基本功能. 之前配过, 但配置文件丢了, 给一份现编的参考:

    ```conf
    [public]
    path = /share/public
    guest ok = no # 不允许来宾访问
    browseable = yes

    # 建议的几个选项
    force create mode = 0640 # 通过 smb 的 linux 文件都将是这个权限, OR (或)运算的权限位, 这是指的放 linux 文件系统中的权限, 和客户端通过 smb 访问得到的权限关系不是很大(客户端能看到权限的)
    force directory mode = 0750 # 同上, 也是 OR 运算的
    force user = xxxx # 强制使用这个 linux 本地用户身份访问共享的文件, 不管客户端用哪个身份登陆的, 建议不要设成 root
    read list = user1, user2, user3 # 哪些用户可以读取
    write list = user1 # 哪些用户可以写入, 忘了和下面 readonly 谁的优先级更高了.
    readonly = yes # 只读共享, 不能写入
    ```
    Osk
        3
    Osk  
       2022-02-23 23:06:40 +08:00   ❤️ 1
    多用户访问时 force user 很有用, 不然可能会出现用户无法别人创建的文件的问题
    littlewing
        4
    littlewing  
       2022-02-23 23:58:34 +08:00
    @Osk 多谢,学到了 force user 配置,刚遇到这个问题
    LxnChan
        5
    LxnChan  
    OP
       2022-02-24 08:51:22 +08:00
    @vonsy 请问一下,fruit 参数是控制什么的呢?
    vonsy
        6
    vonsy  
       2022-02-24 09:50:25 +08:00
    @LxnChan 与 macos 相关的设置,backup 用来给 mac 备份, 这有参数说明: https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.html

    global 是全局配置
    share, backup 是共享的文件夹,单个设置

    nfs, samba 在各系统下都不太一样, 如果遇到问题就修改参数试试,多试试, 最好的帮助是 man samba
    LxnChan
        7
    LxnChan  
    OP
       2022-02-24 22:23:11 +08:00
    @vonsy 好的,谢谢。
    LxnChan
        8
    LxnChan  
    OP
       2022-02-26 21:36:13 +08:00
    @Osk 您好,请问一下有没有哪个参数能控制某个文件夹禁止某用户访问?
    Osk
        9
    Osk  
       2022-02-26 23:17:42 +08:00
    @LxnChan 建议把这个文件夹拆成单独的共享来控制权限哦, 不然一个共享下搞子文件夹的权限限制容易混乱.

    samba 的权限:
    首先是你在 smbd 中配置的权限, 然后是 linux 本地文件系统的权限 (若设置了 force user, 此限制是针对你这里指定的用户). 两者缺一不可, 不然都会无法访问.

    根据这个规则你可以来自己调整 smb 访问权限和 linux 文件系统的权限来满足需求.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1663 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:56 · PVG 00:56 · LAX 08:56 · JFK 11:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.