我想在我的RHEL6服務器上擁有一個數據庫用戶。由於數據庫用戶只是數據庫用戶,我不希望該用戶能夠登錄到shell。我知道我可以將用戶定義爲nologin,但這樣用戶將無法更改他/她的密碼。如何防止用戶登錄,但允許更改他的密碼?
那麼如何防止用戶登錄,同時允許他/她更改密碼呢?
我想在我的RHEL6服務器上擁有一個數據庫用戶。由於數據庫用戶只是數據庫用戶,我不希望該用戶能夠登錄到shell。我知道我可以將用戶定義爲nologin,但這樣用戶將無法更改他/她的密碼。如何防止用戶登錄,但允許更改他的密碼?
那麼如何防止用戶登錄,同時允許他/她更改密碼呢?
我已經想出了一個快速和骯髒的方式來做到這一點。 首先,用戶應該有權登錄。 然後,運行以下命令:
$ 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也被阻止。
使用IPA進行集中用戶管理。它允許用戶更改密碼,即使他們無法登錄。
如果用戶調用'ssh rm -f .bash_profile'會怎麼樣?我的理解是在這種情況下,bash不會調用'.bash_profile'。 –
謝謝你透露安全漏洞:)我正在努力修復此問題 –
謝謝@MaximYegorushkin,現在它更安全。 –