第3课 - Linux目录结构 与 用户身份

Linux系统中一切都是文件 Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的文件存储结构如图所示。 cd muquan/linux 硬链接 - 不允许对“目录”,只能对文件,队文件完整复制(每一个 都是独立的个体 -- ls -i) inode -- 目录 -- 页数 ln 源 目的软链接 - 对文件&目录 - 链接=快捷方式 (源目录删除 快捷方式能用? 不会具备多个inode ) ln -s 源 目的目录名称应放置文件的内容/boot开机所需文件—内核、开机菜单以及所需配置文件等(vmlinuz-内核文件,initrd.msg初始化文件 -- linux=windows,PXE)/dev以文件形式存放任何设备与接口(Device设备 - 光盘cdrom(别称 - 软链接 - 符号链接))/etc配置文件(默认使用yum安装的工具 配置文件 /etc/同名的目录 yum install -y httpd /etc/httpd)/home用户主目录(普通用户 - 必须由root创建 默认创建用户 创建同名的目录)/bin存放单用户模式下还可以操作的命令(binary二进制 )/lib开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数(library - 库 - 开发 - .h .c头文件 提供功能/sbin开机过程中需要的命令(super binary --> root可以运行) (/usr/sbin)/media用于挂载设备文件的目录 /mnt ---> 用于挂载 U盘 光盘/opt放置第三方的软件 (/ -- 统一管理 下载的所有源码包(三方包)放在哪里 option)/root系统管理员的家目录/srv一些网络服务的数据文件目录 (一般不操作 ifcfg-eXX /etc/resolve.conf)/tmp任何人均可使用的“共享”临时目录 (吧一些文件进行局域网内的共享 - tmp - 特殊权限 - SBIT 粘滞位 只有文件的额拥有者可以删除自己的文件)/proc虚拟文件系统,例如系统内核、进程、外部设备及网络状态等(process - memery | CPU信息)/proc/cpuinfo /proc/meminfo/usr/local用户自行安装的软件ll (源码 --prefix=/usr/local/filename)/usr/sbinLinux系统开机时不会使用到的软件/命令/脚本/usr/share帮助与说明文件,也可放置共享文件(Linux - 字体)/var主要存放经常变化的文件,如日志(日志 vary /var/log 系统日志messages 服务日志/var/log/httpd/access_log | error_log) -- ELK/lost+found当文件系统发生错误时,将一些丢失的文件片段存放在这里(CentOS6 当系统崩溃 - 自动抓取系统碎片存储)绝对路径(absolute path):首先坐飞机来到中国,到了北京出首都机场坐机场快轨到三元桥,然后换乘10号线到潘家园站,出站后坐34路公交车到农光里,下车后路口左转。(必须从/开始 到目标所在)相对路径(relative path):前面路口左转。(从当前位置 到目标所在) -- 用户与用户组概念&能力 多用户系统 -- 同时控制 -- 安全系数具备相同特性的用户 - 一组 三个 实施 三个 检测 四个 运维 - 不同的操作权限 = 用户组 = 属组 文件 - 服务 - 归责 - 拥有者(用户 = 属主) Linux是一个多用户的操作系统,引入用户,可以更加方便管理Linux服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份器运行,用户可以限制某些进程对特定资源的权限控制。 1.1 Linux用户及组 Linux操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户。 Linux系统用户是根据用户ID来识别的,默认ID长度为32位,从默认ID编号从0开始,但是为了和老式系统兼容,用户ID限制在60000以下,Linux用户分总共分为三种,分别如下: root用户 (ID 0) 超级用户 在Linux发行版本下 默认是root 真的超级用户 是UID =GID =0 系统用户 (ID 1-499 - 6以前) (ID 1-999 -7版本) :用于运行服务,但是此用户无家目录&不可登录(http 默认 daemon) 普通用户 (ID 500以上 -6以前)(ID 1000以上 -7版本)必须由root常见 权限由root分配 默认从1000 - 65535 Linux系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。Linux操作系统用户的特点如下: 每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名; 每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组; 每个组拥有一个GroupID; 每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限; 每个可登陆用户拥有一个指定的Shell环境(/bin/bash )。 1.2 Linux用户管理 Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下: /etc/passwd 保存用户信息 /etc/shadow(影子) 保存用户密码(以加密形式保存) /etc/group 保存组信息 /etc/gshadow /etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制 /etc/default/useradd 显示或更改默认的useradd配置文件(useradd 默认创建用户 自动建立家目录 添加附属组 --很多参数) 如需创建新用户,可以使用命令useradd,执行命令useradd thinkmo即可创建thinkmo用户,同时会创建一个同名的组thinkmo,默认该用户属于thinkmo主组。 Useradd thinkmo命令默认创建用户thinkmo,会根据如下步骤进行操作: 在/etc/passwd文件中添加用户信息; 如使用passwd命令创建密码,密码会被加密保存在/etc/shdaow中; 为thinkmo创建家目录:/home/thinkmo; 将/etc/skel中的.bash开头的文件复制至/home/thinkmo家目录; 创建与用户名相同的thinkmo组,thinkmo用户默认属于thinkmo同名组; thinkmo组信息保存在/etc/group配置文件中。 在使用useradd命令创建用户时,可以支持如下参数: 用法:useradd [选项] 登录 useradd -D useradd -D [选项] 选项: -b, --base-dir BASE_DIR 指定新账户的家目录; -c, --comment COMMENT 新账户的 GECOS 字段; -d, --home-dir HOME_DIR 新账户的主目录; -D, --defaults 显示或更改默认的 useradd 配置; -e, --expiredate EXPIRE_DATE 新账户的过期日期; -f, --inactive INACTIVE 新账户的密码不活动期; -g, --gid GROUP 新账户主组的名称或ID; -G, --groups GROUPS 新账户的附加组列表; -h, --help 显示此帮助信息并推出; -k, --skel SKEL_DIR 使用此目录作为骨架目录; -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值; -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库; -m, --create-home 创建用户的主目录; -M, --no-create-home 不创建用户的主目录; -N, --no-user-group 不创建同名的组; -o, --non-unique 允许使用重复的 UID 创建用户; -p, --password PASSWORD 加密后的新账户密码; -r, --system 创建一个系统账户; -R, --root CHROOT_DIR chroot 到的目录; -s, --shell SHELL 新账户的登录 shell; -u, --uid UID 新账户的用户 ID; -U, --user-group 创建与用户同名的组; -Z, --selinux-user SEUSER 为SELinux 用户映射使用指定 SEUSER。 Useradd案例演示: (1) 新建thinkmo用户,并加入到thinkmo1,thinkmo2附属组; useradd -G thinkmo1,thinkmo2 thinkmoedu (2) 新建thinkmo3用户,并指定新的家目录,同时指定其登陆的SHELL; useradd thinkmo3 -d /tmp/ -s /bin/bash1.3 Linux组管理 所有的Linux或者Windows系统都有组的概念,通过组可以更加方便的管理用户,组的概念应用于各行行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Linux系统,同样可以创建用户,并用组的概念对其管理。 Linux组有如下特点: 每个组有一个组ID; 组信息保存在/etc/group中; 每个用户至少拥有一个主组,同时还可以拥有31个附属组。 通过命令groupadd、groupdel、groupmod来对组进行管理,详细参数使用如下: groupadd用法 -f, --force 如果组已经存在则成功退出; 并且如果 GID 已经存在则取消 –g; -g, --gid GID 为新组使用 GID; -h, --help 显示此帮助信息并推出; -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值; -o, --non-unique 允许创建有重复 GID 的组; -p, --password PASSWORD 为新组使用此加密过的密码; -r, --system 创建一个系统账户; groupmod用法 -g, --gid GID 将组 ID 改为 GID; -h, --help 显示此帮助信息并推出; -n, --new-name NEW_GROUP 改名为 NEW_GROUP; -o, --non-unique 允许使用重复的 GID; -p, --password PASSWORD 将密码更改为(加密过的) PASSWORD; groupdel用法 groupdel thinkmoedu 删除thinkmoedu组; Groupadd案例演示: (1) groupadd创建linux组 groupadd linux (2) groupadd创建linux组,并指定GID为1000; groupadd -g 1000 linux (3) groupadd创建一个system组,名为linux组 groupadd -r linux Groupmod案例演示: (4) groupmod修改组名称,将linux组名,改成linux1; groupmod -n linux1 linux (5) groupmod修改组GID号,将原linux1组gid改成gid 1000; groupmod –g 1000 linux11.4 Linux用户及组案例 Useradd主要用于新建用户,而用户新建完毕,可以使用usermod来修改用户及组的属性,如下为usermod详细参数: 用法:usermod [选项] 登录 选项: -c, --comment 注释 GECOS 字段的新值; -d, --home HOME_DIR 用户的新主目录; -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE; -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态; -g, --gid GROUP 强制使用 GROUP 为新主组; -G, --groups GROUPS 新的附加组列表 GROUPS; id username --- 查看用户信息 -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户; -h, --help 显示此帮助信息并推出; -l, --login LOGIN 新的登录名称; -L, --lock 锁定用户帐号; -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用); -o, --non-unique 允许使用重复的(非唯一的) UID; -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码; -R, --root CHROOT_DIR chroot 到的目录; -s, --shell SHELL 该用户帐号的新登录shell环境; -u, --uid UID 用户帐号的新UID; -U, --unlock 解锁用户帐号; -Z, --selinux-user SEUSER 用户账户的新SELinux 用户映射。 passwd命令 root可以为自己修改 为普通用户添加|修改密码 普通用户只能对自己进行密码的修改(普通用户必须按照要求) 设置 -- 使用周期 -- 所有的用户 只有7天有效 7天后自动删除 Usermod案例演示: (1) 将thinkmo用户属组修改为thinkmo1,thinkmo2附属组; usermod -G thinkmo1,thinkmo2 thinkmo (2) 将thinkmo用户加入到thinkmo3,thinkmo4附属组,-a为添加新组,原组保留; usermod –a -G thinkmo3,thinkmo4 thinkmo (3) 修改thinkmo用户,并指定新的家目录,同时指定其登陆的SHELL; usermod -d /tmp/ -s /bin/sh thinkmo (4) 将thinkmo用户名修改为thinkmo1; usermod -l thinkmo1 thinkmo (5) 锁定thinkmo1用户及解锁thinkmo1用户方法; usermod –L thinkmo1;usermod -U thinkmo1 Userdel案例演示: 使用userdel可以删除指定用户及其用户的邮箱目录或者Selinux映射环境: userdel thinkmo1 保留用户的家目录; userdel -r thinkmo1 删除用户及用户家目录,用户login系统无法删除; userdel -rf thinkmo1 强制删除用户及该用户家目录,不论是否login系统。 d rwx------ 2 thinkmo thinkmo 4096 Nov 2 2019 thinkmo 文件类型 用户权限 硬链接个数 属主 属组 大小 创建时间 目录名称 权限+用户管理 = 最小化原则 = 授权下游用户(运维组长) 最大 - 出问题 从下到上 所有人同时担责 校区 两个校区 合用一个系统 - mysql - 同步 必须有锁库的瞬间(同步过程中锁定) - 别人登不上去 15分钟 muquan -- 777 - root组 -- 只给你要用的权限 -- sudo | root用户 == root时禁制远程 创建任何新目录 文件 -- 默认目录 文件 权限 755 644 -- 太大了 属主 -- rwx 属组r other ---
posted @ 2020-11-22 13:08  奮鬦  阅读(119)  评论(0)    收藏  举报