当前位置: 首页 > news >正文

第五章:Linux用户管理

Linux系统中超级用户是root,通过超级用户root可以创建其它的普通用户,Linux是一个支持多用户的操作系统。在实际使用中,一般会分配给开发人员专属的账户,这个账户只拥有部分权限,如果权限太高,操作的范围过大,一些误操作可能导致系统崩溃,或者数据不安全,所以多用户机制就是一种系统安全策略。


在Linux系统中任何一个用户都对应:一个用户名 + 一个口令。用户使用系统时需要输入用户名和口令进行登录,登录成功后就可以进入自己的主目录(主目录就是自己的工作目录)。


用户账号管理主要包括以下三方面:

  • 用户组的管理
  • 用户的管理
  • 为用户主目录之外的目录授权

一、用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。

用户组的管理涉及用户组的添加、修改和删除。

用户组的添加、修改和删除实际上就是对/etc/group文件的更新。

使用root账户查看当前系统的用户组有哪些

cat /etc/group

每一个用户组四部分组成:组名:密码标识:GID:该用户组中的用户列表

查看当前登录的账户属于哪一组

groups

查看某个用户属于哪一组

1.用户组的添加

语法:groupadd [选项] 组名
常用选项包括:

  • g     可以通过这个选项来指定新用户组的标识号(GID)
groupadd dev1

groupadd -g 101 dev2

其中101是dev2这个组的组号。

2.用户组的修改

groupmod -g 102 dev2

# 将dev2修改为dev3
groupmod -n dev3 dev2

3.用户组的删除

# 删除用户组dev3
groupdel dev3

二、用户的管理

用户管理工作主要涉及到用户的添加、修改和删除。

1.添加用户

添加用户就是在系统中创建一个新账号,然后为新账号分配用户组、主目录等资源。
语法:useradd [选项] 用户名
选项:

  •  -d    指定新用户的主目录
  •  -g    指定新用户属于哪个组(主组)
  • -G    可以给新用户添加附加组
[root@localhost ~]# useradd lisi

没有指定主目录,默认的主目录就是/home/lisi 

注意:当新建用户时,没有指定组,也没有指定工作目录时:

  • 默认的组名:和自己用户名一样
  • 默认的主目录:/home/用户名


[root@localhost ~]# useradd -d /usr/zhangsan zhangsan
[root@localhost usr]# useradd -d /usr/lisi -g dev -G test lisi

这段代码的作用是创建一个名为lisi的新用户,把他的主目录设置为/usr/lisi,将其初始用户组指定为dev,同时让他成为test组的成员。

添加lisi用户,该用户的主目录/usr/lisi,所属主组dev(开发组),附加组test(测试组)

2.设置密码

passwd lisi

注意:增加用户就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。


通过查看/etc/passwd文件可以看到系统中有哪些用户,例如执行:cat /etc/passwd

以上信息描述了什么?

密码会单独存储在/etc/shadow文件中,例如执行:cat /etc/shadow

可以看到这个密码是通过某种算法进行加密的。

3.切换用户

注意:从普通用户切换到高级用户需要密码。密码输入时不回显。
注意:切换到普通用户之后,该普通用户默认只对自己的“主目录”有权限,主目录之外的目录是没有权限的。

4. 修改用户

修改用户就是对用户名,用户主目录,用户组等进行修改。
语法:usermod [选项] 用户名

  •  -d    指定新用户的主目录
  • -g    指定新用户属于哪个组(主组)
  • -G    可以给新用户添加附加组
  •  -l     指定新的用户名(小写的艾路)

usermod -l zhangsi zhangsan

-lusermod命令的参数,其功能是修改用户的登录名。在这个例子里,就是把原用户名zhangsan更改为新用户名zhangsi


# -m 选项很重要,当有了这个选项之后,目录不存在时会新建该目录。
usermod -d /usr/zhangsan2 -m zhangsan

usermod -g dev1 zhangsan

usermod -L zhangsan

-L:此为usermod命令的参数,其作用是锁定用户账户,使用户无法登录系统。具体来说,该参数会在用户的密码字段前添加一个!符号,以此来禁用该用户的密码认证功能。

