用户章节管理部分

用户章节管理部分

1、系统启动顺序

01.加电自检

检查服务器硬件是否正常

02.MBR引导

读取磁盘的MBR存储记录信息,引导系统启动

03.grup菜单

选择启动的内核/进行单用户模式重置密码

04.加载系统内核信息

可以更好的使用内核控制硬件

05.系统的第一个进程运行起来 system(并行)

服务启动的时候,同时一起启动

06.读取系统启动文件

/etc/systemd/system/default.target

07.读取系统初始化文件

/usr/lib/systemd/system/sysinti.target

08.使服务可以开机自启动

/etc/systemd/system 加载此目录信息,实现服务开机自启动

09.运行mingetty进程

显示开机登录信息界面

2、系统用户管理

1)文件信息:

r read --可以读文件内容

w write -- 可以编辑文件的内容

x execute -- 执行这个文件(脚本文件)

 

文件权限配置结论:

01、root用户对所有文件有绝对的权限,只要有了执行权限就是无敌的存在

02、对于文件来说,写的权限和执行的权限,都需要有读的权限

03、如果想对文件进行操作,必须对文件赋予读的权限

 

2)目录信息:

r read --可以读取目录的文件属性信息

w write -- 可以在目录中添加或者删除文件数据

x execute -- 是否可以进入到目录中

 

目录权限配置的结论:

01、root用户对目录有绝对权限

02、对于目录来说,写的权限和读的权限都需要有执行权限配合

03、如果想对目录进行操作,必须对目录赋予执行的权限

 

一个普通文件默认权限:644 保证属主用户可以对文件编辑 保证其他用户可以读取文件信息

一个目录默认权限:755 保证属主用户对目录进行编辑 保证其他用户可以读取目录中的信息

3)目录文件读取流程(面试)

 

     [oldboy@oldboyedu ~]$ ll /home/oldboy/oldboy_dir/文件 
 •   ls: cannot access oldboy_dir/oldboy.txt: Permission denied
 •   total 0
 •   -????????? ? ? ? ?           ? oldboy.txt
 •
 ​
 /           inode (5 r_x) -- block (home)
 home       inode (5 r_x) -- block (oldboy)
 oldboy   inode (7 rwx) -- block (oldboy_dir)
 oldboy_dir inode (4 r--) -- block (目录中文件名称)
 无法进入目录
 ​
 ​
 oldboy.txt   目录中的文件inode信息无法获取,会显示文件属性信息为???

用户章节管理部分

 

 

4)文件目录数据设置权限的方法(chmod):

01、 根据用户信息进行设定 (属主 属组 其他用户)

属主-user u ​ 属组-group g ​ 其他用户-other o ​ chmod u+r/w/x 给予权限的文件/目录 --增加权限

chmod u-r/w/x 给予权限的文件/目录 --删除权限

             chmod u=rw        --赋值权限

02、根据用户进行批量设定

数值设定: ​ [root@oldboyedu ~]# chmod 761 oldboy.txt ​ [root@oldboyedu ~]# ll oldboy.txt ​ -rwxrw---x. 1 root root 0 Apr 23 11:42 oldboy.txt

     字符设定:
  [root@oldboyedu ~]# chmod a=x oldboy.txt
  [root@oldboyedu ~]# ll oldboy.txt
  ---x--x--x. 1 root root 0 Apr 23 11:42 oldboy.txt

问题一: 为什么创建的文件和目录权限一致(umask)

目录权限都是 755 ​ 文件权限都是 644

umask(内置命令):可以影响系统数据默认权限

[root@oldboyedu ~]# umask ​ 0022

临时修改: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

     if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" =          "`/usr/bin/id -un`" ]; then
  umask 002
 else
  umask 022 --- 可以永久修改umask数值
 fi

$UID:显示当前登录系统用户id数值

判断比较符号:

-gt >

-lt <

-eq ==

-ge >=

-le <=

-ne <>(不等于)

/usr/bin/id -gn --显示当前用户的组名

/usr/bin/id -un --显示当前用户名称

5)系统中的一个特殊目录:/etc/skel 样板房

