Probablemente uses pulseaudio
...
Por lo tanto, debe usar play
en lugar de aplay
.
Prueba:
* * * * * /usr/bin/play /tones/beep.wav > /home/user/cronlogs/cron.log
Если у вас есть резервная копия, даже если она старая -, используйтеstar
:
cd /
star -xpU -meta pat=etc* < backup.tar
Это не восстанавливает содержимое, а только метаданные для файлов, например. владелец разрешений.... ).
Если у вас есть вторая установка с той же версией ОС, сделайте резервную копию метаданных из этой системы, используя:
cd /
star -c -meta etc > /tmp/backup.tar
и позже извлеките метаданные поврежденной системы, используя:
cd /
star -xpU -meta < backup.tar
Если к вам это не относится, вам необходимо переустановить...
Дополнительную информацию см. на справочной странице http://schilytools.sourceforge.net/man/man1/star.1.html.
Как упоминалось @dsstorefile1, копирование метаданных из другой системы будет полным решением только в том случае, если в поврежденной системе нет файлов, отсутствующих в эталонной системе, но вы можете проверить файлы в /etc/ после метаданных. восстановление данных для файлов, которые столь же молоды, как curruption, но старше, чем восстановление и все еще имеют 777.
Кстати,:star
также можно использовать для сравнения разрешений, поскольку star -diff
позволяет сравнивать содержимое файла и все метаданные и, что более важно, star
позволяет настраивать то, что сравнивается, с помощью параметра diffopts=
.
Так что, если у вас есть резервная копия из другой похожей системы, вы можете запустить:
cd /
star -diff -v diffopts=perm pat=etc* < backup.tar
для сравнения только разрешений. Если эта резервная копия была создана с помощью star -c -dump...
,
cd /
star -diff -vv diffopts=perm,dir pat=etc* < backup.tar
также выводит список файлов, находящихся в локальной системе, но отсутствующих в резервной копии.
Этот ответ предполагает, что у вас нет резервной копии.
Поскольку информация -метаданные разрешений -были утеряны в вашей системе, пути назад без внешнего источника нет.
Это может быть другой Linux, в идеале тот же дистрибутив и выпуск, что и у вас.
Во-первых, установите права доступа: для всех каталогов — 755, а для всех файлов — 644. Вы можете сделать это в /etc
с помощью следующего скрипта:
find -type d -print0|xargs -n 500 -P 1 -0 chmod 755
find -type f -print0|xargs -n 500 -P 1 -0 chmod 644
Во-вторых, выгрузите данные разрешений в текстовый файл в другой системе с помощью команды
find -print 0|xargs -0 -P 1 -n 500 ls -ld|sort -k +9 > permdata_ok.txt
Вы получите permdata.txt
в удаленной системе. Нужна сортировка, позже объясню, зачем.Переместите этот файл из удаленной системы в локальную.
Выполните тот же сценарий в своей локальной системе, но вместо permdata_ok.txt
используйте permdata_bad.txt
.
А теперь самое интересное. Сравните эти файлы вместе!
Команда:diff -urNw permdata_bad.txt permdata_ok.txt
. Его синтаксис вывода будет не очень красивым для вас, если вы не разработчик, но вы можете его освоить.
Вы увидите различия в файловых режимах и в самом файле. Если разница слишком велика, установите ее обратно вручную.
Поскольку не все файлы существуют в обеих системах, вам потребуется рациональное мышление.
Если ваша система чувствительна к безопасности, лучше установить все на 700
/ 600
на первом шаге. Тогда у вас будет гораздо больше проблем, связанных с разрешением -, но вы не станете причиной нарушения безопасности.