修改文件权限的方式有两种:符号模式和绝对模式。
1)符号模式。使用 chmod 命令修改当前权限设置的一般形式是: chmod key file [file, ]
其中,key 由以下成分组成: [who][+| -|+][mode 】
· who 这一部分可以由下面的一个和多个字符组成: u,g,o 或 a,它们分别表示 文件主、组用户、其他用户或所有 3 种用户。默认值是 a(all)。
· 第二部分必须是以下 3 个字符中的一个: +,-,或者 =,分别表示增加、删除或 者设定。
· mode 成份可以由以下字符任意组合: r,w,或x,分别表示读、写或者执行/查 询的权限。
以上 3 个部分必须依次输入,而且它们之间没有空格。在一个命令行中可以指定多 个 key,彼此之间用逗号隔开,中间没有空格。
例如:设文件 file1 原来的权限是 rw-rw-r-- ,现在想让所有用户都具有执行权限,则 可使用以下命令: chmod a+x file1
该命令执行后,文件 file1 的权限将变成 rwxrwxr-x。 练习:
· 首先使用 ls -1命令查看文件 file1 的存取权限。 · 然后是用以下命令:
chmod g-r,o-r file1
修改 file1 的权限——组用户和其他用户都被取消对该文件的读权限。 · 最后,使用命令: ls -1 file1
核查文件 filel 存取权限的变化情况。
2)绝对模式。在 chmod 命令中可以使用数字表示不同的权限。
· key这一部分可由 3 个或多个数字组成,其中每一个数字表示一类用户 (文件主、 组用户、其他用户 )的权限。
· 每个数字都表示不同的权限,如: r=4(100),w=2(010),x=(001)l。
如果某种权限被禁用,则对应的值为 0。表示权限值的数字范围从 0 到 7。
key部分可以形成一个 3 位数字,其中第一位表示文件主权限, 第二位表示组用 户权限,第三位表示其他用户权限。 例如:符号模式 rw- rw- r-- 绝对模式 6(110) 6(110) 4(100) 例如:
运行一下命令,把文件 filel 的权限改为对所有用户都有读和写的权限: chmod 666 file1
用 ls -1命令和查文件 file1 的权限。 (9) 使用命令 cd ../.. ,你将工作目录移到了什么地方 ? 五、实验体会
通过本次实验,了解了文件的一些相关操作,收获颇丰。
16
实验报告
组别 实验项目名称
姓名
实验四进程编程
同组实验者 实验日期
第 15 周周四 9,10 节
教师评语
实验成绩
一、实验目的及要求
掌握 Linux 进程编程的基本方法。 二、实验内容步骤: 1、启动一个新进程 #include
指导教师 廉文娟
#include
intresult_code;
printf(\
result_code=system(\{ printf(\); }
if(result_code==-1) {
printf(\} else{
printf(\} }
运行结果如图:
17
2、exec系列函数 #include
printf(\printf(\
char*constps_argv[]={\
char*constps_envp[]={\execv(\printf(\}
运行结果如下:
3、复制进程映像, folk () #include
18
pid_t pid;
char *message; int n;
printf(\pid = fork(); switch(pid) {
Case-1:perror(\break;
case 0:message=\n=8; break;
default:message=\n=3; break; }
for(;n>0;n--) {
puts(message); sleep(1); }
exit(0); }
运行结果如图:
分裂后父子进程是彼此相互独立运行的,所以要想让父进程等待子进程,只需使用 wait()系统调用: #include
19
#include
Pid-t pid;
char *message; int n;
int exit_code;
printf(\pid = fork(); switch(pid) {
case -1:perror(\exit(1);
case 0:message = \n = 8; exit_code = 37;
break; default:message = \n= 5;
exit_code = 0; break; }
for(;n>0;n--) { puts(message);
sleep(1); }
if(pid != 0) {
int stat_val; pid_t child_pid;
child_pid = wait(&stat_val);
printf(\{
printf(\} Else {
printf(\;
20