2010-06-30 19 views
0

我通過以只讀模式打開源文件並以只寫模式打開目標文件來複制文件。這很簡單,它的工作原理。使用C複製文件並在Linux中更改其權限C

問題是,有時我正在複製一個位於NFS驅動器或其他網絡驅動器上的文件,並且在這種情況下權限會全部搞砸,SELinux會抱怨。我然後去手動設置我剛剛複製的文件的權限,這是可以的。我可以再次訪問它們(通過ftp,web等)。

有什麼辦法可以複製文件並將權限更改爲某個用戶和組?

代碼表示讚賞。 感謝

編輯:

會像

open(argv[2], O_WRONLY | O_CREAT, 0666) 

工作?

+0

您的意思是更改_permissions_('rwxrwxrwx'),或更改_ownership_(用戶和組)? – 2010-06-30 19:26:03

+0

david:要麼。我的意思是,我嘗試與chown用戶:組,我試着chmod 666,也可以工作... – Jessica 2010-06-30 19:28:47

+0

你可能不想0666;這會使文件公開可寫,這通常是一個錯誤。我建議0644;我願意接受0664.我很高興你沒有說很多人都在使用0777 - 不小心。 – 2010-06-30 21:07:53

回答

2

對於用戶和組設置更改,請使用chown()函數。 chmod()對st_mode值起作用,如保護和setuid,setgid,sticky位。