Linux的文件类型 -,f:普通文件 d:目录文件,路径映射 l:链接文件(符号链接)软连接 设备文件: c:字符设备,一次存取一个字符 b:块设备 p:管道文件 fi,fo s:套接字文件,socket

    文件系统:
    格式化:创建文件系统

Linux文件时间戳 访问时间: 修改时间:写数据 改变时间:元数据改变的时间 ls:使用默认选择当前目录 -a:显示所有文件,包含隐藏文件 -A:不现实.和..常见的通用路径 --color:显示颜色 -l:长格式显示 文件类型 权限 硬链接数 属主 属组 最近一次的修改时间 文件名->原始文件 -rw-r--r--. 1 root root 1612 May 16 04:30 /etc/passwd -d:显示目录自身的属性,通常与-l同时使用 -r:实现逆序显示 -R:递归显示 -i:inode号,index node -h:文件大小以人类易读格式显示 tree:以树状显示目录;需自行安装 名称解析:name resolving bash shell的特性之四:命令别名 clear:清屏 alias:显示当前shell中定义的所有别名; 任何随进程而生的属性,会在进程结束,属性消失 ~]# alias ALIAS='COMMAND [options] [arguments] ' unalias ALIAS --取消定义的别名 在命令前加\使用命令本身,而不是别名 只能查看纯文本文件的命令 file FILE..:查看文件内容的格式 cat:将文本连接起来显示在标准输出上 -E, --show-ends 显示行尾结束符$ -e:等于-vE -v:显示非打印符 -n:显示每行按顺序编号 -s:将多个连续的空白行合并显示一个空白行 tac:逆序显示文件 分屏显示 more:只支持向后翻(到文件尾部后退出) less:支持前后翻 head: -n #:显示前#行 tail -n # 显示后#行 -f:在文件数据增长时,实时显示追加数据 output appended data as the file grows; echo命令的用法: -e:启用转义符 enable interpretation of backslash escapes • \b:删除前面的字符 • \t:制表符 • \v:垂直制表符 • \n:换行符 • \0NNN():八进制值 byte with octal value NNN o 开始 \033[##;##;#mString  第一个#:3前景色  分号后第一个#:4背景色  第二个#:颜色(1-7)  分号隔开加第二组控制颜色  PS1="\033[34;42m[\u@\h \W]\033[0m\$ " o 结束 \033[0m -n:关闭自动换行功能 bash特性五:globbing,文件名通配 通配符: *:匹配任意长度的任意字符 ?:匹配任意单个字符 [ ]:匹配指定字符范围内的任意单个字符,不区分大小写 [[:upper:]]:大写字母 [[:lower:]]:小写字母 [[:alpha:]]:所有字母 [a-Z] [[:digit:]]:所有数字 [[:alnum:]]:字母+数字 [[:blank:]]:水平制表符; [[:space:]]:水平和垂直空白符;空格,tab,回车 [[:punct:]]:标点符号;特殊字符 [^STRING]:匹配指定字符范围外的任意单个字符 命令总结:cat, tac, ls, more,less, tail, head, echo, tree

文件操作:touch,cp,mv,rm cp copy cp SRC DEST 假如SRC是一个文件: 如果目标是一个文件且目标存在:覆盖 如果目标文件不存在:创建新文件 如果目标存在,且是个目录:复制源至目标目录中,并保持原名 cp SRC... DEST 假如SRC有多个文件: 如果目标存在,且是一个文件:复制无法进行 如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名 如果目标不存在:复制无法进行 如果SRC只有一个且是目录:使用 -r 递归复制源目录至目标目录中 如果目标是一个文件且目标存在:失败 如果目标文件不存在:创建新目录 如果目标存在,且是个目录:复制源目录到目标目录中,并保持原名 cp 命令的常用选项: -r:递归 -i:提示,交互 -f:强制覆盖 -a: same as -dR --preserve=all 保留所有的文件信息 -d:当源为连接文件时,复制链接文件本身,而非指向的源文件 -p:保持原有属性 -u:只覆盖源比目标文件新的文件 --backup-numbered:覆盖前,先将旧文件改名为 文件名.~数字~ mv:移动,剪切,与cp相近 可以直接移动目录,不需要-r选项 rm:移除;删除非空目录 rm -rf touch:用来修改时间戳,创建空文件 -c:不创建空文件,只修改时间戳 -t:指定时间戳 -a:仅修改访问时间 -m:仅修改修改时间 先加-m,在加-t 后跟时间 access time atime modify time mtime change time ctime stat:显示文件源数据信息,详细信息 ~]# stat FILE Linux编辑器 行编辑器:sed 全屏编辑器:nano,vi,vim

