Articles of 用户

原始套接字访问作为正常用户在Linux 2.4上

在一个embedded式系统(2.4内核)中,我需要一个原始套接字从一个不以root身份运行的进程访问eth0接口。 我尝试通过从命令行设置CAP_NET_RAWfunction并使用cap_set_proc()以编程方式解决此问题,但都没有成功。 看来我没有权限这样做,在程序中我得到一个EPERM错误,在命令行上 无法在进程“1586”上设置上限:(操作不允许) 有没有更简单的方法来做我想要的? 如果不是,则成功设置CAP_NET_RAWfunction需要执行哪些步骤? 编辑:我有根访问,但作为根永久运行的过程是没有select。 libcap的版本是1.10,没有“setcap”二进制文件,而是“setpcaps”。 编辑 – 回答George Skoptsov: 如果我弄明白了,你的build议是用setuid启动一个进程,然后设置CAP_NET_RAWfunction,然后删除权限。 我用下面的代码尝试了这个,但是它似乎不起作用,即使caps命令不返回错误。 随着seteuid()注释掉,原始访问工作,但只是因为该进程作为根运行,那么: cap_t caps = cap_get_proc(); cap_value_t cap_list[1]; cap_list[0] = CAP_NET_RAW; if (cap_set_flag(caps, CAP_EFFECTIVE, 1, cap_list, CAP_SET) == -1) { printf("cap_set_flag error"); } if (cap_set_proc(caps) == -1) { printf("cap_set_proc error"); } if (seteuid(getuid()) != 0) { printf("seteuid error"); } function_that_needs_raw_access(); 谢谢你的帮助。 克里斯

sudoers NOPASSWD:sudo:没有tty礼物,也没有askpass计划

我已经添加了这样的用户: $ adduser –system –home /no/home –no-create-home –group –disabled-password –disabled-login testuser 将用户添加到组中: $ adduser testuser testgroup 添加到sudoers(visudo)的行数: testuser ALL=(ALL) NOPASSWD: ALL %testgroup ALL=(ALL:ALL) NOPASSWD: ALL 当我尝试运行带有以下内容的bash脚本时: #!/bin/sh sudo -u testuser /usr/bin/php /usr/local/bin/script.php 但是当我运行这个脚本时,我得到了日志中的错误: sudo: no tty present and no askpass program specified 编辑: requiretty不在sudoers文件中。

在用户的Linux下运行Jenkins作业

我有Jenkins安装在Linux中,我想在用户下运行构build。 不只是一个简单的用户,而是一个属于访问Linux机器的用户列表,属于某个组,因为它有权修改/创build某个文件夹下的文件。 我已经读过一些地方,你可以设置variables$ JENKINS_USER,但我不知道在哪里和如何。 感谢您的时间 PS我做了一些研究,所有发布的问题都是相似的,但不一样的这一个 如果我不清楚,请阅读下面的内容:通常Jenkins使用一个叫做jenkins的用户来执行构build,现在我想能够使用不同的用户(预先存在)。

如何使用C / C ++创build一个Linux用户?

我想build立一个程序,以用户名为参数,并创build用户和它的主文件夹 (一些硬编码规范像文件夹,和安全检查,如用户名不能是根或现有的用户)。 我的应用程序需要创build用户才能获得SSH访问权限。 该程序将使用sudo执行。 我读过它应该用C或C ++而不是脚本编写,因为脚本很容易被利用。 你可以给我一些build议或良好的做法 ,如何实现这一目标? 我应该使用一些Pam库吗? 有没有例子? 什么是可能的安全缺陷? 我知道C / C ++,并运行Ubuntu Lucid。 编辑: 用户将只有sudo权限才能运行该特定命令,我不希望它能够运行shell或绕过某些程序(例如,通过更改PATH环境)。 因此,例如,我将需要覆盖PATH , 还有什么我应该担心的?

获取当前用户的最后一次login

