• 程序:指令+数据 读入数据:Input 输出数据:Output • 打开的文件都有一个fd: file descriptor (文件描述符) • Linux给程序提供三种I/O设备 – 标准输入(STDIN)-0 默认接受来自键盘的输入 – 标准输出(STDOUT)-1 默认输出到终端窗口 – 标准错误(STDERR)-2 默认输出到终端窗口 支持的操作符号包括:

把STDOUT重定向到文件 2> 把STDERR重定向到文件 &> 把所有输出重定向到文件

原有内容基础上,追加内容 • 使用<来重定向标准输入 • 某些命令能够接受从文件中导入的STDIN tr ‘a-z’ ‘A-Z’< /etc/issue 该命令会把/etc/issue中的小写字符都转换成写写字符 • tr –d abc < /etc/fstab 删除fstab文件中的所有abc中任意字符 • cat > file mage wangxiaochun 按ctrl+d离开,可以使用文件来代替键盘的输入 • 使用“<<终止词”命令从键盘把多行重导向给STDIN cat >file <<END

• Linux 安全上下文 程 运行中的程序:进程 (process) 以进程发起者的身份运行: root: /bin/cat mage: /bin/cat 进程所能够访问资源的权限取决于进程的运行者的身份 • Linux 用户和组的主要配置文件: / etc /passwd :用户及其属性信息( ( 名称、 UID 、主组 ID 等) / etc /group :组及其属性信息 / etc /shadow :用户密码及其相关属性 / etc / gshadow:组密码及其相关属性 passwd 文件格式 • login name :登录用名( wang ) • passwd :密码 (x)映射到/etc/shadow(pwunconv取消映射,pwconv还原映射) • UID号 :用户身份编号 (1000) • GID :登录默认所在组编号 (1000) • GECOS :用户全名或注释 • home directory录 :用户主目录 (/home/ wang) ) • shell :用户默认使用 shadow 文件格式 • 登录用名 • 用户密码: : 一般用 sha512 加密($加密算法$salt$password) • 从 1970 年1月1日起到密码最近一次被更改的时间 • 密码再过几天可以被变更(0 表示随时可被变更) • 密码再过几天必须被变更( 99999 表示永不过期) • 密码过期前几天系统提醒用户(默认为一周) • 密码过期几天后帐号会被锁定 • 从 1970 年1月1起,多少天密码失效 • 保留位,将来使用 group 文件格式 • 群组名称:就是群组名称 • 群组密码:通常不需要设定,密码是被记录在/etc/gshadow(grpconv,grpunconv) • GID的 :就是群组的 ID • 以当前组为附加组的用户列表( 分隔符位逗号) gshdow 文件格式 • 群组名称:就是群组名称 • 群组密码:(非组成员可以通过组密码临时获得组成员的身份) • 组管理员列表:组管理员的列表,更改组密码和成员 • 以当前组为附加组的用户列表:(分隔符为逗号) 文件权限匹配顺序:owner,group,other.一点匹配成功,后面将不再继续匹配。 • 文件的权限主要针对三类对象进行定义 owner: 属主 , u group: 属组 , g other: 其他 , o • 每个文件针对每类访问者都定义了三种权限 r: Readable 读 100 4 w: Writable 写 010 2 x: eXcutable 执行 001 1 • 文件: r: 可使用文件查看类工具获取其内容 w: 可修改其内容 x: 可以把此文件提请内核启动为一个进程 • 目录: r: 可以使用 ls 查看此目录中文件列表 w: 可在此目录中创建文件,也可删除此目录中的文件 x: 可以使用 ls -l查看此目录中文件列表,可以 cd 进入此目录 X: 只 给目录x权限,不给文件x权限 新建文件和目录的默认权限 • umask值 可以用来保留在创建文件权限 • 新建 FILE 权限 : 666- - umask 如果所得结果某位存在执行(奇数)权限,则将其权限 +1 • 新建 DIR 权限 : 777- - umask • 非特权用户umask 是 002 • root 的umask 是 022 安全上下文 • 前提:进程有属主和属组;文件有属主和属组 (1) 任何一个可执行程序文件能不能启动为进程, 取决发起者对程序文件是 否拥有执行权限 (2) 启动为进程之后,其进程的属主为发起者, 进程的属组为发起者所属的 组 (3) 进程访问文件时的权限,取决于进程的发起者 (a) 进程的发起者,同文件的属主:则应用文件属主权限 (b) 进程的发起者,属于文件属组;则应用文件属组权限 (c) 应用文件其他权限 特殊权限(临时拥有) owner:可执行文件上 SUID,启动为进程之后,其进程的属主为原程序文件 的属主,SUID只对二进制可执行程序有效 chmod u+|-s file group:启动为进程之后,其进程的属组为原程序文件的属组chmod g+|-s file 默认情况下,用户创建文件时,其属组为此用户所属的 主 组 一旦某目录被设定了 SGID ,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组 chmod s g+|-s DIR... 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权 限或拥有权.在目录设置 Sticky 位,只有文件的所有者或 root 可以删除该文件chmod o+|-t dir 本来有x权限,加上s或t后,变为sst;没有加上特殊权限后则是SST ACL : Access Control List 访问控制列表,实现灵活的权限管理。除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。CentOS7 默认创建的 xfs 和 ext4 文件系统具有 ACL 功能,CentOS7 之前版本,默认手工创建的 ext4 文件系统无 ACL 功能, 需手动增加。ACL 生效 顺序:所有者,自定义用户,自定义组,其他。(setfacl,getfacl)

command: tee ,tr ,useradd ,userdel ,usermod ,chage ,groupadd ,groupdel ,groupmod ,getent ,passwd ,gpasswd ,id ,su ,groupmems ,newgrp ,groups ,chown ,chgrp ,chmod ,umask ,chattr ,lsattr,getfacl ,setfacl