linux-用户-用户组

本文由刘遄老师的《Linux就该这么学》摘抄整理而成,写成博客方便自己后期查阅

该书非常棒,语言简练,通俗易懂,非常推荐,你可以点连接去学习~

用户管理

Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性,在幕后保障Linux 系统安全的则是一系列复杂的配置工作。

本博客即下篇博客将详细讲解以下几点

  • 文件的所有者、所属组
  • 以及其他人可对文件进行的读(r)、写(w)、执行(x)等操作
  • 以及如何在Linux系统中添加、删除、修改用户账户信息
  • 我们还可以使用SUID、SGID与SBIT特殊权限更加灵活地设置系统权限功能,来弥补对文件设置一般操作权限时所带来的不足。
  • 隐藏权限能够给系统增加一层隐形的防护层,让黑客最多只能查看关键日志信息,而不能进行修改或删除。
  • 文件的访问控制列表(Access Control List,ACL)可以进一步让单一用户、用户组对单一文件或目录进行特殊的权限设置,让文件具有能满足工作需求的最小权限。

知识储备

1.Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

2.Linux 的用户需要至少要属于一个组

用户

正常在公司是不会给你 root 权限的,就算给你了 root 权限,也不要拿 root 用户直接登录,避免操作失误

正常情况都是使用普通用户登录,然后需要管理员权限的时候再切换

添加用户 useradd

添加的用户要在创建完密码之后才能登录

基本语法

useradd  [选项]  用户名

例子:
创建一个普通用户(最简便的写法)
useradd lxx 

指定家目录
useradd -d 目录路径 用户名

指定用户组
useradd -g 用户组名 用户名

说明:
创建用户成功后会自动创建和用户名同名的家目录,默认的用户家目录会被存放在/home目录中

useradd 命令的可选参数

参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器

修改用户密码、过期时间、认证信息等 passwd

passwd命令用于修改用户密码、过期时间、认证信息等

基本语法

passwd [选项] 用户名

passwd mac

passwd 指令可选参数

参数 作用
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称

小运用

假设您有位同事正在度假,而且假期很长,那么可以使用passwd命令禁止该用户登录系统,等假期结束回归工作岗位时,再使用该命令允许用户登录系统,而不是将其删除。

这样既保证了这段时间内系统的安全,也避免了频繁添加、删除用户带来的麻烦。

删除用户 userdel

基本语法

userdel [选项] 用户名

userdel 用户名			删除用户,保留家目录
userdel -r 用户名		删除用户,不保留家目录

说明

删除用户的时候,其家目录一般会保留下来(实际管理时,用户的家用户也应该保留下来)

userdel 指令可项参数

参数 作用
-f 强制删除用户
-r 同时删除用户及用户家目录

查询用户信息 id

基本语法

id 用户名

用户名不存在

切换用户 su

说明

当用户权限不够时,可以通过 su -,来通过输入密码切换到高权限用户,比如切换到 root 用户

从高权限用户切换到低权限用户时,不需要密码

基本语法

su 用户名
su - 用户名		切换用户
exit			  返回原来用户

注销用户

备注:在图形界面无效
logout

小练习

  • 创建一个 lxx 的用户并指定密码
  • 切换到 lxx
  • 切换回root用户

用户组

Linux 为了方便管理权限,引入了用户组的概念,我们可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或者指定任务

假设有一个公司中有多个部门,每个部门中又有很多员工。如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设置权限。例如,可以通过对技术部门设置权限,使得只有技术部门的员工可以访问公司的数据库信息等。

科普

在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。

如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。

一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。

创建用户组 groupadd

说明

为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同一个组里面,这样便可以针对一类用户统一安排权限。

就好比:技术组、运维组

增加组

groupadd [选项] 组名

删除组

groupdel 组名

前提:组内不能有用户,否则无法删除

修改用户的组

Linux系统中的一切都是文件

因此在系统中创建用户也就是修改配置文件的过程

用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息

诸如用户的UID、基本/扩展用户组、默认终端等。

基本指令

usermod [选项] 组名 用户名

usermod 命令可选参数

参数 作用
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID

用户配置文件 /etc/passwd

这是用户的配置文件,记录着用户的各种信息

每行含义

root:x:1:0:root:/root:/bin/bash
用户名:口令(不显示):用户id:id:注释性描述:主目录:Shell

口令配置文件 /etc/shadow 口令配置文件

存用户密码和相关时间的地方(有权限要求)

组的配置文件 /etc/group

组的配置文件

posted @   suwanbin  阅读(543)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示