关于cp和sudo命令的问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
forenroll
帖子: 7
注册时间: 2011-05-21 0:50

关于cp和sudo命令的问题

#1

帖子 forenroll » 2011-05-22 15:43

cp拷贝目录或文件时是自动附带目录或文件的所属权限的
例如:

代码: 全选

ubuntu@ubuntu:sudo cp -R /var/cache  ~
用ls -l查看权限属性

代码: 全选

ubuntu@ubuntu:~$ ls -l|grep cache
drwxr-xr-x 20 root root    4096 2011-05-22 14:50 cache
结果是:cache的属性全都没改的带过来了。

怎么样才可以复制的时候不带权限呢?cp有个 --no-preserve
执行下面的命令,但是其属主还是没改,仍然是root。

代码: 全选

ubuntu@ubuntu:~$ sudo cp -R --no-preserve=mode,ownership /var/cache ~
有一个办法是cp过来后,执行

代码: 全选

ubuntu@ubuntu:~$sudo chown -hR ubuntu:ubuntu cache
但是这样就要执行两条命令。
如果是复制文件的话有个简单的方法,但是也要两条命令:

代码: 全选

ubuntu@ubuntu:~$touch filename
ubuntu@ubuntu:~$cp /var/cache/filename ~
我是懒人,想只用cp,加个参数就达到这两条命令的效果。
求帮忙。


sudo命令
sudo命令帮我们临时取得root权限,而且让我们在一段时间内都不用再输入root用户密码了。
但是如何在这个密码过期之前,手动释放root权限呢?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 关于cp和sudo命令的问题

#2

帖子 枫叶饭团 » 2011-05-22 15:48

su命令? :em06
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 关于cp和sudo命令的问题

#3

帖子 fnan » 2011-05-22 20:46

kose3@kose3-desktop:~$ cp -vr /var/cache ~
`/var/cache' -> `/home/kose3/cache'
`/var/cache/man' -> `/home/kose3/cache/man'
。。。。。
kose3@kose3-desktop:~$ ls -l |grep 'cache'
drwxr-xr-x 18 kose3 kose3 4096 2011-05-22 07:37 cache
但是如何在这个密码过期之前,手动释放root权限呢? sudo -K
不保留root权限: sudo -k 命令
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
forenroll
帖子: 7
注册时间: 2011-05-21 0:50

Re: 关于cp和sudo命令的问题

#4

帖子 forenroll » 2011-05-25 21:21

fnan 写了:kose3@kose3-desktop:~$ cp -vr /var/cache ~
`/var/cache' -> `/home/kose3/cache'
`/var/cache/man' -> `/home/kose3/cache/man'
。。。。。
kose3@kose3-desktop:~$ ls -l |grep 'cache'
drwxr-xr-x 18 kose3 kose3 4096 2011-05-22 07:37 cache
但是如何在这个密码过期之前,手动释放root权限呢? sudo -K
不保留root权限: sudo -k 命令
囧了,为什么我第一次用这个命令的时候把目录的属主属性也带过来了呢?bug么
谢谢各位了。
虽然可以sudo -k ,但是我还是想知道,有没有手动释放权限的命令。呵呵。
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: 关于cp和sudo命令的问题

#5

帖子 fnan » 2011-05-25 22:57

虽然可以sudo -k ,但是我还是想知道,有没有手动释放权限的命令。呵呵。
sudo -K sudo -k 可不一样的。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
回复