libtrash
сломан:
Например, в helpers.c
:
char* make_absolute_path_from_dirfd_relpath(int dirfd, const char *arg_pathname)
{
char *abs_path = NULL;
if (arg_pathname == NULL)
{
return NULL;
}
else if (arg_pathname[0] == '/' || dirfd == AT_FDCWD)
{
return arg_pathname;
}
else if (dirfd <= 0)
{
errno = EBADF;
return NULL;
}
Значение 0
для дескриптора файла совершенно законно. Поскольку вы используете перенаправление, вы читаете из stdin
, который является дескриптором файла 0
. Я подозреваю, что это то, что ломается где-то в libtrash
.
У меня было другое понимание разрешений, теперь я вижу, что это так же просто, как изменить права доступа к каталогу или права собственности на каталог, и я могу запустить инструмент резервного копирования, указав заданный каталог.
Итак, я создал каталог /var/backups/home-backup
как sudo, а затем изменил владельца каталога с помощью sudo chown -R my_user_name /var/backups/home-backup
, и теперь я могу использовать этот каталог в качестве целевого каталога резервного копирования.
Так что я также могу указать этот каталог в инструменте NAS, который копирует данные на внешнее устройство, и все работает так, как я хотел.
Извините за вопрос.из-за моего небольшого понимания системы каталогов Linux я думал, что не смогу легко получить доступ к каталогам вне дома от моего простого пользователя, не вводя каждый раз пароль.
Чтобы сделать резервную копию без пароля, затем сделайте резервную копию зашифрованных файлов (, а не расшифрованных файлов ), таким образом вам не нужен пароль, и вы не нарушите безопасность.
Резервное копирование на то же устройство не является резервным копированием. Если вы пытаетесь защититься от ошибок пользователя, используйте контроль версий :mercurial, sub -версию и т. д.
У обычного пользователя нет разрешения на создание каталога за пределами своего дома. Для этого вам нужно будет использовать sudo
. Вы можете создать его принадлежащим вам, чтобы потом использовать его. Однако в этом нет необходимости: