如果我执行 a sudo cp /etc/foo.txt ~/foo.txt,则以root所有者身份创建新文件。
现在,除了使用最后两个命令(ls为了阐明用例)之外,我看不出其他办法:
belmin@server1$ ls /etc/foo.txt
> -rw------- 1 root root 3848 Mar 6 20:35 /etc/foo.txt
>
belmin@server1$ sudo cp /etc/foo.txt ~/foo.txt
belmin@server1$ sudo chown belmin: $_
Run Code Online (Sandbox Code Playgroud)
我会选择:
sudo命令中完成它。Jen*_*y D 32
使用install代替cp:
sudo install -o belmin /etc/foo.txt ~/foo.txt
Run Code Online (Sandbox Code Playgroud)
l0b*_*0b0 14
与POSIX兼容的cp,你可以sudo cp -p foo bar到保存下列文件元数据复制时:
如果你想设置不同的用户,JennyD 的解决方案是最好的。
如果你这样做:
sudo cat /etc/foo.txt > ~/foo.txt
Run Code Online (Sandbox Code Playgroud)
然后,~/foo.txt将开放由壳为你(所以请与您的凭据创建的),然后sudo将其标准输出重定向到被执行。
最后,该文件将归您所有。
这种方法也有助于限制root. 在这里,root只使用他的权限 open /etc/foo.txt,它不会做可能有害的事情(打开一个文件进行写入,如果~/foo.txt是符号链接可能会产生不良后果)。
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |