文件和用户管理
文件管理
- Linux使用单根的方式管理文件
- 创建文件
- touch 文件名
- 创建路径
- mkdir 路径名
- mkdir -p 路径 // 递归创建路径
- 复制
- cp 源文件路径 目标文件夹
- cp -r 源路径 目标路径 复制文件夹
- 移动
- mv 源路径 目标路径
- 删除
- rm -rf 文件
- 查看文件内容
- cat 文件名 // 全部查看
- more 文件名 // 翻页查看
- head -行数 // 头部查看
- tail -行数 // 尾部查看
- grep ‘关键字’ // 文件名过滤关键字
- 编辑文件内容
- vi
- 命令模式
- 光标定位
- hjkl // 上下左右移动光标
- 0 // 行首
- $ // 行尾
- gg // 页首
- G // 页尾
- 数字G // 进入某一行
- /字符串 // 查找字符 n键选下一个
- 文本编辑
- yy // 复制
- dd // 删除
- p // 粘贴
- u // 撤销
- 光标定位
- i 、o 或者 a //输入模式,A行尾插o下一行插入等等
- v // 可视化模式(基本不用,类似于图形化鼠标选中)
- : // 扩展命令模式(末行模式)
- w q
- 替换
- :范围 s/原内容/新内容/全局 // :1,5 s/123/456/g
- set nu // 设置行号
- set nonu // 取消设置行号
- set list // 显示控制字符
- 命令模式
- vim
- vi
目录
- home下有用户文件夹
- etc配置文件,调整系统的功能设置
- boot系统启动有关文件,里面有系统内核
- bin普通用户使用的命令
- sbin管理员使用的命令
- dev设备文件
- root root用户的HOME
- tmp淋湿文件,进程产生的临时文件
- var存放的事一些变化文件,比如数据库、日志、邮件
- media移动设备默认的挂载点
- mnt手工挂载设备的挂载点
- proc虚拟的文件系统,反应出来的是内核,进程信息或实时状态,硬件的状态
- usr系统文件,相当于C:\Windows
- /usr/local软件安装的目录,相当于C:\Program
- boot存放的系统启动相关的文件,例如kemel,grub引导装载程序
- lib库文件Glibc
- lib64库文件Glibc
- lost+found fsck修复时,存储没有连接的文件或目录
文件类型
- - 普通文件(文本、二进制、图片等)
- d 目录文件
- b 块设备
- c 设备文件(打印机等终端文件)
- l 链接文件
- s 套接字文件
- 管道文件
用户
-
用户基本信息文件:/etc/passwd
- root:x:0:0:root:/root:/bin/bash
- root // 用户名,登录系统的名字
- x // 密码占位符,具体内容不在这里
- 0:UID // 用户的身份证号
- 系统约定:RHEL7~9
- uid: 0 // 特权用户
- uid: 1~999 // 系统用户
- uid: 1000+ // 普通用户
- 系统约定:RHEL7~9
- 0:GID // 组号
- root // 描述
- /root // HOME目录,登录系统时所在目录
- /bin/bash // 登录shell,命令解释器
-
用户密码信息文件:/etc/shadow(9列)
- root // 用户名
- 口令 // 存放加密后的用户口令字,如果为空,则对应用户没有口令(星号表示账号被锁定,双叹号表示这个密码已经过期)
- 加密算法:
- $1$ // MD5
- $2$ // Blowfish
- $5$ // SHA-256
- $6$ // SHA-512
- 最后一次修改时间 // 表示从某个时刻起,到用户最后一次修改口令时的天数,时间起点对不同的系统可能不一样
- 最小时间间隔 // 两次修改口令之间所需的天数
- 最大时间间隔 // 口令保持有效的最大天数
- 警告时间 // 字段表示从系统开始警告用户到用户密码失效的时间
- 不活动时间 // 表示用户没有登录活动但账号仍能保持有效的时间,到期后多少天就不能用了
- 失效时间 // 超过这个时间以后,这个账号就不是一个合法的账号,也就不能用来登录了
- 保留
-
组信息 cat /etc/group
- root:x:0:
- 组名
- 组密码
- 组ID
- 组成员
-
用户相关操作
-
创建用户
- 未指定选项
- useradd 用户名
- 指定选项
- useradd 用户名 参数
- useradd 用户名 参数
- 未指定选项
-
删除用户 userdel -r 用户名 // 彻底删除用户
-
设置用户密码 passwd 用户名
-
修改用户信息 usermod 用户名
-
组管理 usermod -aG 组名 用户名
-
-
用户组管理
- 查看组信息 cat /etc/group
-
创建组
- groupadd 组名
- groupadd 组名
-
删除组
- groupdel 组名
-
提权
- su
- sudo // 使普通用户,执行某些特权命令
- 进入文件 /etc/sudoers 添加,例
用户名 All=(ALL) NOPASSWD:/usr/sbin/reboot,/usr/sbin/useradd
- 进入文件 /etc/sudoers 添加,例
用户组分为私有组和附加组:
- 私有组:用户创建时会创建一个同名的组
- 附加组:当用户加入别的用户组之后,这个组称为该用户的附加组
文件权限管理
-
UGO权限 // 设置基本权限,只能一个用户,一个组和其他人
-
权限对象
- 属主:u
- 属组:g
- 其他人:o
- 所有人:a(u+g+o)
-
权限类型
- 读:r=4
- 写:w=2
- 执行:x=1
-
文件的所有者、所属组
- ls -l 文件名
- ls -l 文件名
-
设置权限
- chmod // -R参数表示针对目录中的所有文件
- chmod 对象(u、g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录 // 使用符号修改
- chmod 权限 文件名 // 使用数字修改
- chown // 更改属主
- chown 用户名.属组 文件
- chgrp // 更改属组,只改属组
- chgrp 组名 文件
- chmod // -R参数表示针对目录中的所有文件
-
-
ACL权限 // 文件权限管理,设置不同用户,不同的基本权限,对象数量不同
- setfacl -m 用户或组:用户名:权限 文件对象 // setacl -m u:user1:rw /home/test
- getfacl 文件或路径
-
特殊权限
- 特殊位
- suid // 针对文件/程序时,具备临时获得属主的权限,passwd命令就有这个权限
- chmod u+s 文件名 // 给cat suid权限位,普通用户就可以cat root用户的文件
- 安全组标识符sgid
- 粘连位stick
- suid // 针对文件/程序时,具备临时获得属主的权限,passwd命令就有这个权限
- 文件属性chattr // 锁定某个文件,拒绝修改,可以使用lsattr命令查看权限
- 进程掩码umask // 新建文件、目录的默认权限会受到umask的权限,umask表示要减掉的权限
- 默认为0022,路径权限创建后777-022,文件权限额外再多减111
- 特殊位