一尘不染

如何使用C / C ++创建Linux用户?

linux

我想构建一个 使用用户名作为参数程序,并创建用户及其主文件夹
(具有一些诸如文件夹之类的硬编码规范,以及诸如用户名之类的安全检查不能是root或现有用户)。

我的应用程序需要创建用户才能授予SSH访问权限。

该程序将使用 sudo 执行。我读过它应该用C或C ++而不是脚本编写,因为脚本很容易被利用。

  • 您能给我 一些建议或好的做法 吗?
  • 我应该使用一些 Pam 库吗?有没有例子?
  • 可能存在 哪些 安全漏洞?

我知道C / C ++,并且正在运行Ubuntu Lucid。

编辑:

用户只有sudo权限才能运行该特定命令,我不希望它能够运行Shell或绕过某些程序(例如,通过更改PATH环境)。

结果,例如,我将需要覆盖 PATH我还要担心什么?


阅读 321

收藏
2020-06-03

共1个答案

一尘不染

最好的选择是调用useradd。它将做正确的事情(给定适当的参数)。

尝试通过调用适当的API手动创建一个是可能的,但不是可取的。

2020-06-03