2013-11-04 40 views
0

我想在我的RHEL6服务器上拥有一个数据库用户。由于数据库用户只是数据库用户,我不希望该用户能够登录到shell。我知道我可以将用户定义为nologin,但这样用户将无法更改他/她的密码。如何防止用户登录,但允许更改他的密码?

那么如何防止用户登录,同时允许他/她更改密码呢?

回答

0

我已经想出了一个快速和肮脏的方式来做到这一点。 首先,用户应该有权登录。 然后,运行以下命令:

$ sudo useradd -m -d /home/username -s /bin/bash -c "login is forbidden for this user" username -N -g users 
$ chown root:users /home/username 
$ chmod 555 /home/username 
$ echo "trap '' 2" >> /home/username/.bash_profile 
$ echo "passwd" >> /home/username/.bash_profile 
$ echo "logout" >> /home/username/.bash_profile 
$ passwd username 

现在用户“用户名”可以登录到更改密码。然后在更改密码后立即注销。除了更改密码之外,他/她不能做任何事情。 CTRL + C也被阻止。

+1

如果用户调用'ssh rm -f .bash_profile'会怎么样?我的理解是在这种情况下,bash不会调用'.bash_profile'。 –

+0

谢谢你透露安全漏洞:)我正在努力修复此问题 –

+0

谢谢@MaximYegorushkin,现在它更安全。 –

1

使用IPA进行集中用户管理。它允许用户更改密码,即使他们无法登录。

相关问题