像“passwd”这样的文件怎么会包含shell呢?

像“passwd”这样的文件怎么会包含shell呢?

我当时正在读一些书,在 Jon Erickson 的《黑客,第二版:漏洞利用的艺术》在第 89 页我读到:

passwd 文件包含系统上每个用户的帐户信息,包括每个用户的默认登录 shell

某物怎么会包含 shell?我以为那或多或少是你用来与系统交互的东西,而不是像文件那样被包含的东西?那么 shell 到底是什么?

答案1

很简单,当您以用户身份“登录”时,将执行用户的默认 shell。文件passwd包含此信息(即/bin/csh/bin/bash或类似信息)。它是文件中要使用的字段之一。以下是示例条目:

jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8910,(234)555-0044,email:/home/jsmith:/bin/sh

注意最后一个字段包含/bin/sh。当此用户登录时,这是为用户交互而执行的默认“shell”。

我认为你误解了它的意思。它实际上并不“包含”用户的 shell,因为它出现在这个文件“内部”。它只为每个条目保留一个字段,指示在用户通过身份验证后将默认执行哪个“shell”二进制文件以供用户交互。

相关内容