0


Linux系统用户管理和安全设置详解及demo

系统的启动流程
  • centos6- 加电自检:检查服务器硬件是否正常- MBR引导:读取磁盘的MBR存储记录信息,引导系统启动- grub菜单:选择启动的内核/进行单用户模式重置密码- 加载系统内核信息:可以更好的使用内核控制硬件- 系统的第一个进程运行起来:init - 控制后续各种服务的启动:启动顺序(串行)- 加载系统运行级别文件/etc/inittab- 初始化脚本运行:初始化系统主机名称和网卡信息- 运行系统特殊的脚本:开机自启的服务- 运行mingetty进程:显示开机登陆信息界面
  • centos7- 加电自检:检查服务器硬件是否正常- MBR引导:读取磁盘的MBR存储记录信息,引导系统启动- grub菜单:选择启动的内核/进行单用户模式重置密码- 加载系统内核信息:可以更好的使用内核控制硬件- 系统的第一个进程运行起来:systemd- 服务启动的时候同时一起启动(并行)- 读取系统启动文件:/etc/systemd/system/default.target- 读取系统初始化文件/usr/lib/systemd/system/sysinit.target- 使服务可以开机自启动,加载此目录中的信息,实现服务开机自启/etc/systemd/system- 运行mingetty进程:显示开机登录信息界面
用户概念介绍
  • 管理员用户 root 0 权利至高无上
  • 虚拟用户 nobody 1-999 管理进程 没家目录 不能登录系统
  • 普通用户 oldboy 1000+ 权力有限
文件权限
  • r:read,可以读文件的内容 4
  • w:write,可以编辑文件的内容 2
  • e:execute,执行这个文件(脚本文件)1
修改文件的属主
chown 新属主用户名 文件
修改文件权限
chmod 000 文件/目录

#其他用户添加x权限
chmod o+x 文件/目录
文件权限配置结论:默认权限为644,保证属主用户对文件可以编辑,保证其他用户可以读取文件信息
  • root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
  • 对于文件来说,写的权限和执行的权限,都需要有读权限配置
  • 如果想对文件进行操作,必须对文件赋予读的权限
目录权限
  • r:读目录中的文件属性信息
  • w:可以在目录中添加或删除文件数据信息
  • e:是否可以进入到目录中
目录权限配置结论:默认权限755,保证属主用户对目录进行编辑,保证其他用户可以读取目录中的信息,可以进入到目录中
  • root用户对目录有绝对的权限,什么权限都没有设置root也有权限
  • 如果没有设权限属主(root外)和其他用户都没有权限
  • 当目录只赋予读的权限,属主(root外)和其他用户查看目录里面文件的时候会看不到文件属性
  • 只有写的权限的时候什么权限都没有
  • 只有执行权限的时候只可以切换目录,其他啥也没有
  • 对于目录来说,写的权限和读的权限都需要有执行权限配合
  • 想对目录进行操作必须赋予执行的权限
为什么看不到文件的属性信息
  • 它的上一级目录没有执行的权限
  • 无法进入目录,目录中的文件inode信息无法获取,会显示文件属性信息为???
一个文件能不能读不仅跟文件本身权限有关系,跟上面的目录权限也有关系。文件读的原理
文件读的原理
  • 先从根开始。看inode和block
  • 然后一级一级开始着
  • 文件的名称信息存在上一级目录的block中,获取block要获取inode
  • 有读就可以看indoe,有执行可以进入目录看目录里面文件的文件属性
文件目录数据设置权限的方法:
  • 根据用户信息进行设定(属主、属组、其他用户)- 属主-user u- 属组-group g- 其他用户-other ochmod u+r/w/x 1.txtchmod g-r/w/x 1.txt chmod u=rw 1.txt
  • 根据用户批量设置- 数值设定chmod 755 1.txt- 字符设定#全部角色为x的权限chmod a=x 1.txt
为什么创建的文件和目录权限一致?

目录:755

文件:644

umask
0022

临时修改umask数值

umask 033

默认文件权限:666-022=644

  • umask数值是奇数 - 666-033=633+11=644
  • umask数值是偶数 - 666-022=644

默认目录权限:777-022=755

  • umask数值是奇数 - 777-033=744
  • umask数值是偶数 - 777-022=755
如何永久修改umask值
vim /etc/profile

里面的umask 022 修改成别的

source /etc/profile
系统中的特殊目录/etc/skel(样板房)
ll -a /etc/skel
  • .bash_logout:当系统退出登陆状态要执行的命令
  • .bash_profile:别名和环境变量(只针对某个用户)
  • .bashrc:别名和环境变量(针对所有用户)

这个目录里面有什么,新创建的用户家目录里就有什么

作用:
  • 目录中可以存储运维操作规范说明文件
  • 调整命令提示符信息,如果没有那些默认文件命令提示符展示会有问题,但不影响操作。如果被别人删了要从skel目录中把东西在复制一份过来
用户家目录中的特殊文件
  • .bash_history:历史命令文件- 曾经输入的历史命令保存位置 - 保存在内存中 history- 保存在磁盘文件中:.bash_history
  • .viminfo:vim样式设置- 自动加载文件样式信息#!/bin/bash#编写人:#编写时间:#脚本作用:
