在Ubuntu系统中,可以通过以下几种方法来限制用户登录:
/etc/security/access.conf编辑/etc/security/access.conf文件:
sudo nano /etc/security/access.conf
添加或修改规则: 在文件中添加以下行来拒绝特定用户的登录:
-:ALL EXCEPT root
-:username:ALL
这里的username是你想要限制登录的用户名。
保存并退出:
按Ctrl+X,然后按Y确认保存,最后按Enter退出。
/etc/pam.d/common-auth编辑/etc/pam.d/common-auth文件:
sudo nano /etc/pam.d/common-auth
添加PAM模块: 在文件的顶部添加以下行来限制特定用户的登录:
auth requisite pam_succeed_if.so user != username quiet_success
这里的username是你想要限制登录的用户名。
保存并退出:
按Ctrl+X,然后按Y确认保存,最后按Enter退出。
/etc/shells编辑/etc/shells文件:
sudo nano /etc/shells
移除不允许登录的shell:
找到你想要限制登录的用户的默认shell,并将其从列表中移除。例如,如果你想禁止用户使用bash登录,可以移除/bin/bash。
保存并退出:
按Ctrl+X,然后按Y确认保存,最后按Enter退出。
usermod命令禁用用户的shell:
sudo usermod -s /sbin/nologin username
这里的username是你想要限制登录的用户名。
重新启用用户的shell(如果需要):
sudo usermod -s /bin/bash username
iptables或ufw如果你希望通过网络层面限制用户登录,可以使用iptables或ufw来阻止特定用户的SSH访问。
iptables:sudo iptables -A INPUT -p tcp --dport 22 -m owner --uid-owner username -j DROP
ufw:sudo ufw deny from any to any port 22 proto tcp owner uid username
通过以上方法,你可以有效地限制Ubuntu系统中特定用户的登录。