账号密码
概述
用户账号
-
超级用户:
root 用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的 -
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限
-
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行,如bin、 daemon、ftp、 mail等
组账号
-
基本组( 私有组) :
基本组账号只有一个,一般为创建用户时指定的组
在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号 -
附加组(公共组) :
用户除了基本组以外,额外添加指定的组
UID、GID
- UID:用户识别号
- GID:组识别号
账号类型 | CentOS-5/6 | CentOS-7 |
---|---|---|
root用户 | 0 | 0 |
程序用户 | 1~499 | 1~999 |
普通用户 | 500~65535 | 1000~65535 |
用户账号文件
Passwd
- 基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改
- 文件位置:/etc/passwd
- 每一行对应一个用户的账号记录
作用
保存用户名称、宿主目录、登录shell等基本信息
举列
一行字段由 “:” 来分割,总共分为七份
-
注释一:在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符“x”
-
注释二:/bin/bash为可登陆系统,/sbin/nologin和/bin/ false为禁止用户登陆系统
shadow
- 默认只有root 用户能够读取shadow 文件中的内容,且不允许直接编辑该文件中的内容
- 文件位置:/etc/shadow
- 每一行对应一个用户的密码记录
作用
保存用户的密码、账号有效期等信息
举列
一行字段由 “:” 来分割,总共分为九份
添加用户账号
useradd、adduser
在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录
若未明确指定用户的宿主目录,则在/home 目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/ gshadow
文件中
常用选项
命令 | 作用 |
---|---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,且不需要事先创建目录 |
-e | 指定用户的账户失效时间,可使用YYYY- -MM-DD的日期格式 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须已存在 |
-G | 指定用户的附加组名(或使用GID号),对应的组名必须已存在 |
-M | 不建立宿主目录 |
-s | 指定用户登录Shell (/bin/bash为可登陆系统,/sbin/nologin和/bin/ false为禁止用户登陆系统) |
举列
第一种
创建一个普通用户
- -u 指定UID号为10000
- -d 宿主目录为cc222
- -G 附加组名root
- -g 基本组名wheel
查看passwd
第二种
创建一个不登录操作系统,不建立宿主目录的用户
- M 不建立宿主目录
- -s 指定用户,/sbin/nologin 为禁止登录系统
- -e 账户失效日期
查看shadow
设置/更改用户口令passwd
方法一
- root用户可以指定用户名作为参数(,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码
- 普通用户却只能执行单独的“passwd"命令修改自己的密码
常用选项
命令 | 作用 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户,锁定的用户账号将无法再登录系统 |
-S | 查看用户账户的状态(是否被锁定) |
-u | 解锁用户账户 |
模板
-
直接passwd+用户名 输入密码完成,命令选项可不填
-
-d 测试
密码清空后,该账户不需要密码即可登录
方法二
echo “密码” | passwd - -stdin 用户名
修改用户账号属性usermod
修改用户账号的属性usermod
命令
usermod 【选项】…用户名
常用选项
命令 | 作用 |
---|---|
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用YYYY-MM-DD 的日期格式 |
-g | 修改用户的基本组名(或使用GID号) |
-G | 修改用户的附加组名(或使用GID号) |
-s | 指定用户的登录Shell |
-l | 更改用户账号的登录名称 |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
模板
更改用户cc111为cc333
- 使用-l命令更改
删除用户账号userdel
命令
userdel 【r】 用户名
- 添加 -r 选项时,表示连用户的宿主目录一并删除
模板
删除用户 cc333
- userdel -r cc333
用户账号的初始配置文件
文件来源
- useradd命令添加一个新的用户账号后会在该用户的宿主
目录中建立一些初始配置文件 - 这些文件来自于账号模板目录 /etc/skel/ ,基本上都是隐藏
文件
初始配置文件(对当前配置有效)
-
~/.bash_ profile
此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的~/.bashrc文件 -
~/.bashrc
此文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashrc文件
我们可以在该目录下放置需要每次使用的命令,这里放置了PS1修改颜色
bashrc文件内的内容每次都会被执行,随意切换bash也不影响
- ~/.bash_ logout
此文件中的命令将在用户每次退出登录或退出bashshe11时执行
退出时执行,用处不大
全局配置文件(所有用户有效)
-
/etc/profile
这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/profile 命令使profile文件被读取
登录操作系统第一个被执行的文件,执行完后才会相互调用 -
/etc/profile.d/
这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本 -
/etc/bashrc
每一个运行bash shell的用户都会执行此文件,可通过执行bash命令打开一个新的bash shell时, 使bashrc文件被读取
PATH变量用于设置可执行程序的默认搜索路径
PATH生效的原理
- 每次启动系统的时候会初始化命令,会执行/etc/profile和~/.bash_ profile
- /etc/profile会将路径/usr/local/bin、/usr/bin、 /usr/local/sbin 、/usr/sbin追加到PATH中去
- 然后调用 /etc/profile.d 目录下的脚本