免费网站推广的方法,网站建设与管理专业人才调研,扶风高端企业网站建设,wordpress图片变形一、Linux下用户管理
1、用户概念以及基本作用
用户#xff1a;指的是Linux操作系统中用于管理系统或者服务的人
一问#xff1a;管理系统到底在管理什么#xff1f;
答#xff1a;Linux下一切皆文件#xff0c;所以用户管理的是相应的文件
二问#xff1a;如何管理…一、Linux下用户管理
1、用户概念以及基本作用
用户指的是Linux操作系统中用于管理系统或者服务的人
一问管理系统到底在管理什么
答Linux下一切皆文件所以用户管理的是相应的文件
二问如何管理文件呢
答 文件基本管理比如文件的创建、删除、复制、查找、打包压缩等文件的权限增加、减少等 文件高级管理比如程序文件的安装、卸载、配置等。终极目的是对外提供稳定的服务。
2、用户的类别
① root超级管理员在Linux系统中拥有至高无上的权力。
② 系统用户CentOS6 1 ~ 499CentOS7 1 ~ 999系统账号默认不允许登录 # useradd -s /sbin/nologin 系统用户 ③ 普通用户大部分是由root管理员创建的UID的取值范围CentOS6 500 ~ 60000CentOS7 1000 ~ 60000对系统进行有限的管理维护操作
总结
① 用户指的是操作系统上管理系统或服务的人是人就有相关的属性信息
② 用户的属性信息包括但不限于如家目录、唯一身份标识(UID)、所属组(GID)等
③ 今天我们讨论的用户指的是普通用户即由管理员创建的用户
3、用户管理
与用户管理相关的几个单词 user用户、add添加、mod修改、del删除
① 用户添加 useradd
② 用户修改 usermod
③ 用户删除 userdel
☆ useradd用户添加
基本语法 # useradd [选项 选项的值] 新用户名称
-u 指定用户uid唯一标识必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家并且默认在/home/xxx)
-s 指定用户默认shell常见/bin/bash或/sbin/nologin扩展
-r 指定用户为系统用户如创建一个系统账号mysql 案例在Linux系统中创建一个账号zhangsan # useradd zhangsan 问题一个用户创建成功后如何判断是否添加到系统
答第一种方案我们可以通过tail命令查看/etc/passwd文件
第二种方案我们可以使用id命令查看zhangsan信息
案例在Linux系统中创建一个账号lisi指定用户的家目录为/rhome/lisi # mkdir /rhome
# useradd -d /rhome/lisi lisi 当我们为用户自定义家目录时其上级目录必须是真实存在的如/rhome 案例在Linux系统中创建一个mysql账号要求真实存在的但是其不允许登录操作系统 # useradd -s /sbin/nologin mysql 案例在Linux系统中创建一个mysql系统账号要求真实存在但是不允许登录操作系统 # userdel -r mysql
# useradd -r -s /sbin/nologin mysql ☆ 与用户相关的文件
Linux中一切皆文件所以保存用户的信息的也是一个文件 /etc/passwd # vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
第1列用户名称
第2列用户密码使用一个x占位符真实密码存储在/etc/shadow文件中
第3列用户的编号UID01-9991000 ~ 60000
第4列用户的主组编号GID
第5列用户的备注信息扩展可以使用-c进行指定 useradd -c mysql mysql
第6列用户的家目录/root超级管理员的家/home普通账号的家
第7列用户的Shell文件常见/bin/bash或/sbin/nologin/bin/false ☆ usermod用户修改
基本语法 # usermod [选项 选项的值] 用户名称
-u 指定用户uid唯一标识必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家并且默认在/home/xxx)
-s 指定用户默认shell 案例修改zhangsan账号的主组为itheima组只能指定一个
① 可以获取itheima组的编号信息GID
② 使用usermod -g GID编号修改某个用户的主组信息 其实在usermod修改用户的主组中usermod -g 可以使用GID编号也可以使用组名称 # cat /etc/group |grep itheima
# usermod -g 1000 zhangsan 或 # usermod -g itheima zhangsan 案例修改lisi账号的附加组将其添加到itheima中 # usermod -G 1000 lisi 或 # usermod -G itheima lisi 案例创建一个itcast组在创建一个wangwu的账号修改wangwu的附加组为itcast与itheima # groupadd itcast
# useradd wangwu
# usermod -G itcast,itheima wangwu 问题如果一个用户同时拥有多个附属组怎么查看呢
答使用id命令即可
案例修改用户zhangsan的家目录为/rhome/zhangsan默认/home/zhangsan # mkdir /rhome/zhangsan
# usermod -d /rhome/zhangsan zhangsan
# su - zhangsan
-bash-4.2$
出现以上问题的主要原因在于我们迁移用户的家目录时没有迁移家目录中的配置文件家具
解决方案
① 家目录已经迁移我们把/etc/skel中的文件copy到新家中
# cp -a /etc/skel/. /rhome/zhangsan/
选项说明
-a all所有复制时保留文件的原有属性
② 家目录还没有迁移准备迁移时使用usermod -md /rhome/zhangsan 用户名
-m move迁移家目录时把家具一起迁移到新的家目录
# usermod -md /rhome/zhangsan zhangsan 注要求/rhome/zhangsan必须是真实存在的 案例当我们创建了某个账号但是不希望这个账号登录操作系统 # usermod -s /sbin/nologin 用户名称 ☆ userdel用户的删除 # userdel [选项] 用户名称
选项说明
-r 删除用户的同时删除用户的家目录
-f 强制删除用户即使用户处于登录状态 案例删除zhangsan这个账号 # userdel zhangsan 案例删除zhangsan这个账号同时删除这个账号的家 # userdel -r zhangsan 案例删除某个正在使用的账号强制删除 # userdel -f zhangsan 4、用户密码
☆ passwd修改用户密码
# passwd [用户名称]
说明
1.管理员root可以给任何用户修改密码
2.普通用户可以自己给自己修改密码但是密码复杂度要符合规范(大小写、特殊字符、长度)
案例使用root账号给itheima用户修改密码新密码为123456 # su - root
# passwd itheima
Changing password for user itheima.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully. 案例切换到itheima这个账号自己给自己修改密码密码规范 # su - itheima
# passwd
Changing password for user itheima.
Changing password for itheima.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully. ☆ --stdin修改用户密码
--stdin 标准输入
# echo 123 |passwd --stdin itheima
# history -c 清除history历史记录 注意以上方式操作非常简单但是以上命令会留在history历史命令中 5、chage更改用户的账号信息
背景很多公司运维工程师刚入职都会默认得到一个服务器的管理账号密码默认如123456我们有没有办法让运维工程师在第一次登陆操作系统后强制要求其更新密码。 # chage --help
-l列出用户的详细密码状态;
-d 日期修改 /etc/shadow 文件中指定用户密码信息的第3个字段也就是最后一次修改密码的日期格式为 YYYY-MM-DD;
-m 天数修改密码最短保留的天数也就是 /etc/shadow 文件中的第4个字段;
注几天后才能修改一次密码
-M 天数修改密码的有效期也就是 /etc/shadow 文件中的第5个字段;
注每隔多少天更新一次密码
-W 天数修改密码到期前的警告天数也就是 /etc/shadow 文件中的第6个字段;
-i 天数修改密码过期后的宽限天数也就是 /etc/shadow 文件中的第7个字段;
注过期后还可以使用的天数达到这个天数后账号失效
-E 日期修改账号失效日期格式为 YYYY-MM-DD也就是 /etc/shadow 文件中的第8个字段; 案例新创建一个账号lamp设置初始化密码为123456。要求用户第一次登陆后必须强制修改用户的密码。
解决思路把密码的最后修改时间重置为0回到1970年1月1日
# useradd lamp
# echo 123456 |passwd --stdin lamp
# chage -d 0 lamp
运行效果 案例设置lamp账号的过期时间为2010-04-10 # chage -E 2020-04-10 lamp 案例设置lamp账号的10天后过期延伸 # chage -E $(date %F -d 10 days) lamp
%FYYYY-mm-dd格式2020-04-01
-d多少天以后的日期 案例设置mysql用户60天后密码过期至少7天后才能修改密码密码过期前7天开始收到告警信息 # useradd mysql
# echo 123456 |passwd --stdin mysql
# chage -M 60 -m 7 -W 7 mysql ☆ 练习题
创建3个普通用户stu1~stu3,要求如下 stu1默认创建密码为123 stu2的家目录为/rhome/redhat/stu2,密码为123 stu3用户不能登录操作系统密码为123
6、用户组管理
☆ 用户和组的关系 总部 头头 核心组的目的是为了方便管理用户 用户是操作系统上管理维护系统或服务的人 组是用户的一个属性信息 任何一个用户默认都会有一个主组(默认组) 一个用户除了主组也可以有多个其他组(附加组)
一问用户的主组和附加组到底有啥关系呢
答用户的主组和附加组半毛钱关系都木有
二问那要这个主组或者附加组有啥用呢
答肯定是有用的组的目的是方便管理用户用户的目的是管理操作文件文件就有权限这个属性。 用户要操作一些文件文件是由用户创建不同用户创建的文件的属性信息也就不一样 文件的属性都有啥呢比如文件的创建者文件属于哪个组文件大小文件时间等 其中不同用户所创建的文件的属组就是该用户的主组(默认组) A用户附加组也有可能是其他用户的主组道理同上权限章节再细细体会组的作用
☆ 用户组管理
group组添加add修改mod删除del
groupadd 添加用户组
groupmod 修改用户组
groupdel 删除用户组
☆ 添加用户组 # groupadd [选项 选项的值] 用户组名称
选项说明
-g 创建用户组时指定用户组编号GID0代表超级管理员root组1-999代表系统用户组
1000以后代表普通用户组 案例在系统中创建一个admin组
# groupadd admin
案例在系统中创建一个itcast组并指定用户组的编号为1200
# groupadd -g 1200 itcast
问题用户组创建完成后如何判断是否创建成功
# tail -1 /etc/group
☆ 与用户组相关的文件
在Linux系统中与用户组相关的文件 /etc/group
# vim /etc/group
root:x:0:
第1列代表用户组的组名称
第2列代表用户组的组密码使用一个x占位符基本已经不使用了
第3列代表用户的组ID编号GID的值
第4列代表用户组内的用户信息
☆ 修改用户组
# groupmod [选项 选项的值] 用户组名称
选项说明
-g gid缩写代表修改用户所属组的ID编号
-n name缩写代表修改用户组的名称
案例更改itcast用户的GID编号从1200 1005
# groupmod -g 1005 itcast
☆ 删除用户组
# groupdel 用户组的名称 注意在Linux操作系统中如果想删除某个用户组必须要保证这个组不能是某个用户的主组。 案例删除itcast用户组
# groupdel itcast
案例删除admin用户组
# groupdel admin
7、附属组管理
基本语法
# gpasswd [选项 选项的值] 用户组的名称
-a 添加用户到组append追加
-d 从组中删除成员delete移除
-A 指定管理员Admin管理员
-M 指定组成员可以批量添加用户到组中
问题解析-a与-M到底有啥区别
-a一次只能追加一个用户到附属组中-aappend追加的形式原有用户不覆盖
-M一次可以追加多个用户到附属组中覆盖追加先把原有用户删除然后添加我们的用户
案例创建3个用户user01~user03将user01添加到sysadmin组里附属组
# useradd user01
# useradd user02
# useradd user03
# groupadd sysadmin
① 方案1
# usermod -G sysadmin user01
② 方案2
# gpasswd -a user01 sysadmin
案例把user02、user03添加到sysadmin组中
① 方案1
# gpasswd -a user02 sysadmin
# gpasswd -a user03 sysadmin
② 方案2
# gpasswd -M user02,user03 sysadmin
案例从附属组中移除某个账号
# gpasswd -d 移除的用户名称 附属组名称
# gpasswd -d user03 sysadmin
Removing user user03 from group sysadmin
☆ 练习题
1、创建一个admin组组id为900
2、创建一个用户tom,并且admin组作为tom用户的附加组要求在建立用户的时候就完成,密码为123
3、创建一个用户jack,要求在建立用户之后使用gpasswd把jack加入到admin组密码为123
4、给admin组设定一个默认密码为123 gpasswd命令
# gpasswd admin组名称 移除gpasswd -r admin组名称代表移除组密码 5、把tom用户设定为admin组的组管理员 gpasswd -A tom admin ☆ 作业1 创建一个公司itcast3个部门财务(cw)人事(rs)市场(sc) 说明实际是创建4个组分别为itcast、cw、rs、sc没有包含的关系 每个部门创建2个用户如 cw01 cw02rs01rs02sc01sc02boss01管理公司所有部门说明boss01管理所有部门说明boss01的附加组为财务、人事和市场部门 所有用户账号有效期3个月90天第一次登录强制修改密码每隔15天更新一次密码默认密码为123456
☆ 作业2 添加3个用户用户harrynatashasarsh要求harrynatasha用户的附加组为admin组sarsh用户的登录shell为非交互式shell。密码均为redhat 修改harry用户的家目录为/home/heima/redhat/harry 修改natashasarsh用户的主组为heima并且可以登录系统
二、文件权限管理
1、什么是权限
权限在计算机系统中权限是指某个计算机用户具有使用软件资源的权利。
2、权限的目的
文件权限的设置目的是想让某个用户有权利操作文件
3、权限的分类 普通权限rwx 用户正常情况去操作文件所具有的权限 高级权限st 用户对某个文件操作有特殊需求而普通权限不能满足需要给文件设置高级权限 默认权限umask 用户在系统中创建一个文件该文件默认都会有一个权限该权限是默认有的
注意
权限是设置在文件上的而不是用户
4、普通权限rwx重点
☆ read读权限 针对目录 一个目录拥有r权限说明可以查看该目录里的内容ls命令列出 针对普通文件 一个普通文件拥有r权限说明可以查看该文件的内容(cat/head/tail/less/more等命令查看) 读权限rread用数字表示是4
☆ write写权限 针对目录 一个目录拥有w权限说明可以在该目录里创建、删除、重命名等操作mkdir/touch/mv/rm等 针对普通文件 一个普通文件拥有w权限说明可以修改该文件的内容vi/vim编辑器编辑文件 写权限wwrite用数字表示是2
☆ execute执行权限 针对目录 一个目录拥有x权限说明可以进入或切换到该目录里cd命令 针对普通文件 一个普通文件拥有x权限说明可以执行该文件一般程序文件、脚本文件、命令都需要执行权限 执行权限xexecute用数字表示是1
rwx 读写执行 4 2 1
☆ -没有权限
没有任何权限用横杠-表示数字表示是0
5、理解UGO
UGO指的是用户身份每个字母代表不同的用户身份。 Uthe user who owns it 文件的拥有者(owner)或者创建者 Gother users in the file’s group 在文件的所属组默认是创建文件的用户的主组里的用户 Oother users not in the file’s group 既不是文件的创建者也不在文件属组里的用户称为其他人
注意
除了上面ugo以外还有一个字母aall users,表示所有用户包含ugo
6、查看文件的权限
# ls -l 文件名称
或
# ll 文件名称 注如果查看一个文件夹的权限建议使用-d