提前感谢所有帮助我解决这个问题的人。
我接到了一项不愉快的任务:设置一个带有 samba 的 Ubuntu 服务器作为文件服务器。
为了使其更加复杂,我必须按如下方式进行:
4个不同的用户组,网络上大约有15个用户。
这四个组应该对共享文件夹具有不同级别的访问权限。
FE:组别为“高”、“中”、“低”和“来宾”。每个组别都应有自己的文件夹,并以组别名称命名,并可访问自己的文件夹和属于低级组的文件夹。组别“高”应具有对所有文件夹的读写权限,“中”无权访问“高”文件夹,但可读写中文件夹和低文件夹。低级组别以相同方式继承此权限。可读写低文件夹,但无权访问中文件夹和高文件夹。
我拥有全新安装的 UBUNTU 12.04.1LTS 和一些 Linux 基本知识。
非常感谢任何指导。
答案1
我首先假设您已经:
- 安装 Samba
- 已经有文件结构(您的组文件夹、挂载点等)
- 目前主要致力于配置部分。
- 由于有 15 个用户 - 我假设您没有活动目录域并且将在服务器上手动管理它。
笔记:我不是系统管理员,无法真正告诉你这是完成任务的最安全方法,但是,它应该有效并且非常简单。听起来好像这不是什么大问题,但如果组织扩大规模或使用 AD 或某些域服务,将来你可能需要重新构建它。既然你提到它没有连接到网络,我就不深入讨论这些内容了。
现在,您需要在/etc/samba/smb.conf
文件中工作(这需要 root 权限)。
smb.conf文件的基本结构是:
[sharename]
comment = Whatever comment you want
path = /path/to/share
browseable = no ; I assume...
read only = no
writeable = yes ; Redundant of read only, but whatever
create mask = 0700
directory mask = 0700
valid users = @groupname
因此,对于你的情况,它可能看起来像:
[high]
comment = The High User group
path = /srv/high
browseable = no
read only = no
writable = yes
create mask = 0700
directory mask = 0700
valid users = @high
[mid]
comment = The Mid User Group
path = /srv/mid
... (copy from above)
valid users = @high @mid
[low]
comment = The Low User group
path = /srv/low
...
valid users = @high @mid @low
[guest]
comment = The Guest User Group
path = /srv/guest
.... ; No valid users needed...
[确保路径正确,我会像那样安装它们 - 但不确定你的结构]
您需要将组添加到您的机器:
添加组 {高,中,低,访客}
然后你需要在你的服务器上建立所有用户(除非你想去施虐者路线,如果您打算扩展,这可能更适用):
useradd -m -g users -G high -s /bin/nologin USERNAME
这会将名为“USERNAME”的用户添加到组“users”和补充组“high”。然后设置密码passwd USERNAME
。还将他们的 shell 设置为 nologin,这样他们就无法在服务器上本地登录并执行命令。
然后将该用户添加到 SAMBA:
smbpasswd -a USERNAME
重新启动 Samba 进行尝试:
系统:
service smb restart
在里面:
/etc/init.d/smb reload
在本[global]
节下,我建议您启用unix password sync = yes
(我相信这已经是默认设置)。这样,无论他们的 unix 密码是什么,密码都是共享的。
要从 Windows 安装,您可以执行以下操作:\\SERVERNAMEorIP\high
从“我的电脑”中的“映射网络驱动器”。