То есть O_RDONLY можно менять на O_RDWR что ли? А я думал, можно специально от рута открыть например файл, к которому доступа ни у кого нет, сделать setuid, и у тебя гарантия, что дальше ты файл никак не испортишь.
Задача поставлена странно. Судя из условия, Вам нужно просто отсоединить процесс от контрольного терминала. Делается это, например, через ioctl (fd,TIOCNOTTY). А что значит "поменять включить опцию файла" и зачем это делать?