CurveFs 用户权限系统调研问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID, SGID, STICKY) 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access Control Lists)的管理 ACL Access Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 Inode 相关联 如何存储和获取ACL信息 conf /tmp/fsmount 问题1:root用户无法访问挂载目录 测试发现client mount进程是哪个用户启动的就只有该用户(filesystem owner)可以访问该目录,即使挂载点mode是777。 # filesystem owner wanghai01@pubbeta1-nostest2:/tmp$ ls -l | grep fsmount drwxrwxrwx 0 root "allow_other,fd=9,rootmode=40000,"...) = 0 问题3:文件系统访问控制是在哪一层实现的? 测试curvefs,发现文件系统链路默认是没有做权限控制。(挂载点mode 777) # mountpoint wanghai01@pubbeta1-nostest2:/tmp$ ls -l | grep fsmount drwxrwxrwx 0 root0 码力 | 33 页 | 732.13 KB | 6 月前3
Open Flags 调研int flags, mode_t mode); int creat(const char *pathname, mode_t mode); int openat(int dirfd, const char *pathname, int flags); int openat(int dirfd, const char *pathname, int flags, mode_t mode); int openat2(int 020000000|O_DIRECTORY #define O_NDELAY O_NONBLOCK(O_NDELAY是在System V的早期版本引入的,后改进为O_NONBLOCK) flags中必须access mode:O_RDONLY, O_WRONLY, O_RDWR其中之一;© XXX Page 4 of 23 文件创建标志只影响打开操作, 文件状态标志影响后面的读写操作 file creation flags: 为进程uid,gid为进程gid或父目录gid(取决于SGID是否置位);当flags中出现O_CREAT 或 O_TMPFILE时,mode参数必须提供,否则会使用栈中随机字节填充;通常在没有ACL的情况下,有效的mode是经过与进程mask作用后的结果(mode & ~mask)。 # symbolic constants S_IRWXU 00700 S_IRUSR 00400 S_IWUSR0 码力 | 23 页 | 524.47 KB | 6 月前3
CurveFS Client 概要设计req, fuse_ino_t parent, const char *name, mode_t mode, struct fuse_file_info *fi); void (*mknod) (fuse_req_t req, fuse_ino_t parent, const char *name, mode_t mode, dev_t rdev); 这两个函数的功能是类似,都用来创建文件。 根据parent mkdir© XXX Page 7 of 11 void (*mkdir) (fuse_req_t req, fuse_ino_t parent, const char *name, mode_t mode); 根据parent inode id 和name,向mds查询创建dentry和inode的位置,去meta server创建dentry和inode forget void (*forget)0 码力 | 11 页 | 487.92 KB | 6 月前3
Curve文件系统元数据Proto(接口定义)required uint32 atime = 6; required uint32 uid = 7; required uint32 gid = 8; required uint32 mode = 9; required sint32 nlink = 10; required FileType type = 11; optional string symlink required uint64 length = 2; required uint32 uid = 3; required uint32 gid = 4; required uint32 mode = 5; required FileType type = 6; optional string symlink = 7; // TYPE_SYM_LINK only } message optional uint32 atime = 6; optional uint32 uid = 7; optional uint32 gid = 8; optional uint32 mode = 9; optional VolumeExtentList volumeExtentList = 10; // TYPE_FILE only } message UpdateInodeResponse0 码力 | 15 页 | 80.33 KB | 6 月前3
TGT服务器的优化添加新的命令 • tgtadm --mode logicalunit --op update --tid 1 --lun 1 --params disksize=auto • Initiator 重新发送SCSI READ CAPACITY命令 • Windows 磁盘管理器refresh • Linux open-iscsi, iscsiadm --mode node -RDPO & FUA0 码力 | 15 页 | 637.11 KB | 6 月前3
CurveFS对接S3方案设计optional uint32 atime = 6; optional uint32 uid = 7; optional uint32 gid = 8; optional uint32 mode = 9; optional VolumeExtentList volumeExtentList = 10; // TYPE_FILE only optional S3ChunkInfoList required uint32 atime = 6; required uint32 uid = 7; required uint32 gid = 8; required uint32 mode = 9; required sint32 nlink = 10; required FsFileType type = 11; optional string symlink0 码力 | 11 页 | 145.77 KB | 6 月前3
BRPC与UCX集成指南●UCP_Context* get_or_create_ucp_ctx() ●指定了FEATURE_AM, 多线程共享39 命令行参数控制context的属性 ●--brpc_ucp_error_mode缺省是none,是的本地通讯使用shared memory成为可能 ●--brpc_set_cpu_latency 非-1, 设置intel cpu节电模式,可能减少硬 件延迟。 –/dev/cpu_dma_latency UcpWorker的实现 ●封装 ucp_worker_h ●一个UcpWorker对用多个UcpConnection,由UcpCm分配。 ●在pthread运行,busy poll or wait mode。50 UcpWorker实现 提供Accept51 UcpWorker的实现 ●提供Connect。52 UcpWorker的实现 ●提供Release Connection。 –在UcpCm决定关闭连接时530 码力 | 66 页 | 16.29 MB | 6 月前3
Curve文件系统元数据管理*/ uint32_t uid; /* user id * uint32_t gid; /* group id */ uint32_t mode; /* file mode */ int nlink; /* ref count for hard link */ int64_t size; FileType type;0 码力 | 24 页 | 204.67 KB | 6 月前3
Curve文件系统元数据持久化方案设计required uint32 atime = 6; required uint32 uid = 7; required uint32 gid = 8; required uint32 mode = 9; required sint32 nlink = 10; required FsFileType type = 11; optional string symlink0 码力 | 12 页 | 384.47 KB | 6 月前3
Curve支持S3 数据缓存方案required uint32 atime = 6; required uint32 uid = 7; required uint32 gid = 8; required uint32 mode = 9; required sint32 nlink = 10; required FsFileType type = 11; optional string symlink0 码力 | 9 页 | 179.72 KB | 6 月前3
共 10 条
- 1













