微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不同用户拥有的POSIX共享内存导致权限被拒绝错误

如何解决不同用户拥有的POSIX共享内存导致权限被拒绝错误

我有一个程序可以创建四个共享内存对象;内存创建例程在尝试创建它们之前调用 shm_unlink,程序调用一个例程以在运行结束时使用 shm_unlink 删除它们。

今天,我在尝试重新创建对象 2-4(但不是对象 1)时收到“权限被拒绝”。 Linux fuser 显示它们都属于同一个进程,所以我无法杀死它。

我去了 /dev/shm 并执行了 ls -l,发现 2-4 是由 root 拥有的,而不是由我的 sudo 用户拥有。我很少以 root 身份登录,所以我不知道它们是如何被 root 拥有的。

为了解决这个问题,我以root身份登录并手动删除它们。我的问题是,当发生这种情况时,有没有更好的方法可以在不以 root 身份登录的情况下删除它们?有没有办法在 shm 对象上调用 chown 并更改所有者?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。