以root身份login,su不会更改为其他用户

使用“root”凭据login到ssh上的CentOS服务器。

当我运行whoami它会报告根预期:

 [root@web1 ~]# whoami root 

如果我尝试更改为另一个用户帐户,则“ftp_usr_andy”不起作用,并将我保留为“root”:

 [root@web1 ~]# su - ftp_usr_andy [root@web1 ~]# whoami root 

如果我检查/var/log/secure的日志,则显示会话已打开,然后立即closures:

 [root@web1 ~]# tail /var/log/secure Jan 31 11:33:43 web1 su: pam_unix(su-l:session): session opened for user ftp_usr_andy by root(uid=0) Jan 31 11:33:43 web1 su: pam_unix(su-l:session): session closed for user ftp_usr_andy 

为什么我不能切换到另一个用户,如果我作为根login? 所有我读过的说,你只是运行su - username ,应该是这样的。 我究竟做错了什么?

您需要validation此用户是否具有有效的shell,才能以此用户身份login或将当前用户更改为该用户。

默认的用户shell可以在/etc/passwd文件中find。 通常,服务的用户没有像/bin/false这样的有效shell,因为他们不需要login服务器。

您可以使用以下命令更改用户默认shell(例如bash ):

 # usermod -s /bin/bash user_name 

你也可以使用:

 # chsh user_name 

这也会告诉你这个用户的当前shell。