/etc/skel

 

 [root@HGG ~]# ll -a /etc/skel
 ​
 total 24
 drwxr-xr-x. 2 root root   62 Apr 11 2018 .
 ​
 drwxr-xr-x. 79 root root 8192 Jul 20 20:52 ..
 ​
 -rw-r--r--. 1 root root   18 Oct 31 2018 .bash_logout --当系统退出登录状态会执行的命令
 ​
 -rw-r--r--. 1 root root 193 Oct 31 2018 .bash_profile --别名和环境变量(只针对某个用户)
 ​
 -rw-r--r--. 1 root root 231 Oct 31 2018 .bashrc --别名和环境变量(针对整个系统)

01、用户家目录中的特殊文件

.bash_logout --当系统退出登录状态会执行的命令

.bash_profile --别名和环境变量(只针对某个用户)

.bashrc --别名和环境变量(针对整个系统)

.bashrc_history --历史命令记录文件

曾经输入的历史命令保存位置:

a 保存在内存中--history

b 保存在磁盘文件中-- .bash_history

.viminfo --vim样式设置

自动加载文件样式信息

02、用户的家目录都参照此目录信息

useradd hggboy --> /home/hggboy目录中的数据内容会参考/etc/skel

 

03、/etc/skel的作用:

a 可以存储运维规范说明文件

b 提示符信息

常见出现问题: 命令提示符变成:-bash-4.2$

解决办法:

 [hggboy@HGG ~]$ cp /etc/skel/.b* /home/hggboy
 ​
 [hggboy@HGG ~]$ ll -a /home/hggboy
 total 12
 drwx------. 2 hggboy hggboy 62 Jul 20 21:06 .
 drwxr-xr-x. 4 root   root   31 Jul 20 20:52 ..
 -rw-r--r--. 1 hggboy hggboy 18 Jul 20 21:06 .bash_logout
 -rw-r--r--. 1 hggboy hggboy 193 Jul 20 21:06 .bash_profile
 -rw-r--r--. 1 hggboy hggboy 231 Jul 20 21:06 .bashrc

6)系统中和用户相关的文件

/etc/passwd* --- 记录系统用户信息文件 [root@oldboyedu oldboy]# head /etc/passwd root :x :0 :0 :root :/root :/bin/bash bin :x :1 :1 :bin :/bin :/sbin/nologin daemon :x :2 :2 :daemon :/sbin :/sbin/nologin adm :x :3 :4 :adm :/var/adm :/sbin/nologin lp :x :4 :7 :lp :/var/spool/lpd :/sbin/nologin 01 02 03 04 05 06 07

第一列: 用户名 ​ 第二列: 用户密码信息 ​ 第三列: 用户的uid信息 ​ 第四列: 用户的gid信息 ​ 第五列: 用户的注释信息 ​ mysql(manager database user) ​ www (manager web server) ​ 第六列: 用户家目录信息 ​ 第七列: 用户登录系统方式 ​ /bin/bash --- 通用的解释器 ​ /usr/bin/sh --- 等价于/bin/bash ​ /usr/bin/bash ​ /sbin/nologin --- 无法登录系统 ​ /usr/sbin/nologin

/etc/shadow* --- 系统用户密码文件 ​ /etc/group* --- 组用户记录文件 ​ /etc/gshadow* --- 组用户密码信息

7)系统用户相关命令(useradd)

a 创建用户(useradd)

创建普通用户

useradd hgg01

创建虚拟用户

useradd hggboy01 -M -s /sbin/nologin

-M 不创建家目录

-s 指定使用shell方式

 ​
 [root@HGG ~]# useradd hggboy01 -M -s /sbin/nologin
 ​
 [root@HGG ~]# id hggboy01
 uid=1002(hggboy01) gid=1002(hggboy01) groups=1002(hggboy01)
 ​
 [root@HGG ~]# grep hggboy01 /etc/passwd
 hggboy01:x:1002:1002::/home/hggboy01:/sbin/nologin
 ​
 [root@HGG ~]# ll-d /home/hggboy01
 -bash: ll-d: command not found
 ​

 

useradd hggboy02 -u 2000

-u 指定用户uid数值信息

 [root@HGG ~]# useradd hggboy02 -u 2000
 ​
 [root@HGG ~]# id hggboy02
 uid=2000(hggboy02) gid=2000(hggboy02) groups=2000(hggboy02)

 