用户和权限管理: • 用户是什么? • 没用用户,可否 yes • 用户:资源获取标识符,资源分配,安全权限模型的核心要素之一 • 密码:来实现用户认证的 • Linux是多用户的操作系统 • 信息库:用户 密码 • 名称解析:User IDentifier UID • 容器:能够容纳很多用户的容器,可以分配权限:组(group),角色(role) • 组名:Group IDentifier GID • 解析:在数据库中按搜索码查找到对应的条目,并找到与之对应额外其他数据的过程
数据库有以下内容 • 文本文件: • SQL数据库 • ldap数据库

Linux用户类别 管理员:0 普通用户:1-65535
系统用户:1-499(centos6),1-999(centos7) 对守护进程获取资源进行权限分配;
登陆用户:500+(centos6),1000+(centos7) 交互式登录;

Linux用户组 管理员组:root,0 普通组: 系统组:1-499(centos6),1-999(centos7) 普通组:500+(centos6),1000+(centos7)

Linux安全上下文: 运行中的程序:进程(process) 以进程发起者的身份运行; root:cat tom:cat 进程所能够访问的所有资源的权限,取决于进程的发起者的身份
运行中的进程有其属主和属组,取决于进程的属组和属主

Linux组的类别;

  1. 基本组:显示在/etc/passwd中GID字段中,为用户的基本组,主组 组名同用户名,且仅包含一个用户:私有组
  2. 额外组:附加组;/etc/group

命令总结 useradd,usedel,groupadd,passwd,gpasswd,chsh,chfn,usermod,getent,groupmod,groupdel,chage,id,who,whoami,su 文件总结 /etc/passwd:用户信息 /etc/group:组名:密码占位符:GID:用户列表(附加组) /etc/skel:默认复制文件地址 /etc/default/useradd:配置文件,按默认值创建用户

创建用户 useradd<-->adduser
useradd UserName -u UID:指定UID -g GID:指定GID,即用户的基本组,但GID要事先存在 -G GID:指定用户的额外组,但GID要事先存在 -d DIR: 指定家目录位置;若创建系统用户则与-m配合使用,要求系统用户在指定的目录下不存在以其同名的目录;若同名则不复制/etc/skel/中的内容至指定家目录; -c NOTE:备注 -s /bin/SHELL:指定默认shell,应该指定使用/etc/shells文件中出现的shell -m:创建用户时,强制给用户创建家目录 -M:创建用户时,但不创建家目录 -r:创建系统用户 Centos 6:ID<500 Centos 7:ID<1000
特点:id 1-499 不会为用户创建家目录,默认shell为/sbin/nologin(自行设置-s /sbin/nologin) 默认值设定:/etc/default/useradd文件中 -D -options arguments [root@www ~]# useradd -D -e 999 修改默认过期时间 [root@www ~]# useradd -D 查看默认值 GROUP=100 HOME=/home INACTIVE=-1 EXPIRE=999 SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes 添加用户练习

userdel UserName        --删除用户,默认会保留家目录
    -r:同时删除家目录
 
groupadd GroupName
    -g GID:创建组,并为其指定GID
    -r:创建系统组
            Centos 6:ID<500
            Centos 7:ID<1000     

Linux用户和组相关的配置文件 /etc/passwd:用户及其属性信息(名称、UID、基本组ID等) name:password:UID:GID:GECOS:directory:shell 用户名:密码占位符:UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell /etc/group:组的属性信息 group_name:passwd:GID:user_list 组名:组密码占位符:GID:以当前组为附加组的用户列表(分隔符为逗号) 组密码在用户完成基本组切换时使用 /etc/shadow: 用户名:加密了的密码:最近一次更改密码的时间(距离1970-1-1的时间):密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期(登陆就要修改密码):账号的过期日期:保留字段