当执行此命令后:

  • 用户zhangsan将无法再使用密码登录系统。
  • 不过,该用户的其他属性不会发生改变,其主目录、文件权限等都将保持原样。
  • 若该用户之前配置了 SSH 密钥登录或者其他认证方式,那么这些登录方式可能仍然有效。

若想解锁该用户,使其能够重新使用密码登录,可以使用-U参数,命令如下:

usermod -U zhangsan

此命令会移除密码字段前的!符号,从而恢复用户的密码登录功能。

5.删除用户

userdel -r zhangsan

-r 选项的作用是连同该用户主目录一块删除。

三、为用户主目录之外的目录授权

创建一个共享目录 /java,并对其进行权限配置,使得 dev 组的用户能够对该目录进行读写操作。下面对每一步进行详细解释:

第一步:创建目录

mkdir /java

此命令的作用是在根目录下创建一个名为 /java 的目录,该目录将作为后续操作的共享目录。

第二步:给目录授权

chmod -R 775 /java

这里使用 chmod 命令递归地修改 /java 目录及其所有子目录和文件的权限。权限值 775 的具体含义如下:

  • 所有者(Owner):拥有读(4)、写(2)、执行(1)权限,权限组合为 rwx
  • 所属组(Group):拥有读(4)、写(2)、执行(1)权限,权限组合为 rwx
  • 其他用户(Others):拥有读(4)、执行(1)权限,权限组合为 rx
    这样设置后,dev 组的用户就可以对该目录进行读写操作。

第三步:创建组

groupadd dev

该命令创建了一个名为 dev 的用户组,后续会将需要访问 /java 目录的用户添加到这个组中。

第四步:把目录赋予组

chgrp -R dev /java

chgrp 命令用于递归地将 /java 目录及其所有子目录和文件的所属组更改为 dev 组。这意味着 dev 组的用户将拥有该目录的组权限,也就是前面设置的 rwx

第五步:创建用户

useradd xiaoming

此命令创建了一个名为 xiaoming 的新用户。不过,此时 xiaoming 还没有被添加到 dev 组中,所以暂时无法访问 /java 目录。

第六步:设置密码

passwd xiaoming

该命令用于为用户 xiaoming 设置登录密码。在实际使用中,执行此命令后需要输入两次密码来完成设置。

第七步:给用户添加附加组

usermod -G dev xiaoming

usermod 命令的 -G 参数用于将用户 xiaoming 添加到 dev 组中。这样,xiaoming 就拥有了 dev 组的权限,能够对 /java 目录进行读写操作。

总结

通过以上步骤,成功创建了一个共享目录 /java,并配置了相应的权限,使得 dev 组的用户(如 xiaoming)能够对该目录进行读写操作,而其他用户只能进行读和执行操作。这种权限配置方式在多人协作开发的环境中非常实用。

相关文章:

  • javascript和vue的不同
  • 五月月报丨MaxKB在教育行业的应用进展与典型场景
  • STM32外设AD-定时器触发 + DMA读取模板
  • STM32 定时器主从模式配置解析
  • Scratch游戏 | 地下城探险
  • 逻辑回归(二分类)
  • 制作一款打飞机游戏50:敌人跟随
  • 2:OpenCV—加载显示图像
  • 中大型水闸安全监测系统建设实施方案
  • 工具生态构建对比分析
  • bili.png
  • Docker 无法拉取镜像解决办法
  • 什么是SMBus
  • Node.js 实战二:接口参数校验与类型安全方案
  • 《指针与整数相加减的深入解析》
  • docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
  • 14、Python时间表示:Unix时间戳、毫秒微秒精度与time模块实战
  • Android framework 中间件开发(一)
  • LearnOpenGL --- 你好三角形
  • 科达嘉数字功放电感应用于英飞凌参考设计REF_MA5302BTLSPS_400W
  • 科普|认识谵妄:它有哪些表现?患者怎样走出“迷雾”?
  • 烤肉店从泔水桶内捞出肉串再烤?西安未央区市监局:停业整顿
  • 日本一季度实际GDP环比下降0.2%
  • 外交部介绍对巴西、阿根廷、智利、秘鲁、乌拉圭等5国试行免签政策
  • 端午假期购票日历发布,今日可购买5月29日火车票
  • “80后”北京市东城区副区长王智勇获公示拟任区委常委