У меня есть скрипт, который запускается от имени root, он должен хранить свой файл кэша (только измененный скриптом) в / var / lib / varlibfile. Однако сценарий, похоже, не создает файл, и мое расследование привело меня к следующему:
$ sudo echo "something" >/var/lib/varlibfile
bash: /var/lib/varlibfile: Permission denied
$ sudo echo "something" >varlibfile
$ sudo cp varlibfile /var/lib/
Другими словами, я могу создать файл с именем varlibfile в / var / lib, но мне не разрешено создавать его с помощью перенаправления. Работает только копия файла. Мне это кажется очень странным, и я хотел бы использовать перенаправление непосредственно к намеченному файлу, а не создавать его где-то еще, а затем копировать.
Некоторая дополнительная информация:
$ ls -ld /var
drwxr-xr-x 14 root root 4096 2009-03-02 14:47 /var
$ ls -ld /var/lib
drwxr-xr-x 51 root root 4096 2009-05-16 19:25 /var/lib
$ ls -la /var/lib/ | head
total 204
drwxr-xr-x 51 root root 4096 2009-05-16 19:25 .
drwxr-xr-x 14 root root 4096 2009-03-02 14:47 ..
drwxr-xr-x 2 root root 4096 2009-03-02 14:22 acpi-support
drwxr-xr-x 2 root root 4096 2009-03-02 14:39 alsa
drwxr-xr-x 2 root root 4096 2009-05-14 14:42 apparmor
drwxr-xr-x 6 root root 4096 2009-05-14 14:42 apt
drwxr-xr-x 2 root root 4096 2008-04-04 11:56 aptitude
drwxr-xr-x 2 root root 4096 2008-07-02 12:58 aspell
drwxr-xr-x 2 avahi-autoipd avahi-autoipd 4096 2009-03-05 16:42 avahi-autoipd
Кто-нибудь может объяснить, почему это происходит? И как решить проблему, в идеале я хочу написать / var / lib / varfile напрямую, без какого-либо предыдущего создания в другом месте.