简单叙述Linux系统下的三种用户账户,若使某个用户账户不能登录Linux如何做?

记得有一次,我帮朋友装了个Linux系统,他想要一个只用于运行程序的账户,不想让人登录。
我就按照网上说的,在根目录下修改了那个叫“passwd”的文件。
操作很简单,找到对应的用户行,把最后的那个“/bin/bash”改成了“/bin/false”。
改完保存退出,然后重启系统。
朋友再试,果然就登录不进去了。
不过,后来我突发奇想,这要是有人故意捣乱,改成“/bin/false”后,那程序还能正常运行吗?

linux创建新用户账号为什么无效

说白了,Linux创建用户失败就这几大坑:权限不够、用户名重了、文件权限乱、或者系统满了。

先说最重要的,权限问题最常见。
去年我们跑那个项目,有次新来的运维手滑用普通用户执行useradd,直接报错说“Operation not permitted”。
用sudo或者切换到root就行,但说实话挺坑的,很多人忘了这个。
另外一点,用户名重复也特烦,比如你输入user,系统提示“user already exists”。
赶紧用id user查查,或者换个名字,比如user1 还有个细节挺关键的,比如/etc/passwd权限不对,比如你用ls -l /etc/passwd看到是-r--r--r--(就是6 4 4 权限),那创建用户就会卡死。
这时候得用sudo chmod 6 4 4 /etc/passwd改回来,但这个操作自己没权限可不行。

我一开始也以为都是权限问题,后来发现不对劲,有一次是磁盘满了。
执行df -h一看,/home分区只剩下5 %了,直接useradd就崩了。
解决方法很简单,清理点垃圾文件,或者扩容分区。
还有个事,系统用户数可能也到上限了,比如通过cat /etc/login.defs看到MAXUSERS设置得比较小。

检查系统日志是个万能钥匙,比如journalctl -xe或者cat /var/log/auth.log,错误信息通常藏里面。
用useradd -v创建用户也能多出点线索。
等等,还有个事,SELinux或AppArmor可能会突然跳出来捣乱,用getenforce看看状态,如果启用了,可能得调整策略。
但这个比较复杂,建议先禁用测试。

建议多备个思路,别碰到问题就死磕一个方向。

linux,新创建的用户无法登录ftp(vsftpd),包括root用户

结论:错误操作。

1 . 直接su root,不加-,环境变量不变。
2 . 输入密码切换root,环境变量不变。
3 . 不加-,不需要加。

操作:
1 . su root,不加-。
2 . 输入root密码。

环境变量不变,不加-。