useradd hggboy03 -u 2001 -g hggboy02

-g 指定用户所属的主要组信息

 [root@HGG ~]# useradd hggboy03 -u 2001 -g hggboy02
 ​
 [root@HGG ~]# id hggboy03
 uid=2001(hggboy03) gid=2000(hggboy02) groups=2000(hggboy02)
 ​
 [root@HGG ~]# useradd hggboy06 -u 2006 -g 2000
 ​
 [root@HGG ~]# id hggboy06
 uid=2006(hggboy06) gid=2000(hggboy02) groups=2000(hggboy02)

 

useradd hggboy05 -u 2004 -g hggboy02 -G hggboy01

-G 指定用户所属的附属组信息

 [root@HGG ~]# useradd hggboy05 -u 2004 -g hggboy02 -G hggboy01
 ​
 [root@HGG ~]# id hggboy05
 uid=2004(hggboy05) gid=2000(hggboy02) groups=2000(hggboy02),1002(hggboy01)

 

useradd hggboy07 -s /sbin/nologin -M -c"manager database"

-c 添加指定用户注释说明

 [root@HGG ~]# useradd hggboy07 -s /sbin/nologin -M -c"manager database" 
 ​
 [root@HGG ~]# grep hggboy07 /etc/passwd
 hggboy07:x:2007:2007:manager database:/home/hggboy07:/sbin/nologin

b 修改用户信息(usermod)

usermod

-s 修改用户登录方式

 [root@HGG ~]# usermod hggboy02 -s /sbin/nologin
 ​
 [root@HGG ~]# grep hggboy02 /etc/passwd
 hggboy02:x:2000:2000::/home/hggboy02:/sbin/nologin

-g 修改用户的主要组信息

-G 修改用户附属组信息

-u 修改用户uid信息

-c 修改用户注释信息

 

c 删除用户(userdel)

-r 彻底删除用户

d 用户设置密码方法

交互式设置

password 用户名

非交互式设置

echo 123456 |passwd --stdin 用户名

企业中设置密码和管理密码的方式

01.密码要复杂12位以上字母数字及特殊符号

02.保存好密码信息 ​ keepass 密码保险柜,本地存储密码 ​ lastpass 密码保险柜,在线存储密码

03.大企业用户和密码统一管理(相当于活动目录AD) ​ openldap域 用户信息统一保存在一个用户管理服务器中 用户的家目录中的文件 用户密码 用户名称

04.动态密码:动态口令,第三方提供自己开发也很简单。

8)用户属主属组设置命令(chown)

chown 修改属主属组信息

chown hggboy(要修改成的属主).root(要修改成的属组) /hgg/hggboy01.txt(所修改的文件/目录)

 [root@HGG ~]# ll  /hgg/hggboy01.txt
 ​
 -rw-r--r--. 1 root root 0 Jul 15 17:12 /hgg/hggboy01.txt
 [root@HGG ~]# chown hggboy.root /hgg/hggboy01.txt
 [root@HGG ~]# ll /hgg/hggboy01.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 /hgg/hggboy01.txt

 

chown -R 递归修改目录属主属组信息--将目录里面的文件属主属组信息一起修改

chown -R hggboy.root /hgg

 ​
 [root@HGG ~]# chown -R hggboy.root /hgg
 ​
 [root@HGG ~]# ll /hgg
 total 0
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy01.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy02.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy03.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy04.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy05.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy06.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy07.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy08.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy09.txt
 -rw-r--r--. 1 hggboy root 0 Jul 15 17:12 hggboy10.txt

9)用户信息查看命令(w)

a、id 显示用户信息(uid、gid)

b、w 查看正在登陆系统的用户信息

[root@HGG ~]# w 22:47:57 up 2:34, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 20:38 2:09m 0.06s 0.06s -bash root pts/0 10.0.0.1 20:38 5.00s 0.47s 0.05s w hggboy pts/1 10.0.0.1 22:47 5.00s 0.04s 0.04s -bash

01 02 03 04 05 06 07

01、什么用户登录到了系统

02、登录方式

pts/0 远程登录

tty1 本地登录

在另一个用户屏幕输入信息

