Linux账户与安全
Linux账户与安全
Linux系统中对账户与组的管理是通过ID号来实现的,我们在登陆系统时,输入用户名与对应的密码,后台系统会将用户名与密码转为ID号后,再判断用户是否存在,并对比密码是否匹配。
Linux中,用户ID号被称为UID,组ID号被成为GID,其中,UID为0,代表超级管理员,1~499之间的ID号系统会预留下来,这样我们创建的普通用户ID号从500算起。
Linux的组有基础组和附加组之分,一个用户只能加入一个基本组,但可以同时加入多个附加组。
创建用户的时候,系统会默认自动创建同名的组,并设置用户加入该基本组中。
1.查看当前登录用户: whoami
2.用户账号的管理 ※※※※
2.1.1 创建账户与组
useradd创建账户,groupadd创建组账户,需要注意:需要有管理员权限。
(1)useradd 创建新账号
常用参数选项:
-c 设置账户的描述信息
-d 设置账户的家目录,默认为/home/用户名
-g 设置账户的用户组
-G 设置账户的附加组,多个附加组用逗号隔开
-s 指定账户的登录shell
-M 不创建家目录。一般与-s使用
-u 设置账户的UID
-e 设置账户的失效时间
基础范例:
-bash-4.1# useradd wasrd #创建普通用户wasrd
-bash-4.1# useradd -c administrator -d /home/wasrd -e 2020-06-05 -g root -G bin,adn,mail wasrd
创建系统账户为wasrd,账户的描述信息是administrator,账户的家目录是/home/wasrd,账户的失效时间是2020-06-05,账户的基本组是root,账户的附加组是bin,adn,mail。
基础范例:
-bash-4.1# useradd -s /sbin/nologin -M wasrd
#创建无法登录系统且没有家目录的用户 wasrd
(2)groupadd 创建组账户
常用参数选项:
-g 指定用户组的gid,如果不指定-g参数,则gid从500开始
基础范例:
-bash-4.1# groupadd tom #创建tom组
-bash-4.1# groupadd -g 1000 jerry #创建GID为1000的组 jerry
(3)id 显示账户及组信息
2.1.2 修改账户与组
(1)passwd 修改账号密码
常用参数选项:
-l 锁定用户,被锁定的用户不能登录
-u 解除对用户的锁定
基础范例:
-bash-4.1# passwd wasrd #修改普通用户wasrd的密码
-bash-4.1# passwd --stdin 批量修改密码 例子:echo 123456 | passwd --stdin wasrd ※※※※
(2)useradd 创建新账号
常用参数选项:
-d 修改账户的家目录
-g 修改账户的用户组
-G 修改账户的附加组,多个附加组用逗号隔开
-s 修改账户的登录shell
-u 修改账户的UID
-e 设置账户的失效时间
基础范例:
-bash-4.1# usermod -d /home/was wasrd #修改wasrd的家目录
-bash-4.1# usermod -e 2023-03-02 wasrd
2.1.3 删除账户与组
(1)userdel 删除用户
常用参数选项:
-r 删除用户并删除家目录
-f 强制删除用户,即使用户当前登录
基础范例:
-bash-4.1# userdel wasrd # 删除账户wasrd
-bash-4.1# userdel -r wasrd # 删除账户wasrd,并删除对应的家目录
(2) groupdel 删除组账户
2.1.2 查看用户组
(1)groups 查看用户组
基础范例:
-bash-4.1$ groups was
was : was
-bash-4.1$ groups wasrd
wasrd : wasrd was
3.与用户账号有关的系统文件
1)/etc/passwd
由于/etc/passwd是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。 有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。
2)/etc/shadow /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生
3)用户组的所有信息都存放在/etc/group文件中
4.Linux文件属主和属组
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
1)更改文件属组
chgrp -R 新组 文件名 ##修改用户组 ,-R:递归更改文件属组
2)chown:更改文件属主,也可以同时更改文件属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
5.修改文件权限
1)文字设定法 chmod [who] [+|-|=] [mode]
who:
文件所有者: u
文件所属组: g
其他人: o
所有人: a
+: 添加权限
-: 减少权限
=: 覆盖原来的权限
mode:
r: read
w: write
x: 执行
2)数字设定法
- : 没有权限
r : 4
w : 2
x : 1
765
7=rwx --文件所有者
6=rw --文件所属组
5=rx --其他人
对于目录来说必须要有执行权限
常见的权限表示形式有:
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!