禁用除了samba以外的所有其他CentOS用户。

我有一个存储服务器运行一些samba共享。 我需要为在我公司工作的每个人创build多个用户,但我只希望他们能够从客户机访问samba。 我不希望他们能够本地或通过SSHlogin。 有没有办法禁止所有用户做任何事情,但连接到另一台机器的股份?

真的,你应该限制ssh访问一个或多个指定的个人 (当然是白名单)。

您可以使用大多数发行版的标准模块来控制对任何pamvalidation服务的访问。

你不说什么服务提供“本地login”的访问权限。 除了使用gettyconfigurationpam之外,您还可以设置/ etc / nologin来阻止每个人离开root,或者将用户shell改为别的。 我不认为应用程序特定的工具kdm / gdm / xdm(但是这些将再次使用pam)。

顺便说一句:如果你need to create multiple users for each individual那么你可能做错了什么。

您可以使用smbpasswd程序来创build和pipe理可以访问samba共享等的用户,但正如手册页所述

-a此选项指定应将以下用户名添加到本地smbpasswd文件,并input新密码(input旧密码)。 请注意,缺省passdb后端要求用户已存在于系统密码文件中(通常是/ etc / passwd),否则添加用户的请求将失败。

这不是一个大问题,因为您可以locking恶意用户作为创build帐户的一部分

 useradd freddy passwd -l freddy smbpassdw -a freddy New SMB password: Retype new SMB password: Added user freddy. 

将创build一个可以使用samba共享但不能login的用户freddy

根据您如何设置Samba来validation用户,限制这些用户访问SSHlogin将有所不同。

如果您已经在tdbsam后端的“用户”模式下configuration了Samba,则可以简单地调用“usermod -L”来locking用户帐户。 这不会中断Samba访问,只要您不lockingSamba帐户。

如果您是以“域”模式(也需要本地用户帐户)对域控制器进行用户身份validation,则这也适用。

这似乎不是你的情况,但是如果你使用Winbind进行活动目录集成,并且你想限制SSHlogin到本地用户(不是域级别的用户),你可以在sshd.config中禁用PAMAuthentication。

什么是Samba在后端进行身份validation? Samba可以使用它自己的数据库。 这似乎是限制Samba用户访问底层系统上的任何资源的最简单的方法。

passdb backend = ???