我正在尝试获取当前的用户上次login。 我可能是这届本届会议,也可能是之前的会议。 我打电话GetUserName()获取当前的用户名。 我将其馈送到NetUserGetInfo()中以尝试获取上次login时间。 这一切都失败,错误2221(用户未find)。 当我用“pipe理员”尝试它的作品。 即使我硬编码我的用户名,它会返回一个2221.这就是我正在使用的: nStatus = NetUserGetInfo(NULL, L"administrator", dwLevel, (LPBYTE *) & pBuf); 你怎么能得到当前用户的最后login时间? 谢谢,代码总是欢迎。 这是我目前使用的完整代码: DWORD dwLevel = 2; NET_API_STATUS nStatus; LPTSTR sStringSid = NULL; LPUSER_INFO_0 pBuf = NULL; LPUSER_INFO_2 pBuf2 = NULL; WCHAR UserName[256]; DWORD nUserName = sizeof(UserName); if(GetUserName(UserName, &nUserName)) { printf("information for %ls\n", UserName); nStatus = NetUserGetInfo(NULL, UserName, dwLevel, […]

Pythonsubprocess。在Windows上以不同的用户身份打开

在Windows上用Python启动一个subprocess的最佳方式是什么? 最好XP和以上,但如果它只适用于Vista和7,我也可以忍受。

在Windows上使用Hudson的Git插件克隆/获取存储库问题

在任何人为此拍摄我之前 – 我已经检查了每一个适当的线程,仍然没有find解决我的问题。 我有Hudson与安装在Windows服务器上的git插件(不是我的select)和哈德森作为服务运行。 Git/bin在path上。 但是我无法克隆存储库。 以下是控制台输出的缩略显示: Started by user anonymous Checkout:workspace / C:\.hudson\jobs\sdf\workspace – hudson.remoting.LocalChannel@65394b Last Built Revision: Revision 74200b32314231a5efdadd87bf36b42ec145c720 (origin/master) Checkout:workspace / C:\.hudson\jobs\sdf\workspace – hudson.remoting.LocalChannel@65394b Fetching changes from the remote Git repository Fetching upstream changes from ssh://git.mccannlondon.co.uk/git/mccann_admin [workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t ssh://git.mccannlondon.co.uk/git/mccann_admin +refs/heads/*:refs/remotes/origin/* The server's host key is not cached in […]

如何从Windows服务作为不同的用户运行进程

我已经创build了一个在用户login之前已经启动的服务。该服务以“networking服务”用户身份运行。 它不时需要运行一个更新过程,这个过程需要作为一个域用户运行。 必须考虑在更新过程开始时没有用户login的情况。 由于密码规则(需要不时更改),不能以域用户的身份运行服务。 需要运行更新过程时,域用户的密码是从另一台机器获取的。 我的问题是,该服务能够创build进程作为域用户与CreateProcessWithLogonW但一旦进程开始立即销毁。 返回值是0,我没有得到stdout和没有stderr。 我得到的唯一提示是错误代码为0xc0000142的事件日志中的条目。 我也尝试了我在网上find的其他几个解决scheme。 但是没有解决scheme。 例如我也尝试过LogonUser – > Adjust privileges – > CreateProcessAsUser。 操作系统是Windows 7.更新程序只是一个控制台应用程序。 我只需要返回代码,stdout和stderr。 当进程启动时,不应该popup窗口。 任何人都可以帮助我一个工作解决scheme? 最好的将是Python中的一个例子。 提前致谢。 最好的问候,马丁 更新:目前我结束了以下代码: import os import sys import types import subprocess import ctypes from ctypes import wintypes import win32con import win32event import win32api import win32security kernel32 = ctypes.WinDLL('kernel32', use_last_error = True) […]

我如何提取当前用户的帐户图片?

我试图在Windows 7中提取当前用户的帐户图片,但我似乎无法找出它所在的位置。 我发现图片有时被写入用户的临时文件夹,但只有在执行某些操作之后。 它并不总是保证在那里。 有没有人有任何运气提取这个形象? 谢谢! 更新:我正尝试使用C ++提取图像,但任何语言的帮助将是一大步。 🙂

在Windows中获取用户临时文件夹path

我怎样才能得到用户的临时文件夹path在C + +? 我的程序必须在Windows Vista和XP上运行,它们有不同的临时path。 我怎样才能得到它,而不会失去兼容性?