[root@HGG ~]# echo "请不要操作电脑" >/dev/pts/1

03、从哪连接的服务器

04、登录时间

05、IDLE空闲时间

06、用户操作系统 消耗的CPU资源时间

07、用户在干什么

10)用户授权权限说明(sudo)

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

01、直接切换到root账户

 

02、直接修改要做的数据文件权限(chmod)

特点:只针对某个数据文件进行修改,只针对某个用户进行授权

03、root用户赋予一个能力给普通用户(sudo)

特点:可以利用文件编辑指定某个用户给予哪些权限

a 怎么进行授权:

visudo

 [root@HGG ~]# visudo
 ​
  101 hggboy ALL=(ALL)       /usr/bin/rm, /usr/sbin/useradd

b 如何验证普通用户已经获取root赋予的能力

 [hggboy@HGG ~]$ sudo -l
 secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
 ​

c 执行root用户赋予的命令

 [hggboy@HGG ~]$ sudo rm -rf /hgg
 [hggboy@HGG ~]$ ll -d /hgg
 ls: cannot access /hgg: No such file or directory
 [hggboy@HGG ~]$ sudo useradd hggdog
 [hggboy@HGG ~]$ id hggdog
 uid=2008(hggdog) gid=2008(hggdog) groups=2008(hggdog)

注:执行root赋予的能力需要在命令前加sudo

扩展配置方法:

1、授权单个或者多个命令

hggboy ALL=(ALL) /usr/bin/rm, /usr/sbin/useradd

2、授权单个命令目录或者多个命令目录(需要排除部分特权命令)

 hggboy  ALL=(ALL)       /usr/sbin/*, !/usr/sbin/useradd,/usr/bin/*

3、不需要输入用户密码可以直接sudo方式执行命令

 hggboy  ALL=(ALL)   NOPASSWD:   /usr/sbin/*, !/usr/sbin/useradd,/usr/bin/*

04、设置特殊权限位

rwx -w- --x 系统文件数据的9个权限位 系统中实际应该有12个权限位

1、setuid权限设置方法(chmod u+s):

chmod u+s 文件信息

chmod 4755 文件信息

 [root@HGG ~]# chmod u+s /bin/cat 
 ​
 [root@HGG ~]# ll /bin/cat
 ​
 -rwsr-xr-x. 1 root root 54160 Oct 31 2018 /bin/cat
 [test@HGG ~]$ cd /root/root.txt
 -bash: cd: /root/root.txt: Permission denied
 [test@HGG ~]$ cat /root/root.txt
 123

在属主权限位多出s信息

总结:setuid权限位置设置,将文件属主拥有的能力分配给所有人

setuid权限一般赋予二进制的文件命令或者一些可执行脚本文件

2、setgid权限设置方法

chmod 2755 文件信息

同上

总结:setgid权限位置设置,将文件属组拥有的能力分配给所有人

3、sticty bit 粘滞位(创建共享目录chmod 0+t)

作用:可以将不同用户信息放到共享目录中,实现不用用户数据可以互相查看,但是不能互相编写

设置方法:chmod o+t 目录信息

chmod 1777 目录信息

系统中已经存在的共享目录,权限位1777(tmp)

 [root@HGG ~]# ll -d /tmp
 ​
 drwxrwxrwt. 11 root root 275 Aug 1 15:19 /tmp

注:目录权限为777的目录,每个用户都可以读与编写里面的文件信息

11)如何防范系统中的重要文件不被修改(root也不能修改chattr +i)

给文件上锁

目的:使root用户也不能修改文件

上锁设置方法:chattr +i 目录文件

解锁设置方法:chattr -i 目录文件

 [root@HGG ~]# chattr +i /etc/passwd     --上锁
 ​
 [root@HGG ~]# ll /etc/passwd
 ​
 -rw-r--r--. 1 0 root 1476 Aug 1 15:45 /etc/passwd
 [root@HGG ~]# lsattr /etc/passwd --查看是否上锁
 ----i----------- /etc/passwd
 [root@HGG ~]# chattr -i /etc/passwd --解锁
 ​
 ​

 

上一篇:定时任务(crontab)


下一篇:Hi3518ev200:内核启动分析