前言
考慮如下情景:foo用戶home目錄下有一文件file.txt,要將其copy至bar用戶的home目錄。Linux對用戶home目錄有嚴格的權限限制,非owner用戶或者同group用戶無權限讀寫,除非是root(至高無上的root)。如果沒有root權限,有什么辦法把file.txt 復制到bar用戶的home目錄下呢?
想到兩個辦法。
第一個辦法,先用foo用戶登錄,把文件copy到系統臨時目錄/tmp,然后切換到bar用戶,再從系統臨時目錄/tmp把文件copy到自己的home目錄。這里為什么用cp不用mv?因為復制到/tmp的文件owner還是foo,默認情況下其他用戶自有讀權限,沒有寫權限(自然沒有移動權限)。即使通過修改文件權限,讓bar可寫,移動到bar的home目錄下owner還是foo,而且非得root才能改成bar。這個辦法有點曲折,弊端也很明顯,文件需要復制兩次,花兩倍的時間。
# cp file.txt /tmp/ # su - bar # cp /tmp/file.txt ~/ # exit # rm /tmp/file.txt
第二個辦法,使用scp命令。原本scp是用來在不同主機上通過網絡copy文件,用在這里剛好。用bar用戶登錄
# scp foo@localhost:/home/foo/file.txt ./
輸入foo用戶密碼,開始文件傳輸。也可以用foo用戶登錄,
# scp file.txt bar@localhost:/home/bar/
輸入bar用戶密碼,過程一樣。
實際中使用哪一種方法,看個人喜好了。如果要copy的文件不大,第一種方法也不失為一種選擇。
結束語
以上就是給大家分享的Linux中不同用戶之間復制文件的兩個方法,希望對大家的學習和工作能有所幫助。如果有疑問可以留言討論。
新聞熱點
疑難解答