账户管理

时间:2024-03-12 11:19:51

一、用户账号管理

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文件直接编译修改

三、查询命令--idgroupsfingerwwhoamiwho

1id命令

作用:查询用户身份表示不

格式: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字段,各字段代表的含义:

第一字段:用户账号名

第二字段:加密的密码,!!代表密码被被锁定

第三字段:上次修改密码的时间,距1979-01-01过去多少天

第四字段:密码最短有效期(距上次密码修改起多少天内不能再次修改密码)单位“天”。“0”表示随时课修改密码

第五字段:密码最长有效期

第六字段:提前多少天警告用户口令将过期

第七字段:在密码过期之后多少天禁用此用户

第八字段:密码过期日期,若设置则显示为过期日期距197011日多少天

第九字段:保留字段(未使用)

扩展知识点

一、ACL权限控制

  1. ACL概述

ACLAccess Control List,主要作用可以提供除属主、属组、其他人的rwx权限之外的细节权限设定。

  1. 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:权限   【更改权限掩码】

二、特殊权限 SUIDSGIDSBIT

1,SUIDset uid)概述

SUID特殊权限的特点:

SUID权限仅对二进制程序(binary program)有效

执行者对改程序需要具有可执行权限

SUID权限仅在执行该程序的过程中有效

执行者将具有该程序拥有者的权限

2、SGIDset gid)概述

SUID不同:SGID可以针对文件或目录来设定,对于文件来讲,SGID对二进制程序有用,若程序执行者对于该程序来说具备x的权限,则执行者在执行的过程中将会获得该程序群组的支持。

     SUID相同:对二进制有效以外,SGID还能够用在目录上,当一个目录设定了SGID的权限后,用户若对此目录具有rx权限,该用户能进入此目录后,在此目录下的有效群组将变为目录的群组,即若该用户具有w权限,新建文件或目录后我们会发现,该用户所建立的文件或目录的属组为上层(具有SGID设置)的目录的属组。
   3SBITsticky 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”查询光盘是否挂载

 

 

 

查询未安装的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软件包的依赖关系

 

 

 

 

 

 

 

 

 

 

34.useradd 创建用户
35.userdel 删除用户
36.passwd 设置密码
37.usermod 修改用户
38.history 查看历史命令
39.gpasswd 修改组密码
40.gourpadd 创建组
41.id 查看用户id
42.groups 查看用户属于的用户组
43.w 查看登录用户的详细信息
44.who 查看登录用户信息
45.whoami 查看当前登录用户
46.chmod 修改用户权限
47.chown 修改用户属主属组
48.umask 修改权限掩码
49.echo 回显