
Доброе утро,
Я пытаюсь настроить задание cron на своей машине CentOS, которое будет передавать файл из домашнего каталога одного пользователя в каталог другого.
btiseis@mymachine [~]# mv ./myfile.csv /home/mmh/tmp
Я установил права доступа к каталогу tmp 0777, но все равно получаю следующее сообщение об ошибке:
mv: accessing '/home/mmh/tmp': Permission denied
Я предполагаю, что эта проблема связана с передачей файла между домашними каталогами.
Есть идеи?
Дэн
решение1
Домашние каталоги не являются чем-то особенным; просто пользователи называют их так. Ничто в системе не заботится о том, считается ли каталог «домашним каталогом» для пользователя.
Вам НУЖНЫ разрешения на все каталоги. Таким образом, вам нужны разрешения на запись в /home/mmh/tmp и на чтение+выполнение в /home/mmh (хотя достаточно либо чтения, либо выполнения, просто не уверен, какое из них. Но обычно чтение и выполнение либо установлены, либо сняты для каталогов), чтобы вы могли фактически добраться до /home/mmh/tmp внутри.
Вы можете обойти все это, если запустите cronjob как root; обычно не стоит расширять права доступа, если только это не является абсолютно необходимым. Это может быть проблемой в вашем случае (я предполагаю, что других пользователей нет), но плохие привычки трудно искоренить позже.
EDIT: если два пользователя "дружелюбны" (как две инкарнации вас, так что вы действительно не против, чтобы другой парень шпионил за вашими данными), вы можете добавить основную группу "целевого" пользователя в список групп "отправляющего" пользователя и использовать групповые разрешения. Во многих системах каждый пользователь создается со своей собственной частной группой.