目录
一,用户账号和组账号概述
1,linux是基于用户身份对资源访问进行控制的,可以用用户账号和组账号作为划分。
1.2 用户账号的三种角色类型
超级用户: root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限,类似于 Windows 操作系统中的 管理员 ,只有当进行系统管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普通用户账号。root 拥有对系统的最高的管理权限 它的ID=0
普通用户:普通用户账号需要由 root 用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本)
UID:即每个用户的身份标示,类似于每个人的身份证号码。
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等。伪用户 :一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如:ftp,apache等。
1.3 组账号的两种类型
基本组:基于某种特定联系(如都需要访问 FTP 服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)
附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。
管理员组:0 root
基本组: 系统组:1-499(CentOS6) | 1-999(CENTOS7)
普通组:500+(CentOS6) | 1000+(CENTOS7)
用户和用户组的关系:用户是员工 组 是职位员工可以兼职多个岗位
总有一个最重要的身份 基本组 必须要一个组 有且唯一
附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和用户名称同名的主组(基本组)
二,用户账号文件
2.1 /etc/passwd
里面保存着用户名称,宿主目录,登录shell等基本信息
可以用cat /etc/passwd查看
root:表示用户名
x:表示用户有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件
0:表示用户的UID号
0:表示用户的GID号
root:表示描述性信息,此字段只是用来解释这个用户的意义
/root:宿主目录, 表示该用户登录后所在的默认工作目录
/bin/bash: 登录Shell 等信息,用户完成登录后使用的
2.2 /etc/shadow 影子文件
用于保存用户的密码和账号有效期等信息。
第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法,更加安全 加密原来用MD5 或 DES!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了
第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 18983 days"可以查看哪一天改过
第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。
第五列:密码有效期,默认99999(273年),表示永久生效
第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息
第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效
第八列:账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
第九列:保留,未使用
三,chage命令
用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
-d:密码最近一次被更改的日期。 第三个字段为:密码最后一次修改的时间
-m:密码必须更改的最小天数。0 表示随时可以更改。 第四个字段为:密码最小修改间隔时间
-M:密码保持有效的最大天数。 第五个字段为:密码的有效期
-W:密码过期前多少天开始警告用户。 第六个字段为:密码需要变更前的警告天数
-i:密码过期后的宽限天数。这段时间后,账号将被锁定。第七个字段为:宽限天数
-E:账号到期日期。账号将在这一天后失效。 第八个字段为:账号失效时间
-l:列出账号的密码过期信息。
示例
chage -d 2024-01-01 laowang 表示将最近的一次密码设置成最近日期
chage -m 7 laowang 表示至少7天后才能再次更改密码
chage -M 90 laowang 密码最长有效期是90天
chage -W 7 laowang 密码到期前7天开始警告
chage -I 30 laowang 密码到期30天后开始锁定
四,组账号文件
4.1:/etc/group
与用户账号文件相似用于保存组账号名称、GID 号组成员等基本信息
4.2 /etc/gshadow
用于保存组账号的加密,密码字串等信息(但是很少使用到)某一个组账号包含哪些用户成员,将会在 group 文件内最后一个字段中体 现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用 ,(逗号)分隔
五,组账号管理
5.1 groupadd命令,添加组账号
格式:groupadd [-g GID] 组账号名
5.2 添加删除组成员
gpasswd 【选项】 组帐号名
- -a:添加用户到组
- -d:从组删除用户
- -A:指定管理员,指定多个用,隔开
- -M:指定组成员和-A的用途差不多
- -r:删除密码
- -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
5.3 groupdel命令
groupdel+组账号名字=删除这个用户组
六,账号管理
6.1 useradd命令
useradd表示添加用户账号
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号)。
-G:指定用户的附加组名(或使用 GID 号)。
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
-s:指定用户的登录Shell。
实验:创建一个辅助管理员账号 admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”
6.2 用户账号的初始配置文件
新建用户帐号时,从/etc/skel目录中复制而来
添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文 件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括“.bash_logout”、“.bash_profile”和“.bashrc”
主要的用户初始配置文件
~/.bash_profile:文件中的命令将在该用户每次登录时被执行
~/.bashrc:文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登录系统)时执行
~/.bash_logout:文件中的命令将在用户每次退出登录时执行
6.3 删除用户账号
userdel命令
userdel [-r] 用户名
添加 - r 选项时,表示连用户的宿主目录一并删除 一般删除都加-r
6.4 更改用户设置
passwd 【选项】 用户名
- -d:清空指定用户的密码,仅使用用户名即可登录系统。
- -S:查看用户账户的状态(是否被锁定)
- -l:锁定用户账户
- -u:解锁用户账户
七,修改用户账号的属性
7.1:usermod命令用于修改用户账户属性的命令。使用 usermod
,你可以更改用户的各种属性,如登录名、主目录、默认 shell、用户组等
格式:usermod 【选项】 用户名
常见参数
-l:更改用户账号的登录名称(Login Name)。
-L:锁定用户账户
-U:解锁用户账户
-u:修改用户的 UID 号
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:修改用户的基本组名(或使用 GID 号)
-G:修改用户的附加组名(或使用 GID 号)
-s:指定用户的登录 Shell。
最典型的用例usermod
是将用户添加到组中 usermod -aG 组名 账号名
八,查看账号信息
id可以查询用户身份标识
格式:id 【用户名】
groups命令查询用户所属的组
格式:groups 【用户名】
九、查询已登录到主机的用户信息
w、who、users 查询已登录到主机的用户信息,其中w比较全就推荐用w就行。
pts说明是用远程工具连接的,比如1是xshell,后面的数字代表登录的时间顺序,越小证明登录的越早
User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
十,文件/目录的权限和归属
访问权限
- 读取r:允许查看文件内容,显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
- 可执行x:允许运行程序,切换目录
归属(所有权)
- 属主:拥有该文件或目录的用户帐号
- 属组:拥有该文件或目录的组帐号
第 1 个字符:表示该文件的类型,可以是
d(目录)、b(块设备文件)、c(字符设备文 件)、“-”(普通文件)、字母“l”(链接文件)
除去文件类型还有九个位置,分为三组
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
-R:递归修改指定目录下所有文件,子目录的归属
umask决定了进程创建文件或目录时的默认权限
创建文件,文件夹 自动
文件夹是777,文件是666,没有x