如何防止选定的用户使用带有密码的“newgrp”

如何防止选定的用户使用带有密码的“newgrp”

我想知道如何避免将一些用户添加到组中?我需要避免某些用户加入某个组——我想锁定某些用户(而不是全部)的组。

细节

lgroupmod -L dba ==> This prevents users from using the group password and    
gpasswd -R dba ==> is restriction to a group 

我需要为某些用户锁定一个组不是对于所有小组成员。

答案1

您似乎使用了错误的工具来完成这项工作。群组密码是一项很少使用的功能;大多数时候,您可以将每个用户分配到您想要的任何组,并且他们在登录时获得组权限,而无需执行任何特殊操作。

如果您希望用户在想要使用组权限时必须采取某些操作(例如出于日志记录目的),或者明确他们应该仅在特殊情况下使用组权限,最明显的方法是使用须藤。对于应该有权访问该组的用户,请运行visudo以在文件中添加规则sudoers,例如

alice ALL = (:dba) ALL

并告诉用户运行sudo -g dba somecommand而不是echo 'somecommand' | newgrp dba.

如果您有一个非常不寻常的场景,您确实需要用户输入共享密码才能访问该组,但您只希望某些用户有权访问该组,您仍然可以利用newgrp.这个想法是将其限制为某些用户。利用newgrp而不是自己编写,因为安全地提升权限很棘手。 Linuxnewgrp不使用 PAM,可能是因为基本上没有人使用newgrp.因此,获取您的发行版上的版本的源代码,并修改它以读取文件/etc/gshadow.dba。读取不同文件的目的是避免通过其他途径增加组权限,例如sg.将包含dba组及其密码的行添加到/etc/gshadow.dba, not /etc/gshadow。编译修改后的newgrp,将其安装到/usr/local/bin/newgrp-dba,并设置其权限,以便只有某些用户可以执行它:

chmod u=srwx,go= /usr/local/bin/newgrp-dba
setfacl -m user:alice:x /usr/local/bin/newgrp-dba

答案2

/etc/group您可以向或添加密码/etc/gshadow。格式与 类似/etc/passwd,只是字段数不同。不过,您仍然需要将密码输入第二个字段。

相关内容