Samba服务权限配置案例
文件共享是在企业办公网络中经常用到的一项功能,如何设置并使用文件共享在技术上并不复杂,其中的问题主要集中在权限配置方面。
本文以世界技能大赛网络系统管理赛项中的一道题目作为案例,详细分析了如何利用Samba服务结合系统权限来完成各种复杂的权限设置,本文所采用的系统版本为CentOS7。 1. 任务需求与分析将/share/archive目录创建为samba共享,并完成下列要求: 2. Samba常规配置在CentOS7系统中所提供的Samba版本为4.6.2,软件默认没有安装,首先执行下列命令安装、启动服务,并将之设为开机自动运行。 # yum install samba # systemctl start smb # systemctl enable smb Samba的配置文件为“/etc/samba/smb.conf”,下面在配置文件中定义共享,相关设置项如图1所示。 对设置项的解释: # mkdir -p /share/archive # chmod 777 /share/archive 接下来再创建Samba用户。由于Samba用户要以系统用户为基础,因而需要先创建出系统用户之后,再将其添加为Samba用户。这里为了进行测试,额外再创建一个Samba用户maliu。 # useradd -s /sbin/nologin zhangsan # useradd -s /sbin/nologin lisi # useradd -s /sbin/nologin wangwu # useradd -s /sbin/nologin maliu 下面将这些系统用户添加为Samba用户,同时需要为每位用户指定密码。需要注意的是,Samba用户的密码与系统用户的密码没有任何关系。 # smbpasswd -a zhangsan # smbpasswd -a lisi # smbpasswd -a wangwu # smbpasswd -a maliu 最后,可以通过执行“pdbedit -L”命令列表显示目前系统中已经存在的所有Samba用户。 # pdbedit -L zhangsan:1009: lisi:1010: wangwu:1011: maliu:1012: 至此,Samba的常规配置就完成了,执行“systemctl restart smb”命令重启服务,使配置生效。然后可以在Windows或Linux客户端进行访问测试,用户zhangsan、lisi、wangwu都可以访问共享,并上传文件,但用户maliu没有访问共享的权限。具体测试过程从略。 3. 权限设置下面再来完成第4、5、6项要求,这也是在这整个任务需求中最复杂的部分。将这三项需求进行归纳,核心问题主要有两个:是否允许删除别人的文件,是否允许读取别人的文件。下面分别来解决这两个问题。 3.1 限制删除别人的文件要完成这个任务,首先需要明确一个问题:在Linux系统中,用户需要具有哪种权限,才可以将一个文件删除。 # chmod o+t /share/archive/ # ll -d /share/archive/ drwxrwxrwt. 2 root root 26 4月 28 20:32 /share/archive/ 这样,所有的Samba用户都可以向共享目录中上传文件,但是只能删除自己的文件,而无法删除别人的文件。 # chown zhangsan /share/archive/ # ll -d /share/archive/ drwxrwxrwt. 2 zhangsan root 26 4月 28 20:32 /share/archive/ 至此,关于能否删除文件的需求就全部解决了。 3.2 限制读取别人的文件同之前一样,要完成这个任务首先需要明确,用户具有哪种权限才可以读取文件。这个问题相对比较简单,在Linux系统中,用户只要对文件本身具有“读取(r)”权限,那么便可以查看文件中的内容。 设置完成后,同样需要执行“systemctl restart smb”命令重启服务生效。 接下来我们只需使得zhangsan和lisi能够成为每个上传文件的所属组的成员即可,但是默认情况下,用户所上传文件的所属组都是与该用户同名的私有组,如果要使得所有用户上传文件的所属组都能够是同一个指定的用户组,那么就需要为共享目录设置SGID权限。 SGID权限的作用是:如果针对目录设置SGID,则在该目录内所建立的文件或子目录的所属组,将统一被自动设置成此目录的所属组。 比如我们在系统中创建一个名为admin的用户组,并将其设为共享目录/share/archive/的所属组,然后再对/share/archive/目录设置SGID权限,这样用户在共享目录中上传的所有文件,其默认的用户组都统一被设置成了admin。 # groupadd admin # chown :admin /share/archive/ # chmod g+s /share/archive/ # ll -d /share/archive drwxrwsrwt. 2 zhangsan admin 60 4月 29 10:01 /share/archive 然后再将用户zhangsan和lisi都加入到admin组即可。 # gpasswd -a zhangsan admin # gpasswd -a lisi admin 最后,分别以用户zhangsan、lisi、wangwu的身份在目录中上传文件,其默认权限如图3所示。 至此,这个综合案例中的所有任务需求都已全部完成。对于Linux系统中的绝大多数服务,用户在使用这些服务时的最终权限基本都是由两个因素综合决定的:一个因素是在服务配置文件中所做的相关设置,另一个因素则是系统权限。因而作为系统运维人员,必须要熟知服务配置和系统权限,这样方能更好地满足各种不同的实际工作需求。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |