Как я могу (программно) предоставить разрешение на запись в файл конкретному пользователю в Linux? Как, например, его владелец? У каждого есть доступ для чтения к этому файлу.
Как предоставить разрешение на запись файла в Linux?
Ответ 1
В оболочке или оболочке script просто используйте:
chmod u+w <filename>
Это только изменяет бит записи для пользователя, все остальные флаги остаются нетронутыми.
Если вы хотите сделать это в программе на C, вам необходимо использовать:
int chmod(const char *path, mode_t mode);
Сначала запросите существующий режим с помощью
int stat(const char *path, struct stat *buf);
... и просто установите бит записи, выполнив newMode = oldMode | S_IWUSR
. Подробнее см. man 2 chmod
и man 2 stat
.
Ответ 2
В восьмеричном режиме 644
будут предоставлены владельцам права на чтение и запись, а также только разрешения на чтение для остальной группы, а также для других пользователей.
read = 4
write = 2
execute = 1
owner = read | write = 6
group = read = 4
other = read = 4
Основной синтаксис команды для установки режима -
chmod 644 [file name]
В C это будет
#include <sys/stat.h>
chmod("[file name]", 0644);
Ответ 3
chmod 644 FILENAME
6 читается и записывается, 4 читается только. Предполагая, что владельцем файла является пользователь, которому вы хотите предоставить доступ на запись.
Ответ 4
Вы можете сделать это с помощью chmod, на ubuntu вы можете попробовать $ sudo chmod 666 Это дало бы разрешения на чтение/запись для всех... проверьте это для получения дополнительной информации: http://catcode.com/teachmod/