Измененный доступ к файлу к только для чтения, но я могу все еще записать в файл. Почему?

Переменные среды набора в ~/.profile, например, путем добавления этой строки:

export JAVA_HOME=/usr/java/jdk1.7.0_05
1
06.06.2013, 13:10
1 ответ

Поскольку Вы, кажется, делаете это как root это объясняет, что Вы имеете права записать в каталоге. root может также добавить в файл, даже если это полномочия -r--r--r--.

echo "new-rubbish" > tmp.txt

действительно усекает файл (как JoelDavis, на который указывают), таким образом, он не удаляет его и пишет его снова (при использовании bash).

3
27.01.2020, 23:29
  • 1
    Спасибо за этот ответ. Я понимаю теперь, когда chmod не достаточно для моих требований, и я должен использовать chattr +i на моих файлах. Еще раз спасибо –  mathematician1975 06.06.2013, 13:40
  • 2
    @Anthon, которая не влияет на законность Вашего ответа и я очень не хочу быть противоположным, но колотить, по крайней мере, кажется, открывает файл с O_TRUNC. Я связал демонстрацию идеи, в основном ни один inode число или изменения crtime inode, и дальнейшие власти на выводе strace (не показанный) не показывают никому unlink операция. Вероятно, более вероятно, что OP замечает неявное владение корня CAP_DAC_OVERRIDE почти на всех реализациях GNU/Linux. –  Bratchley 06.06.2013, 14:13
  • 3
    @JoelDavis спасибо за указание на это. Я думал, что помнил, что вещами был тот путь, когда я посмотрел на это более подробно давным-давно. Но это не было с ударом (я не могу помнить, была ли это граница или csh), на PDP-11. Таким образом, могло как легко случиться так, что моя память вещей является неправильной. –  Anthon 06.06.2013, 14:21

Теги

Похожие вопросы