我正在尝试在用户登录时以 root 身份运行 PHP 脚本。PHP 脚本将 Samba 共享添加到 Samba 配置中,因此需要 root 权限。这里唯一的问题是用户还不存在。该系统与活动目录集成。因此,当用户第一次登录时,会在/home/DOMAIN/username.
我发现了这个问题,这似乎是获得我想要的东西的正确方法,但是我在语法方面遇到了问题,因为我不知道用户的姓名。
会不会是这样的:
ALL ALL=(ALL) NOPASSWD: /home/DOMAIN/*/createSambaShare.php
这似乎不像目前那样工作。任何人都有任何想法或“脚本化”方式在用户登录时添加 Samba 共享?
由于我对 进行了其他更改/etc/skel,因此我只是添加了在 .profile 中运行 PHP 脚本所需的 bash。然后将其复制到“新”用户的家中,并尝试运行 PHP 脚本。但它失败了,因为这些不是特权用户。
更改 PHP 脚本的权限无济于事。它需要作为 sudo 运行,因为它会打开 Samba 配置文件进行写入。让任何用户运行 PHP 脚本都会导致 PHP 错误。
在homes桑巴指令不会对我的使用情况下工作。我需要 Samba 共享存在于服务器上,即使它们没有登录。
不要将脚本放在用户的主目录中。相反,将其放置在固定位置。如果脚本需要一些与用户相关的参数,请让脚本从文件 \xe2\x80\x94 中读取该参数,但您甚至不需要它,因为您无论如何都要复制脚本/etc/skel。
如果您允许用户以提升的权限运行其主目录中的脚本,那么他们可以用另一个脚本替换该脚本。因此,从安全角度来看,您提出的规则相当于
\n\nALL ALL=(ALL) NOPASSWD: /etc/skel/createSambaShare.php\nMANY ALL=(ALL) NOPASSWD: ALL\nRun Code Online (Sandbox Code Playgroud)\n\nMANY主目录位于以下位置的任何用户在哪里/home/DOMAIN. (好吧,除非用户的主目录由 root 用户拥有,用户不可写入,并且该脚本也不可由用户写入或由用户拥有。但这将是非常不寻常的。)
另外,我建议不要ALL在用户规范中使用。将规则限制为一个组。
%sambasharers ALL=(ALL) NOPASSWD: /usr/local/bin/createSambaShare.php\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |