导读:本期聚焦于小伙伴创作的《Linux用户和组管理命令全解析:su、sudo、useradd、chmod等实例教程》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux用户和组管理命令全解析:su、sudo、useradd、chmod等实例教程》有用,将其分享出去将是对创作者最好的鼓励。

Linux用户和组命令实例分析【切换、添加用户、权限控制等】

引言

在Linux系统中,用户和组的管理是系统管理员日常工作中不可或缺的一部分。通过合理的用户和组配置,可以实现对系统资源的精细化访问控制。本文将详细介绍Linux中与用户和组相关的一系列常用命令,包括用户切换、添加用户、权限控制等方面的实例分析,帮助读者更好地掌握这些命令的使用方法。

一、用户切换命令

1. su命令

su 命令用于切换当前用户身份。它有两种常见的用法:

  • su username:切换到指定的用户,但不改变环境变量。

  • su - username:切换到指定的用户,并同时切换到该用户的环境变量。

示例:

# 切换到root用户,不改变环境变量
su root

# 切换到root用户,并切换到root的环境变量
su - root

注意:使用 su 命令切换到其他用户时,需要输入目标用户的密码。

2. sudo命令

sudo 命令允许普通用户以超级用户的身份执行命令。它的配置文件是 /etc/sudoers,可以使用 visudo 命令来编辑该文件。

示例:

# 以root身份执行ls命令
sudo ls /root

# 以root身份启动一个shell
sudo -s

在使用 sudo 命令时,需要输入当前用户的密码。可以通过编辑 /etc/sudoers 文件来配置哪些用户可以执行哪些命令。

二、添加用户命令

1. useradd命令

useradd 命令用于在系统中创建新用户。它的基本语法如下:

useradd [选项] 用户名

常用选项:

  • -d:指定用户的家目录。

  • -m:自动创建用户的家目录。

  • -s:指定用户的登录Shell。

  • -g:指定用户所属的主组。

  • -G:指定用户所属的附加组。

示例:

# 创建一个名为test的用户,家目录为/home/test,登录Shell为/bin/bash
useradd -d /home/test -m -s /bin/bash test

# 创建一个名为admin的用户,主组为admins,附加组为users
useradd -g admins -G users admin

2. adduser命令

adduser 命令是一个更友好的用户添加工具,它会交互式地提示用户输入相关信息,并自动完成一些配置工作。

示例:

# 添加一个名为newuser的用户
adduser newuser

在执行该命令后,系统会提示用户输入密码、全名、房间号等信息。

三、用户和组管理命令

1. passwd命令

passwd 命令用于修改用户的密码。它的基本语法如下:

passwd [选项] [用户名]

常用选项:

  • -l:锁定用户密码。

  • -u:解锁用户密码。

  • -d:删除用户密码。

示例:

# 修改当前用户的密码
passwd

# 修改test用户的密码
passwd test

# 锁定test用户的密码
passwd -l test

2. usermod命令

usermod 命令用于修改用户的属性。它的基本语法如下:

usermod [选项] 用户名

常用选项:

  • -d:修改用户的家目录。

  • -s:修改用户的登录Shell。

  • -g:修改用户的主组。

  • -G:修改用户的附加组。

  • -L:锁定用户账户。

  • -U:解锁用户账户。

示例:

# 修改test用户的家目录为/home/newtest
usermod -d /home/newtest test

# 将test用户添加到sudo组
usermod -aG sudo test

3. groupadd命令

groupadd 命令用于在系统中创建新组。它的基本语法如下:

groupadd [选项] 组名

常用选项:

  • -g:指定组的GID。

示例:

# 创建一个名为developers的组
groupadd developers

# 创建一个GID为1001的组
groupadd -g 1001 testers

4. groupmod命令

groupmod 命令用于修改组的属性。它的基本语法如下:

groupmod [选项] 组名

常用选项:

  • -n:修改组的名称。

  • -g:修改组的GID。

示例:

# 将developers组重命名为devs
groupmod -n devs developers

# 将devs组的GID修改为1002
groupmod -g 1002 devs

5. groupdel命令

groupdel 命令用于删除组。它的基本语法如下:

groupdel 组名

示例:

# 删除testers组
groupdel testers

注意:如果要删除的组是某个用户的主组,则需要先将该用户从该组中移除或删除该用户。

四、权限控制命令

1. chmod命令

chmod 命令用于修改文件或目录的权限。它的基本语法如下:

chmod [选项] 权限模式 文件或目录

权限模式可以使用数字表示法或符号表示法:

  • 数字表示法:用三位八进制数表示文件所有者、所属组和其他用户的权限。每个位的取值为0-7,分别表示不同的权限组合。例如,755表示所有者具有读、写、执行权限,所属组和其他用户具有读和执行权限。

  • 符号表示法:用字母和操作符来表示权限的修改。例如,u+x表示为文件所有者添加执行权限。

示例:

# 将file.txt的权限设置为755
chmod 755 file.txt

# 为file.txt的所有者添加执行权限
chmod u+x file.txt

# 递归地将dir目录及其子目录和文件的权限设置为644
chmod -R 644 dir

2. chown命令

chown 命令用于修改文件或目录的所有者和所属组。它的基本语法如下:

chown [选项] 所有者:所属组 文件或目录

常用选项:

  • -R:递归地修改目录及其子目录和文件的所有者和所属组。

示例:

# 将file.txt的所有者改为user1,所属组改为group1
chown user1:group1 file.txt

# 递归地将dir目录及其子目录和文件的所有者改为user2
chown -R user2 dir

3. chgrp命令

chgrp 命令用于修改文件或目录的所属组。它的基本语法如下:

chgrp [选项] 所属组 文件或目录

常用选项:

  • -R:递归地修改目录及其子目录和文件的所属组。

示例:

# 将file.txt的所属组改为group2
chgrp group2 file.txt

# 递归地将dir目录及其子目录和文件的所属组改为group3
chgrp -R group3 dir

五、实例分析

实例1:创建一个受限用户

假设我们需要创建一个名为limiteduser的用户,该用户只能访问自己的家目录,并且不能使用 sudo 命令。

# 创建用户,-s指定登录Shell为rbash,限制其只能使用有限的命令
useradd -d /home/limiteduser -m -s /bin/rbash limiteduser

# 设置用户密码
passwd limiteduser

# 限制用户只能访问自己的家目录
echo "limiteduser" >> /etc/ftpusers
echo "limiteduser" >> /etc/vsftpd/chroot_list

实例2:配置sudo权限

假设我们需要允许用户developer以root身份执行特定的命令,如 systemctlapt-get

# 使用visudo命令编辑sudoers文件
visudo

# 在文件中添加以下行
developer ALL=(ALL) NOPASSWD: /bin/systemctl, /usr/bin/apt-get

这样,用户developer就可以在不输入密码的情况下以root身份执行 systemctlapt-get 命令了。

实例3:共享目录权限设置

假设我们有一个共享目录 /shared,需要让group1组的成员可以读写该目录,而其他用户只能读取。

# 创建共享目录
mkdir /shared

# 创建group1组
groupadd group1

# 将需要访问共享目录的用户添加到group1组
usermod -aG group1 user1
usermod -aG group1 user2

# 设置共享目录的所属组为group1
chgrp group1 /shared

# 设置共享目录的权限为775,所有者有读写执行权限,所属组有读写执行权限,其他用户有读和执行权限
chmod 775 /shared

# 设置共享目录下所有文件和子目录的权限
chmod -R g+rw /shared

结论

本文详细介绍了Linux中与用户和组相关的一系列常用命令,并通过实例分析了它们的使用方法。通过合理地使用这些命令,可以实现对用户和组的精细化管理,以及对系统资源的访问控制。希望读者能够通过本文的学习,更好地掌握Linux用户和组管理的技巧。

Linux用户管理 Linux组管理 权限控制 Linux命令 系统管理

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。