问题描述:
root用户shmget一块共享内存,并未显示设置flag权限,IPCS命令看到perm值为0644;进程A(非root用户启动)shmat时遇到权限问题,
解决办法:
进程只是从共享内存中读取,并不需要写权限;初始以为0644已经足够,后显示设置flag为0666后,问题解决。
总结:
下来想想,应该就是在shmat时就需要读写权限,因为共享内存本意就是需要共享读写,shmat接口并不关心只读或者只写,也做不到在attach时区分到只读或者只写,进程必须具有读写权限才能attach共享内存~~~