【发布时间】:2010-08-10 22:49:00
【问题描述】:
我想构建一个程序,它以用户名作为参数并创建用户及其主文件夹(具有一些硬编码规范,如文件夹,以及用户名等安全检查不能是 root 或现有用户)。
我的应用程序需要创建用户才能授予 SSH 访问权限。
程序将使用 sudo 执行。我读过它应该用 C 或 C++ 而不是脚本编写,因为脚本很容易被利用。
- 您能否就如何实现这一目标给我一些建议或良好做法?
- 我应该使用一些 Pam 库吗?有例子吗?
- 可能存在哪些安全漏洞?
我知道 C/C++,并运行 Ubuntu Lucid。
编辑:
用户只有 sudo 权限才能运行该特定命令,我不希望它能够运行 shell 或绕过某些程序(例如,通过更改 PATH 环境)。
因此,例如,我需要覆盖 PATH,我还应该担心什么?
【问题讨论】:
-
您的意思是
adduser或useradd?尝试查看他们的源代码。 -
为什么脚本比可执行文件更容易被利用?如果您有 root 访问权限,那么您就有了 root 访问权限,并且它们是您无能为力的。使用简单的方法并使用使用普通 linux 命令的脚本(因此已经过完全测试)。
-
用户只有 sudo 访问权限才能运行该特定命令,我不希望它能够运行 shell 或绕过某些程序(例如,通过更改 PATH 环境)。