Centos 用户帐户无法登录,但可以通过 su 进入帐户

Centos 用户帐户无法登录,但可以通过 su 进入帐户

我是 CentOS 新手(运行 CentOS 6)。我以前有使用 OpenSuse 的经验。

我正在尝试为用户设置一个帐户。我不希望该帐户可通过 ssh 或登录屏幕登录。但是,我仍然希望能够使用 su 命令登录用户。这允许我以具有受限访问权限的用户身份运行某些应用程序。该用户不是超级用户,因此它不会影响其他用户的应用程序。

任何帮助都将不胜感激。我通常想使用它来运行 Glassfish 服务器等。

答案1

在 centos 上,您可以使用 /sbin/nologin 来设置没有 shell 的用户:

[root@localhost ~]# grep named /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
[root@localhost ~]# 

如果您需要成为那样,请使用 -s 参数并将您选择的 shell 作为参数,如下所示:

[root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ 

请注意,如果您使用 bash,它将首先从 /etc/profile 读取设置,如果用户主目录中没有现有的 .bash_profile、.bash_login 或 .profile,它将默认使用这些设置。当然,如果您想使用 root 中现有的环境设置,只需删除破折号即可:

出口 [

root@localhost ~]# su - named -s /bin/bash
-bash-4.1$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
-bash-4.1$ exit
logout
[root@localhost ~]# su named -s /bin/bash
bash-4.1$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
bash-4.1$ 

答案2

一种常见的方法是将用户的 shell 设置为/bin/false

答案3

我通常会在这些“技术”用户的加密密码字段中输入“x”。这样用户就没有任何可能的密码。如果该用户的 authorized_keys 中现在还有公钥,那么该帐户应该非常安全。

相关内容