小编oom*_*pah的帖子

如何设置文件权限以便新文件继承相同的权限?

我有一个文件夹,其中将通过脚本自动创建新的子文件夹和文件。

我想递归地维护放置在父目录中的所有新文件夹和文件的用户和组权限。我知道这涉及设置一个粘性位,但我似乎无法找到一个能准确显示我需要的命令。

这是我到目前为止所做的:

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 甚至可能都不正确。我想要的权限是:

  1. 放置在其下的目录/path/to/parent可由具有权限的用户执行
  2. 用户自己和某个组的成员可以读/写文件
  3. 中的文件和文件夹/path/to/parent不是世界可读的

我在 Ubuntu 10.0.4 LTS 上运行。

有人可以帮忙吗?

linux permissions ubuntu

44
推荐指数
2
解决办法
20万
查看次数

bash:在 cron 作业中使用 scp 失败,但从命令行运行时运行成功

我正在尝试在由 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)

ssh bash cron scp ubuntu

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

ubuntu ×2

bash ×1

cron ×1

linux ×1

permissions ×1

scp ×1

ssh ×1