第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 ---

浙公网安备 33010602011771号