inode.cc

来自「南京航空航天大学开发的一个类Unix和Linux的操作系统,好不好看看就知道了,」· CC 代码 · 共 41 行

CC
41
字号
#include <lib/root.h>#include <lib/errno.h>#include <kern/sched.h>#include "inode.h"#include "stat.h"int inode_t::denyunlink(inode_t * inode){	assert(isdir());	if (mode & SISVTX)		return deny(IW);	if (suser() || (curr->euid == uid) & (curr->euid == inode->uid))		return 0;	else		return EACCES;}int inode_t::deny(mode_t request){	mode_t granted = mode;		/* if (suser()) return 0; */	if (curr->euid == uid)		granted >>= 6;	else if (curr->egid == gid)		granted >>= 3;	granted &= 7;	return ((request & granted) == request) ? 0 : EACCES;}int inode_t::denyuid(mode_t request){	mode_t granted = mode;	if (curr->uid == uid)		granted >>= 6;	else if (curr->gid == gid)		granted >>= 3;	return ((request & granted & 7) == request) ? 0 : EACCES;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?