linux 操作系统用户管理
常见面试题
centos6 系统启动的流程
01. 加电自检
- 检查服务器硬件是否正常
02. MBR引导
- 读取磁盘的MBR存储记录信息,引导系统启动
03. grup菜单
- 选择启动的内核/进行单用户模式重置密码
04. 加载系统内核信息
- 可以更好的使用内核控制硬件
05. 系统的第一个进程运行起来 init (串行)
- init进程控制后续各种服务的启动: 启动顺序 网络服务 sshd
06. 加载系统运行级别文件/etc/inittab
07. 初始化脚本运行
- 初始化系统主机名称 和 网卡信息
08. 运行系统特殊的脚本
- 服务运行的脚本
09. 运行mingetty进程
- 显示开机登录信息界面
centos7 系统启动流程
01. 加电自检
- 检查服务器硬件是否正常
02. MBR引导
- 读取磁盘的MBR存储记录信息,引导系统启动
03. grup菜单
- 选择启动的内核/进行单用户模式重置密码
04. 加载系统内核信息
- 可以更好的使用内核控制硬件
05. 系统的第一个进程运行起来 systemd (并行)
- 服务启动的时候,同时一起启动
06. 读取系统启动文件
- /etc/systemd/system/default.target
07. 读取系统初始化文件
- /usr/lib/systemd/system/sysinit.target
08. 使服务可以开机自启动
- /etc/systemd/system 加载此目录中的信息,实现服务开机自动启动
09. 运行mingetty进程
- 显示开机登录信息界面
用户管理
文件或目录数据设置权限的方法
chmod u+r/w/x u-r/w/x u=rw chmod g+r/w/x u-r/w/x u=rw chmod o+r/w/x u-r/w/x u=rw
文件信息:
-
r 可以读文件的内容
-
w 可以编辑文件的内容
-
x 执行这个文件(脚本文件)
文件权限配置的结论:
-
01. root用户对所有文件有绝对的权限,只要有了执行权限,root用户可以无敌存在
-
02. 对于文件来说,写的权限和执行的权限,都需要有读权限配合
-
03. 如何想对文件进行操作,必须对文件赋予读的权限
目录信息:
-
r 读目录中的文件属性信息
-
w 可以在目录中添加或删除文件数据信息
-
x 是否可以进入到目录中
目录权限配置的结论:
-
01. root用户对目录信息有绝对权限
-
02. 对于目录来说,写的权限和读的权限,都需要有执行权限配合
-
03. 如何想对目录进行操作,必须对目录赋予执行的权限
创建一个用户的时候,家目录中的文件会参考/etc/skel目录中的信息(新建的用户家目录中也会包含这几个文件)
-rw-r--r--. 1 root root 18 Apr 11 2018 .bash_logout 当系统退出登录状态会执行的命令 -rw-r--r--. 1 root root 193 Apr 11 2018 .bash_profile 别名和环境变量(只针对某个用户) 家规 -rw-r--r--. 1 root root 231 Apr 11 2018 .bashrc 别名和环境变量(只针对某个用户) 家规
系统中和用户相关的文件
/etc/passwd 记录系统用户信息文件
第一列: 用户名 第二列: 用户密码信息 第三列: 用户的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 --- 组用户密码信息
系统用户相关命令
useradd 创建用户命令
-
-M 不创建家目录
-
-s 指定使用的shell方式
-
-c 添加指定用户注释说明信息
-
-g 指定用户所属的主要组信息
-
-G 指定用户所属的附属组信息
-
-u 指定用户uid数值信息
创建一个虚拟用户
[root@oldboyedu oldboy]# useradd Alex01 -M -s /sbin/nologin [root@oldboyedu oldboy]# id Alex01 uid=1067(Alex01) gid=1067(Alex01) groups=1067(Alex01) [root@oldboyedu oldboy]# grep Alex01 /etc/passwd Alex01:x:1067:1067::/home/Alex01:/sbin/nologin [root@oldboyedu oldboy]# ll /home/Alex01 -d ls: cannot access /home/Alex01: No such file or directory
用户创建各个选项说明
useradd Alex03 -u 2000 -u 指定用户uid数值信息 [root@oldboyedu oldboy]# id Alex03 uid=2000(Alex03) gid=2000(Alex03) groups=2000(Alex03) useradd Alex04 -u 2001 -g Alex02 -g 指定用户所属的主要组信息 [root@oldboyedu oldboy]# id Alex04 uid=2001(Alex04) gid=1068(Alex02) groups=1068(Alex02) [root@oldboyedu oldboy]# useradd Alex05 -u 2002 -g 1068 [root@oldboyedu oldboy]# id Alex05 uid=2002(Alex05) gid=1068(Alex02) groups=1068(Alex02) [root@oldboyedu oldboy]# useradd Alex07 -u 2004 -g Alex02 -G Alex03 -G 指定用户所属的附属组信息 [root@oldboyedu oldboy]# id Alex07 uid=2004(Alex07) gid=1068(Alex02) groups=1068(Alex02),2000(Alex03) useradd mysql -s /sbin/nologin -M -c "manager database" -c 添加指定用户注释说明信息 [root@oldboyedu oldboy]# grep mysql /etc/passwd mysql:x:2005:2005:manager database:/home/mysql:/sbin/nologin
usermod 修改用户信息
-
-s 修改用户的登录方式
-
-g 修改用户的主要的组信息
-
-G 修改用户的附属组信息
-
-c 修改用户的注释信息
简单实例
修改用户shell信息 [root@oldboyedu oldboy]# usermod Alex02 -s /sbin/nologin [root@oldboyedu oldboy]# grep Alex02 /etc/passwd Alex02:x:1068:1068::/home/Alex02:/sbin/nologin 修改用户uid信息 [root@oldboyedu oldboy]# usermod Alex02 -u 3000 [root@oldboyedu oldboy]# id Alex02 uid=3000(Alex02) gid=1068(Alex02) groups=1068(Alex02)
userdel 删除用户信息
- -r 彻底删除用户以及用户的家目录
userdel -r Alex04 [root@oldboyedu oldboy]# ll /home/Alex04 -d ls: cannot access /home/Alex04: No such file or directory
groupadd 创建用户组
[root@oldboyedu oldboy]# groupadd python [root@oldboyedu oldboy]# useradd python -g python [root@oldboyedu oldboy]# id python uid=3003(python) gid=3003(python) groups=3003(python)
groupmod 修改用户组信息
groupdel 删除用户组信息
普通用户如何像root用户一些操作管理系统
给一个指定的用户赋予指定的权限(如:创建用户和删除文件)
visudo
配置语法检查
visudo -c
扩展配置方法:
1) 授权单个命令或多个命令
/usr/sbin/useradd, /usr/bin/rm, ,
2) 授权单个命令目录或多个命令目录 (需要排除部分特权命令)
/usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
3) 不需要输入用户密码,可以直接sudo方式执行命令
NOPASSWD: /usr/sbin/*, !/usr/sbin/visudo , /usr/bin/*
(4) 赋予所有权限,且不需要输入密码
biao 用户查看赋予的权限
sudo -l
简单测试
[oldboy@oldboyedu ~]$ sudo useradd Alex06 useradd: user 'Alex06' already exists [oldboy@oldboyedu ~]$ sudo useradd Alex07 useradd: user 'Alex07' already exists [oldboy@oldboyedu ~]$ sudo useradd Alex08 [oldboy@oldboyedu ~]$ sudo rm -f /etc/hosts
设置特殊权限位
rwx -w- --x 系统文件数据的9个权限位 系统中实际应该有12个权限位
setuid: 4
setuid权限位设置,将文件属主拥有的能力,分配给所有人
在属主权限位多出s信息
权限设置方法:
-
chmod u+s 文件信息
-
chmod 4755 文件信息
setgid: 2
权限设置方法:
-
chmod g+s 文件信息
-
chmod 2755 文件信息
setgid 权限位设置,将文件属组拥有的能力,分配给所有用户组
在属组权限位多出s信息
sticky bit:粘滞位: (创建一个共享目录)
功用:对于属组或全局可写的目录,组内的所有用户或系统上的所有用户对在此目录中都能创建新文件或删除所有的已有文件;如果为此类目录设置Sticky权限,则每个用户能创建新文件,且只能删除自己的文件
setother id 1
作用:
可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改
设置方法:
-
chmod o+t 目录信息
-
chmod 1777 目录信息
系统中已经准备好了一个共享目录,权限位1777
ll -d /tmp/
如何防范系统中的重要文件不被修改(root用户也不能修改)
给文件加上锁头:
目的: 使root用户也不能直接修改相应文件
设置方法:
chattr +i text.txt ll text.txt
修改的时候出现警告信息
检查方法(查看该文件是否有锁头)
lsattr text.txt
解锁方法:
chattr -i text.txt lsattr text.txt