Linux 运维基础(七):用户管理
用户类型
用户类型 | 名称 | uid | 特点 |
---|---|---|---|
管理员用户 | root | 0 | 权力至高无上 |
虚拟用户 | nobody(可自定义) | 1-999 | 用于管理进程 无家目录 不能登录系统 |
普通用户 | 自定义 | 1000+ | 权限有限 |
用户管理基本操作
创建用户
# 创建普通用户danni
useradd danni
# 创建用户,指定用户id,所属组,附属组,用户注释
useradd danni -u 2000 -g danni -G dannis -c "An IT girl"
# 创建虚拟用户 mysql
useradd mysql -M -s /sbin/nologin -c "database manager"
useradd参数说明:
参数 | 说明 |
---|---|
-M | 不创建家目录 |
-s | 设置用户登录方式 |
-c | 设置用户注释 |
-g | 设置用户所属组 |
-u | 设置用户id |
-G | 设置用户的附属组 |
查看用户信息
用户的信息保存在 /etc/passwd
目录下
# 查看用户信息
[root@smartgirl ~]# grep mysql /etc/passwd
mysql:x:1002:1002:database manager:/home/mysql:/sbin/nologin
1 2 3 4 5 6 7
------------------------------------------------------------------------
各字段含义:
1.用户名
2.用户密码,正真的密码保存在/etc/shadow中,此处仅占位
3.用户id
4.所属组id
5.用户注释
6.用户家目录 --- 虚拟用户的家目录实际并不存在
7.用户登录方式 /sbin/nologin ---- 不能登录
修改用户信息
usermod $用户名 $参数 $信息
# 修改用户登录方式 --- 当有员工离职,账号可以设置为不可登录(保留账号)
usermod danni -s /sbin/nologin
删除用户
userdel $用户名
— 不会删除用户的家目录
userdel -r $用户名
— 彻底删除用户,会删除用户家目录
补充:
groupadd $用户组名
— 创建用户组
groupdel $用户组名
— 删除用户组
设置用户密码
交互式设置
passwd $用户名
非交互式设置
echo 密码信息|passwd --stdin $用户名
查看所有用户登录信息
# 根据用户信息空闲时间,当前操作等,可以判断用户的使用系统情况
# 如判断用户是否占用CPU资源过多,是否长时间运行脚本
# 从而判断是否执行了死循环脚本,或者系统被植入病毒
[root@smartgirl ~]# w
05:47:31 up 10:19, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 10.0.0.1 01:45 3.00s 0.24s 0.00s w
root pts/3 10.0.0.1 01:45 2:55m 0.03s 0.02s bash
1 2 3 4 5 6 7
----------------------------------------------------------------------
各字段含义:
1. 登录用户用户名
2. pts/x 远程登录系统tty1 本地登录echo '请勿继续操作!' >> /dev/pts/2 --- 将在用户终端输出该信息,可用于提醒用户
3. 从哪连接的服务器
4. 登录时间
5. 空闲时间 --- 无操作
6. 用户操作系统 消耗的CPU资源
7. 用户当前操作 ich(执行脚本) bash命令行输入
文件/目录权限
文件/目录权限的设置是用户管理中非常重要的内容,因为Linux中一切皆文件,掌握了文件的控制权,就掌握了系统的控制权,文件权限的管理对服务器的安全至关重要。
文件权限说明
- r 可读
- w 可执行
- x 执行这个文件(脚本文件)
权限配置结论:
- root用户对任何文件都默认有读写权限,即使没有执行权限也可以用sh命令执行文件
- 对于文件来说,写权限和执行权限都需要有读权限支持
- 普通如果想对文件进行操作,必须对文件赋予读的权限
目录权限说明
- r 可读目录中文件的属性
- w 可在目录中添加或删除文件数据信息
- x 可进入到目录中
目录权限配置结论:
- root用户对目录有绝对权限
- 对于目录来说,写权限和读权限都需要有执行权限的配合
- 如果想对目录进行操作,必须对目录赋予执行操作
root用户文件默认权限:644
保证属主可编辑文件,其他用户可读文件
root用户目录默认权限:755
保证属主可编辑目录中文件,其他用户可读取目录信息,并进入到目录
ps:文件是否可以编辑查看,不仅与文件自身的权限有关,还与上一级或上n级目录的权限有关
设置用户文件权限
修改单类型用户权限
属主 — user — u
属组 — group — g
其他用户 — other — o
chmod u+r/w/x
— 添加权限
chmod u-r/w/x
— 减少权限
chmod u=rw
— 直接赋值
修改所有类型用户权限
数值设定:chmod 755 $文件名
符号设定:chmod a=x $文件名
修改文件属主/属组
# 修改属主
chown $属主 $文件
# 修改属组
chgrp $属组 $文件
# 修改属主和属组
chown $属主.$属组 $文件
chown $属主. $文件
# 修改目录的权限
chown -R $属主.$属组 $目录 --- 递归修改(注意参数是大写R)
默认用户文件/目录权限
系统中有一个umask,是文件/目录权限掩码,不同用户的umask值是不一样的,不同用户的umask的值可以是不一样的,umask决定了用户创建的文件/目录的默认权限。
这里只用root用户权限来作说明。
- 默认umask : 0022
- 默认文件权限: 666 - 022 = 644
- 默认目录权限:777 - 022 = 755
文件权限计算:
对于目录,只需要用 777 减去 umask的值即可
但是,对于文件,其情况就比较特殊
若 umask 某一位是奇数,则该位对应的计算结果要+1
若都是偶数,则不需要特殊处理,也就是说:
假如umask是033,那么文件权限是 666 - 033 => 633 + 011 => 644
修改umask
临时修改
umask $数字
永久修改
vi /etc/profile
文件特殊权限位
文件在系统中一共有12个权限位,除了属主,属组和其他用户rwx一共9个权限位外,还有另外三个,分别时:
- setuid:将用户属主所拥有的能力分配给所有人
chmod u+s $文件名
或chmod 4xxx $文件名
- setgid:将用户属组所拥有的能力分配给所有人
chmod g+s $文件名
或chmod 2xxx $文件名
- sticky bit(粘滞位):可以将不同用户信息放置到共享目录中,实现不同用户数据可以互相查看,但是不可以互相随意修改,可以用于创建一个共享目录
chmod o+t $目录
或chmod 1777 $目录
系统有一个默认的共享目录 /tmp
普通用户提权
- 修改文件/目录 rwx 权限位
- 修改
/etc/sudoers
文件内容,使用sudo命令执行被赋予的权限# 示例 # `visudo` 或 `vi /etc/sudoers` 可对文件进行编辑,推荐使用`visudo`,其有语法检查功能 92 root ALL=(ALL) ALL 93 danni ALL=(ALL) /usr/sbin/useradd ------------------------------------ [danni@smartgirl ~]sudo useradd danni01 # 获得添加用户的权限
- 设置
setuid
/setgid
,赋予普通用户属主/属组的权限
注意:
setuid 权限一般赋予二进制文件的命令文件或者一些可执行的脚本文件
setgid
特殊目录和文件
系统中一个特殊的目录 : /etc/skel/
该目录是用户家目录的样板目录,新创建用户的家目录会参考这个目录
目录中自带的文件有:
文件 | 功能 |
---|---|
.bash_logout
|
保存系统退出登录状态时执行的命令 |
.bash_profile
|
保存别名和环境变量(只针对某个用户) ,等同于.bashrc |
.bashrc
|
保存别名和环境(只针对某个用户) |
/etc/skel
目录的应用:
- 目录中可以存储运维操作规范说明文件
- 调整命令提示符信息
用户家目录中文件被恶意删除,出现问题:命令提示符变为bash-4.2$
可将/etc/skel
目录中的文件复制到用户家目录下,提示符即恢复正常
用户家目录下的特殊文件
.bash_history
— 历史命令记录文件.viminfo
— 样式信息(可设置默认显示行号,文件头信息)
系统中和用户相关的文件
/etc/passwd
— 记录系统用户信息文件/etc/shadow
— 系统用户密码文件/etc/group
— 组用户记录文件/etc/gshadow
—组用户密码信息/etc/shells
— 所有可选登录方式
Linux 运维基础(七):用户管理相关推荐
- linux运维基础[系统磁盘管理]——————磁盘的物理结构[内部结构、外部结构、计算磁盘大小]
文章目录 1. 磁盘的外部结构 2.磁盘的内部结构 3. 计算一个磁盘的大小 1. 磁盘的外部结构 我们首先查看一个磁盘的结构,然后我们来进行一一的解读: 磁盘的主轴:决定磁盘的转速,转的越快,就会效 ...
- linux运维基础[系统磁盘管理]——————存储设备的识别、df、du、fsck
文章目录 1. 本地存储设备的识别 1.1 fdisk -l 1.2 cat /proc/partition 1.3 blkid 1.4 df 2.文件系统常用命令 2.1 df 2.1.1 -h 2 ...
- Linux运维基础进阶——PPT汇总
Linux运维基础 admin day1--云网络基础 day2--Linux系统简介.安装Linux系统.Linux基本操作 day3--命令行基础.目录和文件管理 day4--管理用户和组.tar ...
- 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍
01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...
- puppet运维自动化之用户管理
系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户 ...
- linux 运维基础问题_Linux基础能力问题和解答
linux 运维基础问题 This section contains Aptitude Questions and Answers on Linux Basics. 本节包含有关Linux基础知识的 ...
- 网络配置——Linux运维基础
今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...
- linux运维基础进阶和shell入门,Linux运维工程师从基础到进阶:Shell变量知识梳理...
原标题:Linux运维工程师从基础到进阶:Shell变量知识梳理 Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂 ...
- 0基础linux运维,Linux运维基础
字符匹配: . 匹配任意单个字符 [] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符 [:alnum:] 字母和数字 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, ...
最新文章
- gin自定义路由日志的格式
- 虚拟机中mysql-cobar安装_cobar配置安装
- 【机器学习】线性回归代码练习
- CF1000G. Two-Paths(树形dp)
- 你一直想学的 RocketMQ,原来这样学才最省时省力
- windows android ios,TIM for Windows/iOS/Android v2.2.6 正式版发布
- encodeURI() 的用法
- asp.net 动态生成二维码加文字描述或者二维码加logo
- Spring Boot过滤器和拦截器详解
- flutter中状态栏高度等信息
- xp计算机连接不上网络打印机驱动,windows xp系统打印机共享提示连接失败的解决方法...
- 《东周列国志》第五回 宠虢公周郑交质 助卫逆鲁宋兴兵
- win10浏览器闪退_为什么win10浏览器总是闪退_win10浏览器闪退是怎么回事
- 计算机网络基础之安全防范措施
- python用cartopy包画地图_python – 使用Cartopy在地图上显示图像时的投影问题
- win11磁盘分区怎么分?手把手教会你
- 数据分析师必备思维——矩阵思维
- 互联网摸鱼日报(2023-04-30)
- DDN获中国工信部—可信区块链评测证书
- 用pyhton爬虫技术爬取所有股票的每周价格