系统中和用户相关的文件
  • /etc/passwd:记录系统用户信息文件root :x :0 :0 :root :/root :/bin/bashbin :x :1 :1 :bin :/bin :/sbin/nologin01 02 03 04 05 06 071:用户名2:用户密码信息(保存在别的地方)3:用户的uid4:用户的gid5:用户的注释信息 mysql(manager database user) www(manager web server)6:用户家目录7:用户登陆系统方式 cat /etc/shells /bin/bash ---通用的解释器 /bin/sh /usr/bin/sh ---等价于bin/sh /usr/bin/bash /sbin/nologin ---无法登陆系统 /usr/sbin/nologin
  • /etc/shadow*:系统用户密码文件,如果加密的密码改成两个!,就取消了密码,可以重新设置
  • /etc/group*:组用户记录文件
  • /etc/gshadow*:组用户密码信息
系统用户相关命令
  • 创建用户命令- 创建普通用户useradd old && passwd --stdin old 123456- 创建虚拟用户useradd old -M -s /sbin/nologin-M:不创建家目录-s:指定使用的shell方式-u:指定用户uid数值信息-g:指定用户主属组gid,可以是数值也可以是名称-G:指定用户附属组信息-c:注释useradd mysql -s /sbin/nologin -M -c "manager database"grep mysql /etc/passwd
  • 修改用户信息usermod -s 修改用户的登录方式-g 修改用户的主要的组信息-G 修改用户的附属组信息-u 修改用户uid-c 修改用户注释信息usermod Alex -s /sbin/nologin
  • 删除用户信息userdel Alex如果组有其他人存在,组不会删除、但是用户删除了、但是用户家目录还在组还在。后面创建一个相同名字的用户,在创建的时候就要加-g如果家目录没删除,会报警信息,不会再将skel目录内容重新复制userdel -r Alex彻底删除用户以及用户的家目录,但是组如果有其他人使用就仍存在
  • 创建用户组groupadd 组名groupmod 修改用户组groupdel 删除用户组
修改密码
#修改当前用户密码
passwd

#修改指定用户的密码
passwd 用户名

#免交互设置密码
echo 123456 | passwd --stdin oldgirl01
切换用户
su - 用户名
检查创建的用户是否存在
id 用户名

#检查多个用户
for num in {01..20};do id oldgirl$num;done
确认用户身份
whoami
创建用户同时设置密码信息
useradd olddog;echo 123456 | pwsswd --stdin olddog
用户属主属组设置
chown 属主.属组 文件

递归设置属主属组,目录里的文件也都改了
chown -R 属主.属组 目录
用户信息查看
  • id:显示用户命令信息
  • w:正在登录系统的用户信息[root@pert ~]# wUSER:什么用户登录到了系统中TTY:登陆的方式 pts/x 远程登录系统 x可以是1 2 3。。。 tty1 本地登录 #通知其他用户屏幕上显示你要提醒的信息 echo "请不要修改hosts文件配置" > /dev/pts/1 FROM:从哪连接的服务器LOGIN@:登陆时间IDLE:空闲时间PCPU、JCPU:用户操作系统消耗的cpu资源时间WHAT:用户在干什么/bash或/sh或。。。
  • last显示历史登录用户的信息
  • lastlog显示/etc/passwd里面的用户登录过的信息(失败、成功)
用户权限说明

普通用户如何像root用户一些操作管理系统

  • 直接切换到root用户下管理系统。篡权夺位- su:环境变量很多都还保持原来的- su -:环境变量全部更改为新的
  • 直接修改要操作的数据文件权限
  • root用户赋予了普通用户权利- sudo root用户授权一个能力给普通用户- 怎么进行授权visude/vim /etc/sudoersvisude93行加上oldboy ALL=(ALL) /usr/sbin/useradd, /usr/bin/rm放权格式:授权用户/组 主机名=(允许转换至的用户) NOPASSWD:命令动作批量加权限,某个不让使用/usr/sbin/*, !/usr/sbin/visude, /usr/bin/*sbin和bin下所有命令都可以使用,但是sbin下的visude不能使用的时候不用输入密码NOPASSWD: /usr/bin/*- 如何验证oldboy已经获取了root用户能力sudo -l输入登陆用户的密码然后会显示出已经授权的命令- 如何使用已授权的命令sudo useradd old命令前需要加上sudo
  • 检查是否配置正确visudo -c
设置特殊权限位

文件数据看到的有9个权限位,系统中实际应该有12个权限位

  • setuidchmod u+s 文件信息chmod 4755 文件信息在属主权限位多出s信息- 将文件属主拥有的能力分配给所有人
  • setgid:将文件的属组拥有的能力分配给所有用户组
  • sticky bit:粘滞位:(共享目录)- 可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但不可以互相随意修改chmod o+t 目录或chmod 1777 目录- 系统中默认有一个共享目录:/tmp
如何防范系统中的重要文件不被修改(root用户也不能修改)
  • 给文件加锁,使root用户也不能直接修改相应文件- 设置chattr +i /etc/passwd- 解锁chattr -i /etc/passwd- 查看lsattr /etc/passwd- 防范which chattr然后mv chattr 重命名放到自己知道的一个位置和自己知道的名字别人就不知道你这个命令在哪了 就执行不了了
标签: linux 安全 服务器

本文转载自: https://blog.csdn.net/s_frozen/article/details/128418580
版权归原作者 Pert- 所有, 如有侵权,请联系我们删除。

“Linux系统用户管理和安全设置详解及demo”的评论:

还没有评论