Permissions
如何將root無法訪問的目錄複製到只有root可以訪問的目錄?
我在 nfs 掛載上有一個目錄,該目錄在伺服器上位於
/home/myname/.rubies
Root 無法訪問此目錄:
[mitchell.usher@server ~]$ stat /home/mitchell.usher/.rubies File: `/home/mitchell.usher/.rubies' Size: 4096 Blocks: 8 IO Block: 32768 directory Device: 15h/21d Inode: 245910 Links: 3 Access: (0755/drwxr-xr-x) Uid: ( 970/mitchell.usher) Gid: ( 100/ users) Access: 2016-08-22 15:06:15.000000000 +0000 Modify: 2016-08-22 14:55:00.000000000 +0000 Change: 2016-08-22 14:55:00.000000000 +0000 [mitchell.usher@server ~]$ sudo !! sudo stat /home/mitchell.usher/.rubies stat: cannot stat `/home/mitchell.usher/.rubies': Permission denied
我正在嘗試從該目錄中複製某些內容
/opt
,只有 root 可以訪問:[mitchell.usher@server ~]$ cp .rubies/ruby-2.1.3/ -r /opt cp: cannot create directory `/opt/ruby-2.1.3': Permission denied [mitchell.usher@server ~]$ sudo !! sudo cp .rubies/ruby-2.1.3/ -r /opt cp: cannot stat `.rubies/ruby-2.1.3/': Permission denied
顯然我可以執行以下操作(並且是我暫時所做的):
[mitchell.usher@server ~]$ cp -r .rubies/ruby-2.1.3/ /tmp/ [mitchell.usher@server ~]$ sudo cp -r /tmp/ruby-2.1.3/ /opt/
有什麼方法可以不涉及將其複制為中間步驟或更改權限?
您可以
tar
用作緩衝過程cd .rubies tar cf - ruby-2.1.3 | ( cd /opt && sudo tar xvfp - )
第一個
tar
以您的身份執行,因此可以讀取您的主目錄;第二次tar
執行sudo
,因此可以寫入/opt
.
您可以使用
rsync
或scp
複製user@localhost
到本地目錄。範例
rsync
:# rsync "$real_user@localhost:$PWD/.rubies/ruby-2.1.3" /opt
你也可以選擇
$ rsync .rubies/ruby-2.1.3 "root@localhost:/opt"
如果您讓 root 直接訪問 localhost(不推薦;我們通常更喜歡 root 訪問 via
sudo
)。