Shell 将文件移动到另一个用户目录的脚本?
Shell Script to Move a File Into Another User's Directory?
我正在 运行 安装 Ubuntu 16.04 服务器。在我的服务器上,目录 /home/userA/dirA
:
中有一个文件
userA@myUbuntu:~$
userA@myUbuntu:~$ pwd
/home/userA
userA@myUbuntu:~$
userA@myUbuntu:~$ ls -l
total 8
drwxrwxr-x 3 userA userA 4096 Feb 17 14:13 dirA
userA@myUbuntu:~$
userA@myUbuntu:~$ ls -l dirA/
total 7796
-rw-rw-r-- 1 userA userA 1234 Feb 17 14:05 theFile.txt
userA@myUbuntu:~$
注意这里的所有权;用户 userA
拥有文件和文件所在的目录。
我需要一个 shell 脚本将 theFile.txt
移动到另一个位置,移动到不属于 userA
的目录中。这是我的脚本:
#!/bin/bash
echo "Attempting to move file..."
{
sudo mv /home/userA/dirA/theFile.txt /home/userB/dirB/.
} || {
echo "Failed to move file!"
}
...输出:
userA@myUbuntu:~$ ./myScript.sh
Attempting to move file...
Failed to move file!
userA@myUbuntu:~$
如您所知,脚本 运行 为 userA
。我不想 运行 它作为 root
.
所以我假设脚本因权限问题而失败;作为 userA
的脚本 运行 没有权限将文件移动到 userB
拥有的目录中。我一直在尝试 sudo
命令和其他命令的各种变体,但无济于事。我也尝试过愚蠢的解决方法,比如将文件复制到 /tmp
(有效),然后执行 chown
来更改文件所有权(无效)。但是必须有一种方法可以巧妙地做到这一点。有什么想法吗?
创建一个新组,将两个用户添加到其中并设置适当的权限。之后您就可以在文件夹之间移动文件了。
我正在 运行 安装 Ubuntu 16.04 服务器。在我的服务器上,目录 /home/userA/dirA
:
userA@myUbuntu:~$
userA@myUbuntu:~$ pwd
/home/userA
userA@myUbuntu:~$
userA@myUbuntu:~$ ls -l
total 8
drwxrwxr-x 3 userA userA 4096 Feb 17 14:13 dirA
userA@myUbuntu:~$
userA@myUbuntu:~$ ls -l dirA/
total 7796
-rw-rw-r-- 1 userA userA 1234 Feb 17 14:05 theFile.txt
userA@myUbuntu:~$
注意这里的所有权;用户 userA
拥有文件和文件所在的目录。
我需要一个 shell 脚本将 theFile.txt
移动到另一个位置,移动到不属于 userA
的目录中。这是我的脚本:
#!/bin/bash
echo "Attempting to move file..."
{
sudo mv /home/userA/dirA/theFile.txt /home/userB/dirB/.
} || {
echo "Failed to move file!"
}
...输出:
userA@myUbuntu:~$ ./myScript.sh
Attempting to move file...
Failed to move file!
userA@myUbuntu:~$
如您所知,脚本 运行 为 userA
。我不想 运行 它作为 root
.
所以我假设脚本因权限问题而失败;作为 userA
的脚本 运行 没有权限将文件移动到 userB
拥有的目录中。我一直在尝试 sudo
命令和其他命令的各种变体,但无济于事。我也尝试过愚蠢的解决方法,比如将文件复制到 /tmp
(有效),然后执行 chown
来更改文件所有权(无效)。但是必须有一种方法可以巧妙地做到这一点。有什么想法吗?
创建一个新组,将两个用户添加到其中并设置适当的权限。之后您就可以在文件夹之间移动文件了。