我有一个文件夹,其中将通过脚本自动创建新的子文件夹和文件。
我想递归地维护放置在父目录中的所有新文件夹和文件的用户和组权限。我知道这涉及设置一个粘性位,但我似乎无法找到一个能准确显示我需要的命令。
这是我到目前为止所做的:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
Run Code Online (Sandbox Code Playgroud)
此后,我希望将 660 权限递归设置到/path/to/parent
.
但是,到目前为止我尝试过的一切都失败了。有人可以帮忙吗?
实际上,八进制标志 660 甚至可能都不正确。我想要的权限是:
/path/to/parent
可由具有权限的用户执行/path/to/parent
不是世界可读的我在 Ubuntu 10.0.4 LTS 上运行。
有人可以帮忙吗?
我正在尝试在由 cron 运行的 bash 脚本中使用 scp(我在 Ubuntu 10.0.4 LTS 上运行它)。
该脚本工作正常(即,当我从命令行运行它时,向/从远程服务器传输和复制 file1 和 file2。但是,当我将脚本作为 cron 作业运行时,它失败了。
这就是脚本的样子:
#!/bin/bash
cd /home/oompah/scripts/tests/
scp -P 12345 file1 oompah@someserver.com:~/uploads
if scp -P 12345 oompah@someserver.com:/path/to/file2.dat local.dat >&/dev/null ; then
echo "INFO: transfer OK" ;
else
echo "ERROR: transfer failed" ;
fi
Run Code Online (Sandbox Code Playgroud)
当我将它作为 cron 作业运行时,我得到的错误消息(重定向到日志文件)是:
ERROR: transfer failed
Run Code Online (Sandbox Code Playgroud)
我发送到我的邮件收件箱的错误消息是:
Permission denied (publickey).
lost connection
Run Code Online (Sandbox Code Playgroud)
为什么会发生,我该如何解决?
[编辑]
我用 -i 命令修改了第一个 scp 命令(如 M Jenkins 建议的那样),我还添加了 -v 用于调试消息。这是完整的调试消息日志。希望它可以阐明正在发生的事情:
Executing: program /usr/bin/ssh host 12.34.56.78, user oompah, command scp -v …
Run Code Online (Sandbox Code Playgroud)