(2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * */ /** * set the immutable flag for a file * * @param string $filename the file to set the flag for * * @return boolean */ function setImmutable($filename = null) { safe_exec(_getImmutableFunction(false).escapeshellarg($filename)); } /** * removes the immutable flag for a file * * @param string $filename the file to set the flag for * * @return boolean */ function removeImmutable($filename = null) { safe_exec(_getImmutableFunction(true).escapeshellarg($filename)); } /** * internal function to check whether * to use chattr (Linux) or chflags (FreeBSD) * * @param boolean $remove whether to use +i|schg (false) or -i|noschg (true) * * @return string functionname + parameter (not the file) */ function _getImmutableFunction($remove = false) { if (isFreeBSD()) { // FreeBSD style return 'chflags '.(($remove === true) ? 'noschg ' : 'schg '); } else { // Linux style return 'chattr '.(($remove === true) ? '-i ' : '+i '); } }