/etc/shells:当前系统的安全shell列表

加密机制:
    加密:明文--> 密文
    解密:密文--> 明文   
    对称加密:如果加密、解密使用相同的密码称之为对称加密    DES,3DES,AES
    非对称加密:DSA,RSA
    单向加密:提取数据指纹
        MD5:message digest,128bits;信息摘要 128bit定长输出16个字符
        SHA1:160bits;secure hash algorithm 安全的哈希算法 
        SHA224:224bits
        SHA256:256bits
        SHA384:384bits
        SHA512:512bits
        CRC32:循环冗余校验码
        雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变;
        定长输出,不可逆
    密码数据库:/etc/shadow
~]# useradd tom
~]# useradd jerry
~]# echo "redhat" | passwd --stdin tom    --生产密码时加入杂质,防止密码一样
~]# echo "redhat" | passwd --stdin jerry

$6$E5f7SSVVLcp8oq.R$DD0oqUOWqRSlogbOd12VtHVlAgrS8EEx4UmoluV3OP5u4s3pT0xEKRgPIxNL9m8BPhzbQ6dPxAVqAo7YJ0txO $加密算法$杂质$乱码 $:分隔符,6:sha512,1:MD5

密码的复杂性安全性策略
  1. 使用数字、大写字母、小写字母和特殊字符中的至少三种

  2. 足够复杂、够长、交叉

  3. 尽量避免使用易猜测的密码;使用随机密码;

  4. 定期更换;不要使用最近曾经使用过的密码;

    组:用户容器,角色 /etc/group 密码:/etc/gshadow groupname:encrypted password:administraters:menbers 设定用户密码 普通用户:passwd 管理员 • 改自己密码:passwd • 改其他用户密码:passwd UserName -l:锁用户 用户密码前加惊叹号!! -u:解锁 -e:强制用户下次登录修改密码 • echo "hello" | passwd --stdin UserName 给UserName设定一个密码

    gpasswd GroupName --设定组密码 用户属性修改 chsh:修改默认的shell chfn:修改用户注释 usermod:跟useradd命令使用方法类似 -u UID -g GID -G GID:默认会覆盖原有的附加组,如果要是添加,可以同时使用-a选项 -c COMMENT
    -d new home 默认不会迁移用户的家目录,如果要迁移,同时使用-m选项 -m, --move-home -s SHELL -l New_Login_Name 修改用户登录名称 -e 过期期限 -f 非活动期限 -L 锁定用户账号 -U 解锁

    getent passwd UserName 查看passwd中指定用户的信息

    groupmod:修改组属性定义 -g GID -n New Group 修改用户的属组 groupdel gpasswd root都能用;普通用户组管理员能用 -a, --add USER add USER to GROUP -d, --delete USER remove USER from GROUP -Q, --root CHROOT_DIR directory to chroot into -r, --delete-password remove the GROUP's password -R, --restrict restrict access to GROUP to its members -M, --members USER,... set the list of members of GROUP -A, --administrators ADMIN,... set the list of administrators for GROUP

    chage:修改用户的日期属性 -E:距离1970-1-1号的时间天数,过了这个时间,账号不可访问 -I:设置活动天数 -m:修改密码最小使用时间 -M:修改密码最长使用时间 -W:警告时间 查看用户的相关信息: id
    -n 显示名称 -u 显示UID -g 显示基本组ID -G 显示所有组ID who 显示当前登录用户 whoami 显示当前终端登录的用户 su Swith User 切换用户或以其他用户身份执行命令 su [options...] [-] [user [args...]] 切换用户的方式: su UserName:非登录式切换,即不会读取目标用户的配置文件; su - UserName:登录式切换,会读取目标用户的配置文件;完全切换; root su至其他用户无需密码,非root用户切换时需要密码;
    换个身份执行命令: -c 不切换用户,直接执行命令 su [-] UserName -c 'COMMAD' -l 登录式切换 "su -l UserName"相当于"su - UserName"