【发布时间】:2012-03-17 03:58:21
【问题描述】:
我想以用户 X 的身份 SSH 一个 CentOS 服务器,比如说(不是 root)。然后我想将文件传输到服务器。这很容易。但是后来我想将文件移动到所有用户都可以访问它们的“池”中,即在用户 X 的目录之外。
我可以这样做吗?由于各种原因,包括安全问题,我不想以 root 身份登录。我基本上希望我的脚本(将文件从用户 X 的目录移动到外部目录)暂时拥有 root 权限。
【问题讨论】:
我想以用户 X 的身份 SSH 一个 CentOS 服务器,比如说(不是 root)。然后我想将文件传输到服务器。这很容易。但是后来我想将文件移动到所有用户都可以访问它们的“池”中,即在用户 X 的目录之外。
我可以这样做吗?由于各种原因,包括安全问题,我不想以 root 身份登录。我基本上希望我的脚本(将文件从用户 X 的目录移动到外部目录)暂时拥有 root 权限。
【问题讨论】:
您的问题基本上与 SSH 无关。你只是问“可以在Unix系统上设置一组文件,让所有用户都可以访问它们”,答案当然是。
你没有解释太多你想要做什么,但是 chmod、mv 和 mkdir 手册页应该可以帮助你弄清楚你需要什么。
【讨论】:
如果使 pool 目录可被 ssh 用户写入没有问题,则可以
scp file user@host:/srv/pool
【讨论】:
也许我没有完全理解这个问题,但似乎完成您想要的最简单的方法不是通过以 root 权限运行脚本,而是通过放宽目标“外部”目录的目录权限。
如果您设置sticky bit,那么您想要的任何人都可以在该目录中放置文件,包括脚本,但只有原始所有者可以删除和/或重命名其中的文件。
但是,如果这对您不起作用,那么让 Bash 以 root 身份运行是 pretty straight forward. 但是,请记住经验法则,即您在系统中放置的漏洞越多,它的漏洞就越多会有的。
【讨论】:
我假设您想通过 SSH 使用 rsync,就像大多数人一样。有两种可能:
【讨论】:
$sudo chmod 777 /path/to/dir
$sudo chmod +t /path/to/dir
使用棒位将解决您的问题。
【讨论】: