我的linux学习之入门到入坟(八)-用户和组

交流群:692356620,有不同的问题或见解可以来群里讨论,或者私聊我
qq:1251611916


何为用户和组

用户:区分不同人的身份和权限。即,用户存在的目的是为了实现资源的分配。

组:多个同一类型的用户在一起为一组,为组设置权限

用户分类

linux用户分为管理员和普通用户:

用户类型 用户ID

管理员 0

普通用户 1-65535 (UID是给计算机理解的)

其中普通用户又分为系统用户和登录用户

系统用户 用户ID 为1-999(为守护类进程获取系统资源而完成指定权限指派的

登录用户 用户ID为1000-60000(为了完成交互式登录使用的用户)

linux安全上下文

运行中的程序:进程(process)

​ 以进程发起者的身份运行

​ root:cat

​ tom:cat

​ 进程所能访问的所有资源的权限取决于进程的发起者的身份,即进程的发起者对进程所处理的对象有无权限。

linux通过安全上下文的概念完成用户权限的指派

​ 先判断用户是否是某文件的属主

​ 再判断用户是否属于某个属组

​ 最后定义为其它用户

linux用户组类型

1.私有组:创建用户时,如果没有指定所属的组,系统会创建一个与用户名相同名字的组。

2.基本组:用户的默认组。

3.附加组:默认组以外的其他组

私有组一定是基本组,基本组不一定是私有组。

Linux用户和组相关的配置文件

各配置文件说明

配置文件 作用

/etc/passwd 用户及其属性信息(名称、uid、基本组id等等)
/etc/group 组及其属性信息
/etc/shadow 用户密码及其相关属性
/etc/gshadow 组密码及其相关属性。在用户执行基本组切换时使用


第一字段 用户名
第二字段 密码占位符
第三字段 UID
第四字段 GID 以当前组为附加组的用户列表(分隔符为逗号)
第五字段 用户的描述信息
第六字段 用户家目录
第七字段 用户的登录shell

配置文件 / etc/group

第一字段 组名

第二字段 组密码

第三字段 GID

第四字段 以当前组为附加组的用户列表(分隔符为逗号)

配置文件 /etc/shadow
第一字段 登录名
第二字段 加密后的密码
第三字段 最近一次更改密码的日期
第四字段 密码的最小使用期限
第五字段 密码的最大使用期限
第六字段 密码警告时间段
第七字段 密码禁用期
第八字段 帐号的过期日期
第九字段 保留字段

密码复制性

密码复杂性策略:

​ 使用数字,大写字母,小写字母,及特殊字符中的至少3中

​ 足够长

​ 使用随机密码,不要使用又意义的单词或数字

​ 定期更换,不要使用最近曾经使用过的密码

用户管理

useradd

创建用户

语法:useradd [option] USERNAME

-u UID 创建指定UID的用户 [UID_min,UID_max定义在/let/login.defs文件中](事先不能存在)

-g GID 指定用户所属基本组,可为组名或GID(事先必须存在)

-G groupname ,… 附加组,可以有多个,逗号隔开且组必须事先存在

-c “COMMENT” 注释信息

-d /path/to/ddirectory 指定用户的家目录,此目录不能事先存在,否则将不会从/etc/skel中复刻环境设置文件

-s shell 这里的shell最好使用/etc/shells里面有的shell,
/etc/shells指定了当前系统可用的安全shell
-M 创建用户时不给其创建家目录
-r 添加一个系统用户

-D 直接打印/etc/default/useradd文件的内容或配合其它选项(例如-s SHELL)直接修改/etc/default/useradd文件中的默认值

用户删除命令

userdel

语法: userdel [option] USERNAME

  • r 删除用户时删除其家目录(默认不删除家目录)
id

查看账户的信息命令

id 查看用户的帐号属性信息

-u 查看UID

-g 查看GID

-G 查看Groups

usermod

修改用户帐号属性的命令
usermod 修改用户属性
语法:usermod [options] username
-u UID

-g GID

-a -G groupname 不使用-a选项,会覆盖此前的附加组

-d -m 改变用户家目录的同时把原来家目录的文件移动到新的家目录中

-e YYYY-MM-DD 指明用户帐号过期日期

-f INACTIVE 设定非活动期限

-L 锁定帐号。(luck)
被锁定的帐号在/etc/shadow文件中密码前面会有一个!感叹号
-U 解锁帐号(unluck)

chsh 修改用户的默认shell
语法:chsh [options] [username]
-s SHELL

su

切换用户命令
切换用户的方式 特点
su USERNAME 非登录式切换,即不会读取目标用户的配置文件
su - USERNAME 登录式切换,即会读取目标用户的配置文件。完全切换
su - 不指定用户时默认切换至root用户
root su至其他用户不需要密码,非root用户su至其他用户时需要输入目标用户的密码

语法:su [options] [-] [USER [arg]…]
-c ‘COMMAND’ 切换身份执行命令,命令执行结束后又回到原来的身份

bash的配置文件:

配置文件类型 配置文件路径
全局配置 /etc/profile
/etc/profile.d/.sh
/etc/bashrc
个人配置 ~/.bash_profile
~/.bashrc
配置文件类型 功能
profile类 为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
bashrc类 为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名
登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/
.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何读取配置文件?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

密码管理

passwd

密码管理命令

语法:passwd [options] [USERNAME]

–stdin 从标准输入获取用户密码,
例:echo "redhat"|passwd --stdin user1

-l 锁定用户
-u 解锁用户
-d 删除用户密码
-n mindays 指定最短使用期限
-x maxdays 指定最长使用期限
-w warndays 提前多少天开始警告
-i inactivedays 非活动期限,密码过期后到禁用前的这段时间

openssl

密码生成工具
语法:openssl command [ command_opts ] [ command_args ]
command 包含标准命令、消息摘要命令、加密命令
version 查看程序版本号
dgst 提取特征码
passwd 生成密码
rand 生成伪随机数

提取特征码
[root@localhost ~]# openssl dgst -md5 /etc/fstab

生成密码 openssl passwd -1 -salt string string一般为8位
[root@localhost ~]# openssl passwd -1 -salt hellotom

生成随机数 openssl rand -base64 NUM
NUM表示随机数的长度
[root@localhost ~]# openssl rand -base64 20

组管理

groupadd

创建组命令
语法:groupadd [options] GROUP
-g GID 指定GID

-r 添加一个系统组

groupdel

删除组命令
语法:groupdel [options] GROUP
删除组时只需要指定组名即可

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值