在具有特定组所有权的远程计算机上创建目录树

在具有特定组所有权的远程计算机上创建目录树

我只是在解决一个问题,我想在远程计算机上创建一个目录树,其中所有目录都具有特定的组所有权。此外,我明确希望自动生成父目录(如果尚不存在)。所以我现在尝试做的是:

ssh me@remotemachine "newgrp mygroup && mkdir -p /path/to/my/directory"

newgrp但是,通过 SSH 在远程计算机上执行似乎不起作用。

当然,另一个选择可能是先创建目录,然后更改组所有权,但这需要我知道哪些父目录是-p通过mkdir.

那么有没有办法通过 SSH 作为特定组的成员而不是作为远程计算机上默认组的成员登录,或者让 mkdir 告诉我它自动创建的父目录?

答案1

newgrp启动一个新的外壳,所以在你的命令中

ssh me@remotemachine "newgrp mygroup && mkdir -p /path/to/my/directory"

mkdir将从 启动的子 shell 退出后执行newgrp

您可以将命令作为newgrpshell 的输入,例如

ssh me@remotemachine newgrp mygroup << EOF
mkdir -p /path/to/my/directory
ls -ld /path/to/my/directory /path/to/my
EOF

答案2

您可以使用install命令:

ssh me@remotemachine "install -g mygroup -d /path/to/my/directory"

相关内容