我刚刚开始在一家小公司工作,该公司有一个全局共享文件夹,由 Samba 共享的 Ubuntu 文件服务器(Raid 5 等)运行。
所有工作站(Centos)都设置了 fstab 以在其根文件系统中安装此 samba 共享 -> /Data/
。
客户端 fstab 配置:
//10.1.1.3/DATA01 /DATA01 cifs username=username,password=password 0 0
共享的 Samba 配置:
[DATA01]
path = /DATA01
writeable = yes
在我开始之前,老板已经决定他已经受够了 unix 权限和用户不匹配“问题”,因此每个工作站和服务器都有相同的用户和组名(当前项目名称) - 我们称之为project
。他还确保每台机器上的用户 UID 都是相同的 - 我不确定这在实际层面上有多重要。
简而言之, als -l /Data
导致被 chown 的项目project : project
。
这就是我刚刚走进来的地方。我在这里的工作是管理所有这些,但我要补充的是,我是一名经验丰富的 Windows 程序员,所以我的 Linux 系统管理员知识更多的是理论性的而不是实践性的(我接受这份工作是为了了解他们的行业,因为我正在尝试职业转型)。
因此,设置在一定程度上是可行的,因为Bob
可以Mary
添加/编辑文件等,/Data
并且不会出现“您没有权限”的错误,我认为这是老板的主要困惑。所以这对我来说似乎很奇怪,因为安全性完全不复存在,但它实际上是有效的。
但这让我很担心何时project
结束和project2
开始。还有 3 个月的时间,我不知道该如何处理。我知道他会说“只需 chown -R project2:project2 /Data
重新映像所有机器以拥有该用户,然后继续”,但我相信有更好的解决方案。
因此,我想知道从这个设置中,我如何才能让唯一的用户进行管理/Data
而不导致“您没有权限”错误?
另外,我想知道是否有一种 Linux 等效的“Active Directory”,可以设置来管理公司中的用户和组(针对项目)?我不知道在 Linux 世界中通常如何管理这个问题。
还有什么我应该考虑的吗?
抱歉,如果这是 Linux 101 的东西,但我不确定它通常是如何管理和实际实现的。
答案1
事实上,Samba 的最新版本确实可以提供完整的 Active Directory 域控制器服务,但是在我看来,你的老板只是不想处理任何帐户类型限制,所以这可能不会很好地发挥作用。
查看当前 Samba 配置中定义 /Data 共享的节以及客户端系统上的挂载选项会很有用,以了解它现在如何为您工作。
编辑:从提供的信息来看,似乎所有远程用户都映射到服务器上的用户,这意味着任何人都可以(意外或其他)删除那里的所有数据,而且这肯定不是最好的方法 - 但它的优点是极其简单。
就“最佳实践”而言,首先将挂载的凭据放在只有 root 才能读取的文件中,然后在挂载中将其指定为 credentials=filename。
另外,如果您可以安排服务器和客户端具有相同的用户 uid 和 gid,则使用 setuid 选项将确保文件在共享上正确显示为其创建者所拥有,并且您可以将标准 unix 组权限应用于谁可以修改哪个文件。