msw*_*msw 11
该/etc/passwd文件将登录时运行的程序作为用户行的最后一项。对于普通用户,这通常设置为/bin/sh或 其他 shell(例如 bash、zsh)。
传统上,用于拥有进程或文件或其他资源的身份将其“外壳”设置/bin/false为
syslog:x:101:102::/home/syslog:/bin/false
Run Code Online (Sandbox Code Playgroud)
伪用户 syslog 拥有/var/log/syslog并且是唯一对该文件具有写入权限的 UID,但由于没有要运行的命令解释器,因此无法以用户 syslog 身份登录。
phu*_*ehe 10
关于您试图回答的问题:
创建一个不应获得交互式 shell 的用户 john。
该问题的意思是“创建一个名为的用户john,该用户将无法从 shell 登录和运行命令”。Interactive 描述了 shell 的工作方式:用户输入一些东西,shell 相应地做一些事情(用户和 shell 之间存在一种通信)。“交互式”一词并没有真正为问题添加任何信息,因为只要有用户键入命令,shell 会话就是交互式的。
还有一种非交互模式,用户将他们想要运行的一系列命令保存在一个文件(称为 shell 脚本)中,然后执行该文件。根据 shell 是以交互方式还是非交互方式运行,某些命令的行为会有所不同。您可以在此处阅读更多内容(本文档适用于bash,但相同的概念适用于其他 shell)。
关于如何创建这样的用户,如果你浏览man useradd一下,有一个选项可以设置登录 shell,-s或者--shell. 您也可以以任何您想要的方式正常创建用户(我假设您已经知道了?),然后/etc/passwd像在msw's answer 中一样进行编辑。