useradd 创建用户
userdel 删除用户
passwd 设置密码
usermod 修改用户
history 查看历史命令
gpasswd 修改组密码
gourpadd 创建组
id 查看用户id
groups 查看用户属于的用户组
w 查看登录用户的详细信息
who 查看登录用户信息
whoami 查看当前登录用户
chmod 修改用户权限
chown 修改用户属主属组
umask 修改权限掩码
echo 回显
一、用户账号管理
1、用户账号概述
Linux是一个多用户,多任务,多进程的服务器操作系统
用户角色:超级用户(管理员),普通用户,程序用户
用户:使用者在计算机内部的身份标识
用户账号的常见分类:
超级用户:root uid=0 gid=0 权限最大(使用需要严谨)
普通用户:1000<=uid<=60000受到权限限制,一般在宿主目录下有完整权限
程序用户:1<=uid<=999 应用程序运行时需要通过用户身份获取相应的系统资源,通常不能用于登录系统或管理系统
2、添加用户账号useradd命令
注意:在ubuntu系统系统中:adduser
格式:useradd[选项]...用户名
常用选项:
-u:指定uid标记号
-d:指定宿主目录,默认为/home/用户名
-e:指定账户失效时间(YYYY-MM-DD)
-M:不为用户建立初始化宿主目录
-s:指定用户的登录shell
-g:指定用户的基本组名(或gid号),系统中创建用户时,默认会创建一个同名的基本组
-G:指定用户的附加组名(或gid号)
-c:添加备注,显示在/etc/passwd第五字段
3、用户账号的初始配置文件
文件来源:新建用户账号时,用户宿主目录内容从/etc/skel/目录中复制而来
主要的用户初始配置文件-->脚本(只对当前用户生效):
~/.bash_profile:每次登录时执行
~/.bashrc:每次进入新bash环境时执行
~/.bash_logout:每次退出登录时执行
~/.bash_history:用户登录时从该文件加载历史命令记录
History 查看历史命令信息
History-c 清除历史命令信息
历史命令引用:
!序号
!命令开头
Ctrl+r
全局初始化配置文件,对所有用户生效
4、设置/更改用户口令 passwd命令
格式:passwd[选项]...[用户名]
不指定用户名,默认修改的是当前登录用户的密码,普通用户可以修改自己的密码,root可以修改任意用户的密码。
常用选项:
-d:清空用户密码(和不设置密码不一样)
-l:锁定用户账户
-s:查看用户账号的状态(是否被锁定)
-u:解锁用户账号
-x,--maximum=DAYS:密码的最长有效时限
-n,--minimum=DAYS:密码的最短有效时限
-w,--warning=DAYS:在密码过期前多少天开始提醒用户
-i,--inactive=DAYS:当密码过期后经过多少天该账号会被禁用
5、修改用户属性usermod命令
格式:usermod[选项]...用户名
常用选项:
-l:更改用户账号的登录名字
-L:锁定用户账号
-U:解锁用户账号(passwd -l锁定的用户,通过usermod -U解锁两次)
以下选项与useradd命令中的含义相同:-u、-d、-e、-s、-c、-g、-G
6、删除用户账户userdel命令
格式:userdel用户名
常用选项:
-r:删除用户的同时删除用户的宿主目录
二、1、组账号概述
组:用户集合,组的存在便于管理多个用户的权限
组账号分类:
基本组(私有组)
附加组(公共组)
组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow;保存组账号的密码信息(较少使用)
第1个字段:组名
第2个字段:密码占位符
第3个字段:GID
第4个字段:组内的成员信息
2、添加组账号groupadd命令
格式:groupadd[-g GID]组账号名
常用选项:-g GID
3、设置组账号密码/添加、删除组成员gpasswd命令
格式:gpasswd[选项]...组账号名
常用选项:
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
增加或删除组成员,也可以vi编辑器对/etc/group文件直接编译修改
三、查询命令--id、groups、finger、w、whoami、who
1、id命令
作用:查询用户身份表示不
格式:id[用户名]
2、groups命令
作用:查询客户所属的组
格式:groups[用户名]
3、finger命令(需安装)
作用:查询账号的详细信息
格式:finger[用户名]
4、w命令
作用:查询已登录到主机的用户信息
5、Whoami
作用:查询当前登录的账号名
示例:
[root@localhost~]#whoami
root
6、Who
作用:与w命令类似,查询查询已登录到主机的用户
示例:
[root@localhost~]#who
Root tty1 2018-12-16 21:27
Root pts/0 2018-12-16 21:27(192.168.200.2)
Root pts/1 2018-12-16 21:23(192.168.200.2)
四、权限及归属管理
1、基本访问权限
读权限 r:针对目录可以查看目录的列表(ls),针对文件可以查看文件内容(cat more less head tail)
写权限 w:针对目录可以改动目录的列表内容(rm touch mkdir cp mv),针对文件可以修改文件内容(vim sed)
可执行 x:针对目录可以切换(cd),针对文件允许运行程序(二进制文件,脚本文件)
2、归属(所有权)
属主:拥有该文件的用户账号
属组:拥有该文件的组账号
3、查看文件的权限和归属
第一位表示文件类型
-:表示一般文件
d:表示目录
l:表示软链接(快捷方式)
p:表示pipe管道文件
s:表示socket通信套接字文件
c:表示字符设备文件
b:表示块设备文件
Drwxr-xr-w的意思是一个权限为755的目录
-rw-r--r--的意思是一个权限为644的文件
目录满权限:777,默认是755
文件满权限:666,默认是644
4、设置文件或目录的权限chmod命令
格式:
Chmod[-R][ugoa][+-=][rwx]参数
Chmod[-R][nnn]参数
常用选项:
-R:表示以递归的方式设置目录下的所有子目录及文件的权限
u:属主
g;属组
o:其他人
a:所有人
+:添加
-:删除
=:重置
nnn:8进制的数字权限,如:777 666 644 755等
注意:在建立目录时用-m选项可以直接设置新建目录的权限
5、设置文件的归属chown命令
格式:chown:属主 文件
Chown:属组文件=chown属组 文件=chgrp属组
Chown属主:属组 文件
6、权限掩码umask
1.作用:k控制新建的文件或目录的权限
2.umask值与新建文件、目录权限对照表
/etc/passwd
作用:保存用户名称、宿主目录、登录shell等基本信息,每一行对应一个用户的账户记录。
共7各字段,各字段代表含义:
第一字段:用户账户名
第二字段:密码占位符(密码保存到了影子文件)
第三字段:uid编号
第四字段:gid编号
第五字段:用户备注信息(用户全名)
第六字段:用户宿主目录(家目录)
第七字段:登录时分配到的shell解释器(若shell类型为/sbin/nologin则不能登录)
密码破解:字典 穷举(暴力破解)
共9字段,目前只启用前8字段,各字段代表的含义:
第一字段:用户账号名
第二字段:加密的密码,!!代表密码被被锁定
第五字段:密码最长有效期
第六字段:提前多少天警告用户口令将过期
第七字段:在密码过期之后多少天禁用此用户
第九字段:保留字段(未使用)
扩展知识点
一、ACL权限控制
- ACL概述
ACL(Access Control List),主要作用可以提供除属主、属组、其他人的rwx权限之外的细节权限设定。
- ACL的权限控制
(1) 使用者(user)
(2)群组(group)
(3)默认权限掩码(mask)
3.启动ACL
若未安装,挂载光盘后
4、acl的设置 setfacl命令
格式:setfacl:[选项][acl参数]目标文件或目录
常见选项;
-m:设置后续的acl参数,不可与-x一起使用
-x:设置后续的acl参数,不可与-m一起使用
-b:设置后续的acl参数
-k:设置后续的acl参数
-R:递归设置acl参数
-d:设置后续的acl参数,只对目录有效
ACL参数格式:
u:用户名:权限 【给某个用户设定权限,若不添加用户名,默认修改属主权限】
g:组名:权限 【给某个组设定权限,若不添加组名,默认修改属组权限】
m:权限 【更改权限掩码】
二、特殊权限 SUID、SGID、SBIT
1,SUID(set uid)概述
SUID特殊权限的特点:
SUID权限仅对二进制程序(binary program)有效
执行者对改程序需要具有可执行权限
SUID权限仅在执行该程序的过程中有效
执行者将具有该程序拥有者的权限
2、SGID(set gid)概述
与SUID不同:SGID可以针对文件或目录来设定,对于文件来讲,SGID对二进制程序有用,若程序执行者对于该程序来说具备x的权限,则执行者在执行的过程中将会获得该程序群组的支持。
与SUID相同:对二进制有效以外,SGID还能够用在目录上,当一个目录设定了SGID的权限后,用户若对此目录具有r与x权限,该用户能进入此目录后,在此目录下的有效群组将变为目录的群组,即若该用户具有w权限,新建文件或目录后我们会发现,该用户所建立的文件或目录的属组为上层(具有SGID设置)的目录的属组。
3、SBIT(sticky bit)粘滞位概述
当目录权限x的位置变为t时,即该目录设有sbit粘滞位权限,主要作用是该目录下的文件和目录,其属主与root用户具有删除该文件或目录的权限,增强安全性。
rpm应用程序与系统命令的对比
文件位置
系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中。
主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
系统命令:一般只在字符操作界面中运行。
应用程序:根据实际需要,有些程序可在图形界面中运行。
运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
常用的软件包封装类型
查询已安装的RPM软件信息
格式:rpm-q[子选项][软件名]
用法:结合不同的子选项完成不同查询
rpm-q软件名查询指定软件是否安装(“-q”选项时实际上调用了“/usr/bin/rpmquery”程序完成查询工作)。
rpm-qa查询系统已经安装所有的软件信息。
rpm-qalgrep软件名查询当前系统安装了哪些与软件名称相关的包。
rpm-qi软件名查询已安装软件的详细信息。
rpm-ql软件名查询已安装软件安装到什么地方去了。
rpm-qf文件的绝对路径查询该文件由哪个软件产生 。
rpm-qc软件名 查询软件生成的配置文件。
rpm-qd 软件名 查询软件生成的文档文件。
挂载光盘镜像文件(将CentOS操作系统ISO镜像文件放入虚拟机光驱,注意:设备状态的 V必须打)
[root@localhost~]#mountlgrep"sr0”查询光盘是否挂载
挂载光盘镜像文件(将centos操作系统ISO镜像文件放入虚拟机光驱,注意:设备状态的√必须打)
mount|grep“sr0”查询光盘是否挂载
umount/dev/sr0卸载光盘/dev/sr0=/dev/cdrom
mkdir/media/cdrom准备空目录作为挂载点
mount/dev/sr0/media/cdrom挂载光盘
ls-l/medie/cdrom/packages查看rpm软件包列表
查询未安装的RPM包文件
格式:rpm-qp[子选项]RPM包文件
用法:结合不同的子选项完成不同查询
rpm-qpi完整软件包名称通过rpm包文件查看该软件的详细信息
rpm-qpl完整软件包名称查看rpm安装包内所包含的目录、文件列表
rpm-qpc完整软件包名称查看rpm安装包内包含的配置文件列表
rpm-qpd完整软件包名称查看rpm安装包内包含的文档文件列表
安装或升级RPM 软件
格式:rpm[选项]RPM包文件...
rpm-ivh完整软件包名称
-i安装一个新的rpm软件包 -h以“#”号显示安装的进度。
-V显示安装过程中的详细信息
--force强制安装(主要用在安装旧的软件代替新的软件)
--nodeps安装、升级或卸载软件时,忽略依赖关系
--test 测试安装
卸载指定的RPM软件。
rpm-e 软件名
升级安装
rpm-Uvh完整软件包名称#无论旧版本软件是否安装,都安装新版本,
rpm-Fvh完整软件包名称#若旧版本软件没有安装,则放弃安装新版本
配置本地yum仓库
(务必把光盘镜像文件挂载到/media/cdrom下)
yum命令:便于自动解决rpm软件包的依赖关系