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 + -
显示快捷键?