скопируйте файл и измените его разрешения в Linux с помощью C - PullRequest
0 голосов
/ 30 июня 2010

Я копирую файл, открывая источник в режиме только для чтения и пункт назначения в режиме только для записи.Это просто и работает.

Проблема в том, что иногда я копирую файл, который находится на диске NFS или на других сетевых дисках, и когда в этих случаях права доступа облажаются, а SELinux жалуется.Затем я иду и вручную устанавливаю права доступа к файлам, которые я только что скопировал, и все в порядке.Я снова могу получить к ним доступ (через ftp, web и т. Д.).

Можно ли скопировать файл и изменить права доступа для определенного пользователя и группы?

Код приветствуется.Спасибо

РЕДАКТИРОВАТЬ:

будет что-то вроде

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

работа?

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

Для изменения настроек пользователя и группы используйте функцию chown (). chmod () работает со значениями st_mode, такими как защиты и setuid, setgid, sticky bit.

0 голосов
/ 30 июня 2010

По http://www.delorie.com/gnu/docs/glibc/libc_290.html, есть функция:

int chmod (const char *filename, mode_t mode)

Это должно делать то, что вы хотите.

...