Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 是否更改Mac/Linux上进程的用户所有者?_Macos_Process_Owner - Fatal编程技术网

Macos 是否更改Mac/Linux上进程的用户所有者?

Macos 是否更改Mac/Linux上进程的用户所有者?,macos,process,owner,Macos,Process,Owner,我有一个以root用户身份运行的程序。此应用程序调用另一个程序(processA)运行。当processA运行时,它归root所有,但我希望它的所有者是当前登录的用户。怎么做?嗯,这有点棘手。。。取决于它是守护进程(服务)还是您运行此命令/应用程序 对于第二种情况,您可以使用“su”命令。 这里有一个简短的例子 1。我创建了一个包含以下内容的简单脚本(它将在后台休眠100秒,并将输出与此脚本相关的进程列表): 2。我像这样运行“su”命令(我当前以“root”身份登录,我想以“sandbox”用

我有一个以root用户身份运行的程序。此应用程序调用另一个程序(processA)运行。当processA运行时,它归root所有,但我希望它的所有者是当前登录的用户。怎么做?

嗯,这有点棘手。。。取决于它是守护进程(服务)还是您运行此命令/应用程序

对于第二种情况,您可以使用“su”命令。 这里有一个简短的例子

1。我创建了一个包含以下内容的简单脚本(它将在后台休眠100秒,并将输出与此脚本相关的进程列表):

2。我像这样运行“su”命令(我当前以“root”身份登录,我想以“sandbox”用户身份运行此脚本):

sandbox=将运行此命令的用户名。 -c./test.sh=表示它将执行此命令

3。输出(第一列=拥有此流程的用户):

我希望这会有帮助,
Stefan

@Stefan:对我来说太好了。我已经尝试过并且成功了。非常感谢。欢迎:)!我很高兴你成功了!
#!/bin/bash
sleep 100 &
ps faux | grep test.sh
su - sandbox -c ./test.sh
root@i6:/web-storage/sandbox# su - sandbox -c ./test.sh
sandbox  18149  0.0  0.0  31284  1196 pts/0    S+   20:13   0:00                      \_ su - sandbox -c ./test.sh
sandbox  18150  0.0  0.0   8944  1160 pts/0    S+   20:13   0:00                          \_ /bin/bash ./test.sh
sandbox  18155  0.0  0.0   3956   644 pts/0    S+   20:13   0:00                              \_ grep test.sh
root@i6:/web-storage/sandbox#