Linux用户和组

1、用户

1.1 用户分类

Linux用户分为管理员和普通用户两种

用户类别用户ID
管理员1-999
普通用户1000-65535

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

用户类别用户ID
系统用户1-499(为守护类进程获取系统资源而完成权限指派的用户)
登录用户500-6000(为了完成交互式登录使用的用户)

1.2 Linux安全上下文

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

  • 以进程发起者的身份运行
  • root:cat
  • tom:cat
  • 进程所能够访问的所有资源的权限取决于进程的发起者的身份

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

  • 先判断用户是否某文件的属主
  • 再判断用户是否属于某个组
  • 最后定其为其他用户

1.3 Linux用户组类别

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

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

2.1 各配置文件说明

配置文件/etc/passwd/etc/group
第一字段用户名组名
第二字段密码占位符组密码
第三字段UIDGID
第四字段GID以当前组为附加组的用户列表(分隔符为逗号)
第五字段用户的描述信息
第六字段用户家目录
第七字段用户登录shell
配置文件/etc/shadow
第一字段登录名
第二字段加密后的密码
第三字段最近一次更改密码的日期
第四字段密码的最小使用期限
第五字段密码的最大使用期限
第六字段密码警告时间段
第七字段密码禁用期
第八字段账号的过期日期
第九字段保留字段

2.2 加密方法

对称加密: 加密和揭秘使用同一个密钥
公钥加密: 每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)
单向加密: 也叫散列加密,提取数据特征码,能加密不能解密,常用于做数据完整性校验

单向加密特点:
雪崩效应(初始条件的微小改变,将会引起结果的巨大改变)
定长输出

1. MD5:Message Digest,128位定长输出
2. SHA1:Secure Hash Algorithm,160位定长输出
3. SHA224:224位定长输出
4. SHA256:256位定长输出
5. SHA384:384位定长输出
6. SHA512:512位定长输出

2.3 Linux用户密码加密方式

Linux密码是使用的单项加密方式进行加密

密码复杂性策略:

  • 使用数字、大写字母、小写字母及特殊字符中至少3种
  • 足够长
  • 使用随机密码,不要使用有意义的单词或数字
  • 定期更换,不要使用最近曾使用的密码

3、用户和组相关的管理命令

3.1 用户管理

3.1.1 用户创建命令 useradd
#语法:useradd [option] USERNAME
-u UID	#[UID_MIN,UID_MAX]定义在/etc/login.defs文件中
-g GID	#指定用户所属基本组,可为组名或GID
-G groupname,...	#附加组,可以有多个,用逗号隔开。组groupname必须事先存在
-c "COMMENT"	#注释信息
-d /path/to/directory	#指定用户的家目录。此目录必须不能实现存在
			#否则将不会从/etc/skel 中复制环境配置文件
-s shell	#这里的shell最好使用 /etc/shell s里面的shell
		# /etc/shells指定了当前系统可用的安全shell
-M	#创建用户时不给其创建家目录
-r	#添加一个系统用户
-D	#直接打印 /etc/default/useradd

# 示例
useradd jlin	#创建jlin用户
useradd -u 1001 jlin	#创建jlin用户并指定uid为1001
useradd -u 1001 -g 1001 jlin	#创建jlin用户并指定uid和gid
	uid必须事先不存在,gid必须事先存在
useradd -r -M -s /sbinnologin httpd	#创建一个系统用户


3.1.2 用户删除命令 userdel
// 语法:userdel [option] USERNAME
-r	#删除用户的同时删除其家目录 (userdel默认不会删除其家目录)

#示例
userdel jlin	#删除用户jlin
userdel -r jlin	#删除用户jlin并删除家目录
3.1.3 查看用户账号信息命令 id
id	#/查看用户的账号属性信息
	-u	#查看UID
	-g	#查看GID
	-G	#查看Groups
3.1.4 修改用户账号属性的命令
// usermod    修改用户属性
// 语法:usermod [options] USERNAME
-u UID
-g GID
-a -G groupname	#不使用-a选项,会覆盖此前的附加组
-d -m	#改变用户家目录的同时把原来家目录的文件移动到新的家目录总
-e YYYY-MM-DD	#指明用户账号过期日期
-f INACTIVE	#设定非活动期限
-L	#锁定账号
	#被锁定的账号在 /etc/shadow文件中密码前面会有一个!感叹号
