10.7.2 Linux中安全相关的系统调用

只有为数不多的几个安全性相关的系统调用。其中最重要的几个在图10-38中列出。最常用到的安全相关的系统调用是chmod。它用来改变保护模式。例如:


s=chmod("/usr/ast/newgame",0755);


它把newgame文件的保护模式修改为rwxr-xr-x,这样任何人都可以运行该程序(0755是一个八进制常数,这样表示很方便,因为保护位每三个分为一组)。只有该文件的所有者和超级用户才有权利改变保护模式。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

阅读 ‧ 电子书库
图 10-38 一些与安全相关的系统调用。当错误发生时,返回值s为-1;uid和gid分别是UID和GID。参数的意思不言自明

access系统调用检验用实际的UID和GID对某文件是否拥有特定的权限。对于根用户所拥有的并设置了SETUID的程序,我们需要这个系统调用来避免安全违例。这样的程序可以做任何事情,有时需要这样的程序判断是否允许用户执行某种访问。让程序通过访问判断显然是不行的,因为这样的访问总能成功。使用access系统调用,程序就能知道用实际的UID和GID是否能够以一定的权限访问文件。

接下来的四个系统调用返回实际的和有效的UID和GID。最后的三个只能够被超级用户使用,它们改变文件的所有者以及进程的UID和GID。