14-习题
38.13 习题
38-1. 用一个普通的非特权用户登录系统,创建一个可执行文件(或复制一个既有文件,如/bin/sleep),然后启用该文件的set-user-ID权限位(chmod u+s)。尝试修改这个文件(如cat >> file)。当使用(ls –l)时文件的权限会发生什么情况呢?为何会发生这种情况?
38-2. 编写一个与sudo(8)程序类似的set-user-ID-root程序。这个程序应该像下面这样接收命令行选项和参数:
douser程序使用给定的参数执行program-file,就像是被user运行一样。(如果省略了–u选项,那么user默认为root。)在执行program-file之前,douser应该请求user的密码并将密码与标准密码文件进行比较(参见程序清单8-2),接着将进程的用户和组ID设置为与该用户对应的值。