Mar*_*ter 70 users password authentication pam
我需要允许用户martin切换到martin-test没有密码的用户
su - martin-test
Run Code Online (Sandbox Code Playgroud)
我认为这可以在/etc/pam.d/su. 该文件中已经有一些可以取消注释的行。但是,我不喜欢将 user 添加martin到 group的想法wheel。我不希望给martin任何更多的特权,而不是能够切换到martin-test。我也不想用sudo。
在保持用户权限martin最小的情况下,最好的方法是什么?
GnP*_*GnP 76
pam_rootok.so在您的行下方添加以下行/etc/pam.d/su:
auth [success=ignore default=1] pam_succeed_if.so user = martin-test
auth sufficient pam_succeed_if.so use_uid user = martin
Run Code Online (Sandbox Code Playgroud)
这些行使用pam_succeed_if.so模块执行检查。另请参阅Linux-PAM 配置文件语法以了解有关auth行的更多信息。
martin-test。如果没有发生(success=ignore),我们可以在下一行继续检查当前用户。如果不是,将跳过下一行 ( default=1),我们可以在后续行中继续执行通常的身份验证步骤。martin,如果是,则系统认为身份验证过程成功并返回(sufficient),如果不是,则没有任何反应,我们继续执行通常的身份验证步骤。您还可以限制su为一个组,这里的组allowedpeople可以su没有密码:
auth sufficient pam_succeed_if.so use_uid user ingroup allowedpeople
Run Code Online (Sandbox Code Playgroud)
cha*_*aos 13
如果您不想更改组或使用sudo,请使用调用的 pam 模块pam_exec在 pam 阶段执行外部脚本。
在您/etc/pam.d/su的pam_rootok.so行后添加一行:
auth sufficient pam_exec.so quiet /path/to/script
Run Code Online (Sandbox Code Playgroud)
/path/to/script 具有权限 755 (rwxr-xr-x) 和以下内容:
auth sufficient pam_exec.so quiet /path/to/script
Run Code Online (Sandbox Code Playgroud)
因此,如果出现su以下情况,此脚本将成功退出:
martin和martin-test.看:
martin@host:~$ su - martin-test
martin-test@host:~$ exit
martin@host:~$ su - otheruser
Password: ****
otheruser@host:~$
Run Code Online (Sandbox Code Playgroud)
小智 6
这可能是最好的办法。
su不是要这样做 -sudo是。
打开 /etc/sudoers.d/custom并写入以下内容:
user-a ALL=(user-b:user-b) NOPASSWD:ALL
这意味着:每当 user-a 执行时sudo -u user-b,让他离开而不询问密码。
其它的办法
youruserid ALL = (username) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
与visudo然后sudo -u username bash就像su - username