20145306《信息安全系统设计基础》第10周学习总结

阅读: 评论:0

20145306《信息安全系统设计基础》第10周学习总结

20145306《信息安全系统设计基础》第10周学习总结

20145306《信息安全系统设计基础》第10周学习总结

编写一个who命令:

who命令用来查看谁登录了系统(show who is logged on ),每一行代表一个巳经登录的用户,第1列是用户名,第2列是终端名,第3列是登录时间。

who的联机帮助说who要读utmp这个文件,进一步,从以上的说明可以知道utmp这个文件里面保存的是结构体数组,数组元素是utmp类型的结构,utmp结构保存了登录记录。它包含9个成员变量,ut_user 数组保存登录名,ut_line 数组保存设备名,也就是用户的终端类型,ut_time 保存登录时间。

 

who命令伪代码

打开utmp 文件
读取utmp中的每一条记录
显示记录中的相关信息
关闭utmp文件 

who命令代码:

#include <stdio.h> #include <stdlib.h> #include <utmp.h> #include <fcntl.h> #include <unistd.h> #define SHOWHOST int show_info( struct utmp *utbufp ) { printf("%-8.8s", utbufp->ut_name); printf(" "); printf("%-8.8s", utbufp->ut_line); printf(" "); printf("%10ld", utbufp->ut_time); printf(" "); #ifdef SHOWHOST  printf("(%s)", utbufp->ut_host); #endif printf("n"); return 0; } int main() { struct utmp current_record; int utmpfd; int reclen = sizeof(current_record); /*打开UTMP_FILE读取信息,如果打开失败则输出失败信息。*/ if ( (utmpfd = open(UTMP_FILE, O_RDONLY)) == -1 ){ perror( UTMP_FILE ); exit(1); } /*读取信息到存储器中,reclen就是是读的字节数,然后再调用函数打印出来。*/ while ( read(utmpfd, &current_record, reclen) == reclen ) show_info(&current_record); close(utmpfd); return 0; } 运行who命令: 2

 

编写一个cp命令:

 

伪代码:
打开源文件
创建目标文件
针对源文件
把源文件读入缓冲区
把缓冲区内容写入目标文件
关闭源文件和目标文件

代码:

 

 

 

 

 

 

 


ls:

ls老师给了两个代码,第一个实现功能显示当前文件夹内容,第二个在第一个的基础上更加完善,还可显示出文件的详细信息,如读写权限,大小和创建时间等

ls实现的功能:

    ls -l:显示文件信息ls -a:列出文件目录ls -lu:最后访问时间ls -s:以块为单位的文件大小ls -t:按时间排序 ls -F:显示文件类型

文件树
文件和目录被组织成目录树(tree),节点是目录或者文件
目录是一种特殊文件,文件内容就是目录和文件的名字,与utmp类似
与文件不同,目录不会为空

伪代码:

打开目录文件
针对目录文件
读取目录条目
显示文件名
关闭文件目录文件

ls代码:
#include <stdio.h> #include <sys/types.h> #include <dirent.h> void do_ls(char []); int main(int argc, char *argv[]) { if ( argc == 1 ) do_ls( "." ); else while ( --argc ){ printf("%s:n", *++argv ); do_ls( *argv ); } return 0; } void do_ls( char dirname[] ) { DIR *dir_ptr; struct dirent *direntp; if ( ( dir_ptr = opendir( dirname ) ) == NULL ) fprintf(stderr,"ls1: cannot open %sn", dirname); else { while ( ( direntp = readdir( dir_ptr ) ) != NULL ) printf("%sn", direntp->d_name ); closedir(dir_ptr); } }  

 



5

 

代码托管链接

posted on 2016-11-20 17:24  20145306张文锦 阅读( ...) 评论( ...) 编辑 收藏

转载于:.html

本文发布于:2024-01-29 16:14:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170651606816511.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息安全   基础   系统
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23