-U	#解锁账号

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

// 示例
usermod -s /bin/bash httpd
usermod -u 2000 jlin	#修改用户jlin的uid
3.1.5 切换用户命令 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

3.2 密码管理

3.2.1 密码管理命令 passwd
语法:passwd [options] USERNAME
--sidin	#从标准输入获取用户密码
	#例:echo "redhat" /passwd --stdin user1
-l	#锁定用户
-u	#解锁用户
-d	#删除用户密码
-n mindays	#指定最短使用期限
-x maxdays	#指定最长使用期限
-w warndays	#提前多少天开始警告
-i inactivedays	#非活动期限,密码过期后到禁用前的这段时间
3.2.2 改变用户密码过期信息命令 chage
// 语法:chage [options] USERNAME
-d	#最近一次的修改时间
-E	#过期时间
-I	#非活动时间
-m	#最短使用期限
-M	#最长使用期限
-W	#警告时间
3.2.3 密码生成工具 openssl
// 语法:openssl command [command_opts] [command_args]
command	#包含标准命令、消息摘要命令、加密命令
    version	#查看程序版本号
    dgst	#提取特征码
    passwd	#生成密码
    rand	#生成伪随机数

// 提取特征码
[root@JLin ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= 152a0dd354486b0b80b07d6b28d9f7cc

// 生成密码 openssl passwd -1 -salt string	#string一般为8位
[root@JLin ~]# openssl passwd -1 -salt hellotom
Password: 
$1$hellotom$o9rUZ07NstylvbqW9RrdV/

// 生成随机数 openssl rand -bash64 NUM
#NUM表示随机数的长度
[root@JLin ~]# openssl rand -base64 20
+EZdn+ESycF1Ae7P4Dzf7UkbZgU=
3.2.5 破解密码
1.关机
2.开机
3.在内核上按e键
4.找到UTF8的行,在这一行中加上rd. break
5.ctrl+x
6.mount -o remount, rw /sysroot
7.chroot /sysroot
8.echo"密码"passwd --stdin root
9.touch /.autorelabel
10.exit
11.exit

3.3 组管理

3.3.1 创建组命令 groupadd
// 语法:groupadd [options] GROUP
-g GID	#指定GID
-r	#添加一个系统组
3.3.2 修改组信息命令 groupmod
// 语法:groupmod [options] GROUP
-g GID	#修改指定组的GID
-n groupname	#修改组名
3.3.3 删除组命令 groupdel
// 语法:groupdel [options] GROUP
// 删除组时只需要指定组名即可
3.3.4 给组设定密码命令 gpasswd
// 语法:gpasswd [option] GROUP
-a,--add USER	#将用户添加至组
-d,--delete USER	#将用户从组中删除
-r,--delete-password	#删除组密码
3.3.5 切换组命令 newgrp

将当前用户临时切换至新的基本组,这里需要用到gpasswd设置的组密码,使用newgrp登录至新的基本组后可以使用exit退出,推出后其原本组不变

// 语法:nwegrp [-] [group]

[root@JLin ~]# groupadd jlin
[root@JLin ~]# gpasswd jlin 
Changing the password for group jlin
New Password:
Re-enter new password:
[root@JLin ~]# useradd lin
[root@JLin ~]# su - lin
[root@JLin ~]$ id
uid=1001(lin) gid=1002(lin) groups=1002(lin)
[root@JLin ~]$ newgrp jlin
Password:
[root@JLin ~]$ id
uid=1001(lin) gid=1001(jlin) groups=1001(jlin),1002(lin)
[root@JLin ~]$ exit 
exit
[root@JLin ~]$ id
uid=1001(lin) gid=1002(lin) groups=1002(lin)
### 回答1: Linux用户管理是指在Linux系统中对用户进行管理和配置的过程。通过用户管理,可以实现对系统资源的访问控制和权限管理,保障系统的安全性和稳定性。 在Linux系统中,每个用户都有一个唯一的用户名和用户ID(UID),用于标识该用户在系统中的身份。同时,每个用户还可以属于一个或多个用户用户也有唯一的名和ID(GID),用于管理用户的权限和资源访问。 Linux用户管理主要包括以下内容: 1. 用户管理:包括创建、修改、删除用户账号,设置用户密码和权限等。 2. 管理:包括创建、修改、删除用户,将用户添加到中,设置权限等。 3. 权限管理:包括设置文件和目录的访问权限,控制用户对系统资源的访问权限等。 4. 账号锁定和解锁:可以通过锁定用户账号来保护系统的安全性,防止非法访问和攻击。 总之,Linux用户管理是Linux系统中非常重要的一部分,对于系统的安全性和稳定性起着至关重要的作用。 ### 回答2: Linux是一个开源的操作系统,它允许用户自由配置和管理系统各个方面。其中,用户Linux系统中的两个非常重要的概念,对于安全性和权限控制有着至关重要的作用。 在Linux系统中,每个用户都有一个唯一的用户名和UID(User ID),同时还可以属于一个或多个用户用户是一拥有某些共同权限的用户的集合。在Linux中,可以通过一些命令来管理用户用户,如useradd、userdel、groupadd、groupdel等命令。 用户管理是指Linux系统管理员通过控制用户的权限和访问权限来保护系统安全。在Linux系统中创建一个新用户可以使用useradd命令,通过指定用户名、密码、UID等参数完成用户创建。除了创建用户还可以修改用户信息、查看用户信息等操作。可以使用usermod命令来修改用户信息,比如修改用户名、密码等。可以使用userdel命令来删除用户管理是指Linux系统管理员通过创建用户以简化用户管理和控制访问权限。在Linux系统中可以通过groupadd命令创建一个新用户,然后在创建新用户时,可以指定用户属于哪个用户。可以通过gpasswd命令来修改用户的密码、添加或删除用户成员等。用户的权限也可以通过chmod命令来设置。 在实际使用中,Linux用户管理可以帮助管理员完成对系统的安全性和文件权限的控制,从而保护系统的完整性和保密性。同时对用户权限进行合理划分,能够有效防范内部攻击和恶意操作。总之,合理的用户管理是保证Linux系统安全性和完整性的关键所在。 ### 回答3: Linux操作系统作为开源操作系统的代表,它采用了强大的用户管理机制来维护系统的安全性和灵活性。 在Linux中,每个用户都具有唯一的标识符和权限,这样可以控制每个用户可以访问什么和拥有哪些权限。以下是关于Linux用户管理的更详细说明。 1. 用户管理 Linux操作系统通过创建用户来分配系统资源和限制用户访问的权限。在Linux中,用户是登录到系统的实体,每个用户都拥有独立的家目录和特定的登录名。 Linux系统中包含两种类型的用户: - 一般用户:这些用户拥有系统的普通权限。 - 系统用户:这些帐户是Linux中用于运行系统程序和服务的帐户。 在Linux中创建新用户的命令是“useradd”,创建新用户的同时可以指定该用户的家目录、密码、等信息。在创建用户后,可以使用命令“passwd”来设置用户的密码。可以使用命令“usermod”来修改用户信息,例如可以修改用户的密码、家目录、等信息。要删除用户,可以使用“userdel”命令。 2. 管理 Linux中的一个概念,每个用户都必须属于一个或多个。操作系统将所有信息存储在“/etc/group”文件中。Linux系统中有两种类型的: - 一般:这些用于用户并控制访问权限。 - 系统:这些用于管理系统服务和进程。 在Linux中创建新的命令是“groupadd”,创建新的同时可以指定该的GID和其他信息。在创建后,可以使用命令“groupmod”来修改的信息,例如可以修改的名称或GID。要删除,可以使用“groupdel”命令。通过将用户加入中,可以控制用户对文件和目录的访问权限。这种访问权限在Linux文件系统中称为“文件访问控制列表”(ACL)。 总之,Linux用户管理机制是系统的关键部分,能够提供安全和灵活性。正确管理用户可以帮助管理员保护系统安全,并允许用户获得所需的访问权限。掌握Linux用户管理的技能,将有助于管理员更好地管理和维护Linux系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉只只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值