Solaris 11 的 /etc/passwd 中用户的默认 shell 是什么?

Solaris 11 的 /etc/passwd 中用户的默认 shell 是什么?

对于我正在做的 Solaris 11 服务器配置审查,我的 /etc/passwd 文件中有以下几行:

root:x:0:0:Super-User:/root:/usr/bin/bash
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
.....

每行最后一个字代表他们登录的shell。如果没有提到,默认是/usr/bin/bash吗?从上面,我可以确认daemon,bin,sys,adm,lp,uucp这些账户是否可以登录?

请注意,我已将此作为我团队运行的脚本之一的输出收到,因此,我可能无法查找您要求的脚本之外的任何信息。但非常感谢您的帮助。

谢谢

答案1

我认为您迄今为止得到的答案有些不准确或至少不完整。

您特别提到该问题与 Solaris 11 相关,这对于答案很重要。

如果没有明确提及 shell,/etc/passwd那么它是正确的,因为手册页说/usr/bin/sh将使用 shell,但这是指向 Korn 93 Shell 的逻辑链接。换句话说:对于那些没有提及 shell 的帐户, shell 是 Korn 93,而不是您可能认为的 Bourne Shell。Solaris 曾经与 Korn shell 有亲和力(很久以前),所以这就是指向 Korn Shell 的/etc/passwd原因。/usr/bin/sh

以下是 Oracle 链接,其中包含更多信息:Oracle Solaris 11 中的新 shell

额外信息:那么这是否意味着 Korn shell 是 Solaris 11 上的“默认 shell”?不!当您使用命令在 Solaris 11 上创建帐户useradd并且未明确指定 shell 时,/usr/bin/bash将使用 Bash shell ()。因此,我会说 Bash 是 Solaris 上的默认 shell。

希望这可以帮助。

答案2

# man -s 4 passwd    
[...]
     login-shell    is the user's initial shell program. If  this
                    field   is   empty,   the  default  shell  is
                    /usr/bin/sh.
[...]

# man -s 4 shadow
[...]
     password    An encrypted password for the user generated  by
                 crypt(3C),  a  lock  string to indicate that the
                 login is not accessible,  or  no  string,  which
                 shows that there is no password for the login.

                 The lock string is defined as *LK* in the  first
                 four characters of the password field.
[...]

答案3

不,从上面你无法判断列出的帐户是否能够登录。为此,你必须检查 /etc/shadow 文件中每个帐户的条目。特别是你应该查看密码字段,并且可能查看有效期字段。

至于默认 shell,这对您来说很容易测试。只需创建一个用户帐户并检查您是否可以登录。编辑 /etc/passwd 文件以删除测试帐户的 shell,然后再次登录并查看它是什么 shell。


因此我启动了 Solaris 11 Vm,结果证明是sh

相关内容