Как дать разрешение на запись в файл в Linux? - PullRequest
17 голосов
/ 18 июля 2011

Как я могу (программно) дать разрешение на запись в файл конкретному пользователю в Linux? Как, например, его владелец? Каждый имеет доступ для чтения к этому файлу.

Ответы [ 5 ]

24 голосов
/ 18 июля 2011

В оболочке или сценарии оболочки просто используйте:

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.

9 голосов
/ 18 июля 2011

Восьмеричный режим 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);
1 голос
/ 18 июля 2011
chmod 644 FILENAME

6 - чтение и запись, 4 - только чтение.Предполагая, что владельцем файла является пользователь, которому вы хотите предоставить доступ на запись.

0 голосов
/ 05 сентября 2018

Вы можете использовать chmod 777 <filename>

0 голосов
/ 18 июля 2011

Вы можете сделать это с помощью chmod, в ubuntu вы можете попробовать $ sudo chmod 666 Это даст всем права на чтение / запись ... проверьте это для более подробной информации: http://catcode.com/teachmod/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...