Linux的基础知识用户和用户组
因为elasticsearch的启动时不能用root的权限来启动的,所以特意来学习一下的linux的用户和用户组的概念。
从/etc/password说起
你会注意到一下几点讯息:
- 每一行文本都有数个英文格式的冒号(:),它们对每一行文本进行了分割
- 仔细数一数,每行文档的冒号数量都是相同的
- 再仔细数一数,如果我们把冒号后的东西叫字段的话,每行文本中的字段数目是相同的
- 首行的root就是我们的账号
这就是我们的用户列表。
一些常见的分组形式
- 通过用户类型分组,我们可以吧用户分为:
- 管理员
- 普通用户
- 通过用户组类型分组,我们可以吧用户组分为:
- 管理员组
- 普通用户组
- 从用户的角度,我们可以把用户组分为
- 基本组
- 额外组
- 对于普通用户,我们还可以分为:
- 系统用户
- 普通用户
- 因此,对于普通用户组,我们也可以分为:
- 系统用户组
- 普通用户组
理解用户
我们知道/etc/password相当于操作系统用户信息的数据库。只不过不是有我们创建,而是有操作系统创建的,所以叫做系统用户。
对于这类,我们识别用户是通过用户名,因为用户名好记。而计算机觉得数字更好记一些,于是创建用户时系统会为其分配一个唯一的特征码,用以识别该用户,这个特征码叫UID。同样,用户组也有特征码,叫做GID。
- 0 表示管理员
- 1-500 表示系统用户
- 501-65535 表示普通用户
- 不同的linux发行版,这些数字可能不一样
/etc/passwd中的字段分析
/etc/passwd中的字段分别表示如下信息
* ACCOUNT:用户名
* PASSWORD:密码占位符
* UID:用户ID
* GID:用户组ID
* COMMAND:注释信息
* HOME DIR:用户家目录
* SHELL:用户的默认shell
我们来复习一下关于加密的基础知识。我们通常用到的加密方式有以下几种:
- 对称加密:使用同一套密码进行加密和解密
- 公钥加密:每一个密码以私钥(secret key)和公钥(public key)成对出现,公钥进行的加密使用与其配对的私钥解密,反之亦然,相对于对称加密,速度很慢,一般不用于加密,而是秘钥交换。
- 单向加密:只能加密不能解密。
- MD5:定长128位输出特征码
- SHA1:定长169位输出特征码
- 还有其他方式:主要体现在特征码输出长度的不同
- 单向加密的特点:
- 不可逆
- 雪崩效应:数据的微小改变,会引起特征码的巨大变化
- 定长输出:不管加密的内容长度多少,输出的特征码的长度都是一样的
- 加盐:如果两个用户使用相同的密码,那么经过MD5散列加密后的特征码就是一致的,如果一个用户偶然发现另一个用户的特征码和他自己的是一样的,那么就可以推断出另一个用户的密码和自己是一样的。这是不太安全的。我们往密
- 码中额外添加点杂质。这样加密后的特征码就千差万别了。这个过程就是所谓的加盐。
useradd命令:添加用户
linux中使用useradd命令添加一个用户。这个命名很简单。
在查看/etc/password的对应内容。
系统自动设置了用户的一些属性,比如UID,GID,HOME DIR等。
- useradd -u UID:指定UID
- useradd -g GID/GROUPNAME:指定默认组,可以是GID或者GROUPNAME,同样也必须真实存在
- useradd -G GROUPS:指定额外组
- useradd -c COMMENT:指定用户的注释信息
- useradd -d PATH:指定用户的家目录
- useradd -s SHELL:指定用户的默认shell
userdel 命名:删除用户
- userdel USERNAME:删除用户
- userdel -r USERNAME:删除用户的同时删除用户家目录
id命令 显示账号属性信息
- id -g USERNAME:显示默认组ID
- id -G USERNAME: 显示附加组ID
- id -u USERNAME: 显示UID
- id -n -g/-G/-U: 显示默认组/附加组/用户的名称
finger 命令:检索用户信息,比使用id命令更加友好
usermod 命令:修改用户信息
- 基本用户和useradd 类似
passwd
- passwd 修改用户的密码