
早期UNIX进程间通信:包括管道、FIFO、信号。
基于System V的进程间通信:包括System V消息队列、System V信号灯(Semaphore)、System V共享内存。
基于Socket进程间通信。
基于POSIX进程间通信:包括POSIX消息队列、POSIX信号灯、POSIX共享内存。
Linux中,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)、
IPCS命令是Linux下显示进程间通信设施状态的工具。我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式[2]。使用IPCS可以查看共享内存、信号量、消息队列的状态。
例如在CentOS6.0上执行ipcs
具体的用法总结如下:
1、显示所有的IPC设施
# ipcs -a
2、显示所有的消息队列Message Queue
# ipcs -q
3、显示所有的信号量
# ipcs -s
4、显示所有的共享内存
# ipcs -m
5、显示IPC设施的详细信息
# ipcs -q -i id
id 对应shmid、semid、msgid等。-q对应设施的类型(队列),查看信号量详细情况使用-s,查看共享内存使用-m。
6、显示IPC设施的限制大小
# ipcs -m -l
-m对应设施类型,可选参数包括-q、-m、-s。
7、显示IPC设施的权限关系
# ipcs -c
# ipcs -m -c
# ipcs -q -c
# ipcs -s -c
8、显示最近访问过IPC设施的进程ID。
# ipcs -p
# ipcs -m -p
# ipcs -q -p
9、显示IPC设施的最后 *** 作时间
# ipcs -t
# ipcs -q -t
# ipcs -m -t
# ipcs -s -t
10、显示IPC设施的当前状态
# ipcs -u
Linux上的ipcs命令,不支持UNIX上的-b、-o指令,同样UNIX中不支持-l、-u指令,所以在编写跨平台的脚本时,需要注意这个问题。
这种异常有可能是selinux的限制导致,如是,参照以下解决方法:如果可以root登录,关闭selinux;若不能root登录,先进入单用户模式,然后关闭selinux。关闭selinux方法如下(1,2按照以下步骤):方法一:1)#getenforce查看selinux状态,当然有了。
默认文件都有其权限控制(DAC),只要做好权限控制,做好备份,非必要不使用root(超级管理员),就不会发生误删。
另外更安全的功能叫SELinux(安全Linux模块),绝大多数发行版都默认安装了,甚至有些默认开启了。开启后会从DAC切换成MAC。简而言之就是更加严格,可以理解从黑名单切换成白名单了。只给最小权限,默认不设置就什么都不能干。当然也包括rm这些删除命令。
可以给rm起个别名,强制确认
有,不用root用户 *** 作就行,普通用户没这权限
overlayfs
CPU设了一个安全保护环,零环,一环,二环,三环。 *** 作系统的内核,一般工作在零环内,驱动工作在一环和二环,应用程序一般工作在三环。格式化硬盘属于应用程序,他只是正常的调用了一下硬盘读写,系统自身并不能区别这种动作,对系统是否有害?为了对这一类动作进行保护,系统就设置了权限,不论哪一种 *** 作系统,都应该设立类似权限,当系统执行类似 *** 作时,给正常的登录用户一个确认机会,以人为判断,是否是当前 *** 作者有意为之,还是其他进程夺取了权伪装做了一个同样动作?总之,乖乖的使用受限权限进行日常工作,是个很好的习惯。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)