全志T507 ssh运行提示“Privilege separation user sshd does not exist”

发布时间 2023-09-14 16:28:19作者: yu_chun_de_ren_lei

   全志T507SDK编译生成的rootfs烧录后开机运行/etc/init.d/sshd脚本后提示“Privilege separation user sshd does not exist”,查资料找到原因是“sshd”用户不存在,检查了一下当前设备端的/etc/passwd文件中确实没有sshd用户,就在文件末尾新添加了一行: 

 

 添加后设备端运行 /usr/sbin/sshd 可以正常运行。

  但修改了这个文件后,使用build buildroot命令编译根文件系统后提示sshd在nogroup组中已存在的错误,导致编译中断。

   查了与一下passwd文件中一行命令的作用

/etc/passwd 文件是Linux系统中的一个重要文件,用于存储用户帐户的基本信息。这个文件的每一行代表一个用户帐户,并包含了关于该帐户的一些关键信息,如用户名、用户ID(UID)、组ID(GID)、用户的主目录、登录shell等。

下面是 /etc/passwd 文件中各字段的解释:

  1. 用户名(Username):这是用户的登录名,用于登录系统。例如,"john" 或 "alice"。

  2. 密码(Password):通常,密码字段包含了用户的加密密码。但现代Linux系统通常不会在此字段存储实际密码,而是使用 /etc/shadow 文件来存储密码的加密版本,以增加安全性。

  3. 用户ID(User ID,UID):每个用户都有一个唯一的数字标识,称为用户ID。这个标识用于系统内部区分不同的用户。例如,普通用户的UID通常从1000开始,root用户的UID为0。

  4. 组ID(Group ID,GID):这个字段指定了用户所属的主要用户组的标识符。用户可以属于多个其他附加组,但主要组是用户创建文件时默认的所属组。例如,用户的主要组可以是他们的用户名相同的组。

  5. 用户描述(User Description or Comment):这个字段通常包含用户的描述信息,例如全名或其他备注信息。它并不是系统关键字段,通常为空或包含描述性文本。

  6. 主目录(Home Directory):这是用户的主目录路径,用户登录后将进入该目录。通常,每个用户都有自己的主目录。例如," /home/john" 表示用户 "john" 的主目录是 "/home/john"。

  7. 登录shell(Login Shell):这是用户登录后要使用的默认shell。shell是用户与操作系统交互的命令解释器。例如,"/bin/bash" 表示用户将使用Bash作为其默认shell。

/etc/passwd 文件的主要作用是提供用户帐户的基本信息,这些信息被各种系统工具和服务用于验证和管理用户访问权限、文件所有权等。尽管现代Linux系统通常使用/etc/shadow来存储加密密码和其他敏感信息,但/etc/passwd 仍然包含了用户的基本标识和配置信息。在大多数情况下,普通用户不应直接编辑此文件,而应使用useraddusermodpasswd等工具来管理用户帐户。

  结合上面给出的passwd文件的解释,可以知道上面编译文件系统时报错的原因是组ID与nobody组的ID冲突了,更改为其他ID就可以了。更改后文件内容如下: