ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

CentOS 8中Smaba服务的匿名访问以及权限控制

2021-11-18 19:31:09  阅读:203  来源: 互联网

标签:文件 samba CentOS 权限 share 匿名 home yes Smaba


开心一刻

       高考前:保护动物
       高考时:国家重点保护动物
       高考后:四害!

写在前面

       上一篇博文已经介绍了samba服务的安装与配置以及使用账户密码访问文件共享服务,这一篇博文主要介绍samba服务的匿名访问以及权限设置,这里我主要实现类似学生交实验作业的场景,即只能上传文件,不能下载删除、修改、查看已经上传的文件,所有的权限只能由samba真实账户操作。

Samba服务配置(匿名访问)

这里是我自己的配置文件内容,我在修改的时候先用cp命令做了一下备份。

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

这里是我的配置文件信息:

[global]
        workgroup = SAMBA
        security = user
        map to guest = bad user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[home]
        comment = Do not arbitrarily modify the file
        path = /home/share
        public = yes
        inherit owner = yes
        create mask = 0600
        directory mask = 0777
        writable = yes

匿名访问必须要有的参数:map to guest = bad user、public = yes
权限控制必须要有的参数:inherit owner = yes、create mask = 0600、directory mask = 0777、writable = yes
几个重要的参数说明:

参数 作用
map to guest = bad user 匿名用户最主要就是添加这行,可以实现匿名访问,而且匿名访问时默认会被映射为nobody用户
guest account = nobody 如果匿名用户不想映射为nobody,可以在这里修改,不过必须是系统已存在的用户
security = user 安全验证的方式,就使用默认的user即可,较新的samba服务将share和server弃用了,具体可以查看/etc/samba/smb.conf.example的说明
public = yes 是否公开(指明该共享资源是否能给游客帐号访问)
guest ok = yes 与public意思相同
inherit owner = yes 上传的文件继承父目录的所有者, 而不是使用登录的账号名。
create mask = 0600 创建或上传文件时文件的权限
directory mask = 0777 创建或上传目录时目录将被赋予的权限
writable = yes 是否可上传文件

几个重要参数解释:
inherit owner = yes,以我设置的为例,用户上传文件时会自动继承/home/share目录的所属主,而不是nobody
修改好后重启samba服务,可以使用testparm命令检查samba配置文件内容是否正确。
create mask = 0600,远程访问时,创建的文件权限为0600,即只有文件所属主才能读取、更改文件内容,而文件所属主为share的所属主,所以nobody用户无法查看和修改文件内容
directory mask = 0777,远程访问时,创建的目录权限为0777,因为目录要有rwx权限才能查看目录中的文件以及创建文件删除文件,所以这里设置的权限是777,其实保证最后一个是7就可以,这样nobody用户就是可以查看文件夹中的内容的。

sudo systemctl restart smb
sudo systemctl enable smb #第一次使用可以将其加入到开机启动项,让其开机自动启动。

防火墙开放samba服务和修改Selinux域策略可参考上一篇博文

修改Selinux安全上下文策略

这一步我在实际测试的时候发现不是必须的,因为我的共享目录是在家目录下的,我已经将Selinux域策略开启,samba已经能够访问家目录下的文件了。但还是把修改Selinux安全上下文策略的方法写出来。

在root用户下执行,否则在命令前面加上sudo
mkdir /home/share
chmod 777 /home/share
chmod g+s /home/share
semanage fcontext -at samba_share_t /home/share
restorecon -Rv /home/share

chmod 777 /home/share这条命令是为了让nobody用户可以读取share目录的内容以及在share目录中上传或创建文件。
chmod g+s /home/share这条命令是为了在share目录中创建的文件都自动继承share的所属组,而不是nobody。这些内容涉及linux中文件的一般权限、特殊权限和隐藏权限,不过我这里没有用到隐藏权限。

成功设置后,可以找一台同一个局域网中的电脑,然后使用win+R组合键,在运行框中输入\\samba服务器ip地址,然后回车,如果设置没有问题,就会弹出一个要求输入账号密码的对话框,但是对话框中需要随便输入一些字符,但是不能为空

结语

       这篇博文介绍在CentOS8中配置samba服务程序,实现samba的匿名访问以及权限控制,实现远程访问samba服务程序是,只能上传文件,而不能下载、修改和删除。其他linux发行版大同小异,若是嫌麻烦,甚至可以直接关掉防火前和Selinux,只需要将samba配置文件设置好即可。_

文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步

标签:文件,samba,CentOS,权限,share,匿名,home,yes,Smaba
来源: https://www.cnblogs.com/xingyu666/p/15573969.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有