我是CentOS新手(运行CentOS 6)。 我有以前的OpenSuse经验。
我正在尝试为用户设置帐户。 我不希望这个账号可以通过ssh或login界面进行login。 但是,我仍然希望能够使用su命令login到用户。 这允许我以受限制访问的用户身份运行某些应用程序。 用户不是超级用户,所以不能影响其他用户的应用。
任何帮助将不胜感激。 我一般都想用这个来运行Glassfish服务器等
在centos上,你可以使用/ sbin / nologin来设置没有shell的用户:
[root@localhost ~]# grep named /etc/passwd named:x:25:25:Named:/var/named:/sbin/nologin [root@localhost ~]#
如果你需要成为那个,使用-s参数,并把你select的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$
一个常见的方法是将用户的shell设置为/bin/false
我通常在这样的“技术”用户的encryption密码字段中join“x”。 所以用户将不会有任何可能的密码。 如果在该用户的authorized_keys中现在还有公钥,那么该账户应该是相当安全的。