从零开始做一个网站需要多少钱,wordpress 优化'',用dw制作影视网站怎样做,全渠道推广策划方案模板Linux用户管理 一、Linux用户管理要点二、常用命令2.1、groupadd2.2、groupdel2.3、groupmod2.4、groups2.5、useradd2.6、userdel2.7、passwd2.9、su2.10、sudo2.10.1、给普通用户授权 sudo2.10.2、 免密码授权 sudo 一、Linux用户管理要点
创建用户组 - 使用 groupadd删除用… Linux用户管理 一、Linux用户管理要点二、常用命令2.1、groupadd2.2、groupdel2.3、groupmod2.4、groups2.5、useradd2.6、userdel2.7、passwd2.9、su2.10、sudo2.10.1、给普通用户授权 sudo2.10.2、 免密码授权 sudo 一、Linux用户管理要点
创建用户组 - 使用 groupadd删除用户组 - 使用 groupdel修改用户组信息 - 使用 groupmod创建用户 - 使用 useradd删除用户 - 使用 userdel修改用户信息 - 使用 usermod设置用户认证信息 - 使用 passwd切换用户 - 使用 su当前用户想执行没有权限执行的命令时使用其他用户身份去执行 - 使用 sudo
二、常用命令
2.1、groupadd
groupadd 命令用于创建一个新的用户组新用户组的信息将被添加到系统文件中。
groupadd [选项] 组名- -g, --gid GID: 指定新用户组的组 IDGID。 - -K, --key KEYVALUE: 设置密钥值对用于指定组的属性。 - -o, --non-unique: 允许创建非唯一的组 ID。 - -p, --password PASSWORD: 设置用户组的密码通常不建议使用密码。 - -r, --system: 创建一个系统用户组。 - -R, --root CHROOT_DIR: 在指定的 chroot 目录中执行操作。
使用案例 创建一个名为 testgroup的新用户组:
groupadd testgroup创建一个名为 sysgroup的系统用户组:
groupadd -r sysgroup创建一个名为 staff的用户组并指定组 ID 为 500:
groupadd -g 500 staff注意事项
使用 groupadd 命令需要具有适当的权限通常需要 root 权限或 sudo 权限。可以通过指定选项来设置新用户组的组 ID、属性等。创建系统用户组时通常会使用 -r 选项。确保新创建的用户组名称不与现有用户组重复避免混淆。建议在创建用户组时为其指定一个明确的目的或描述性的名称以便于管理和理解。
2.2、groupdel
groupdel命令用于在Linux系统中删除一个用户组。该命令不会操作与用户组关联的文件和目录但删除用户组后与该组相关的文件和目录中的组信息可能需要手动更改以避免权限问题。
本命令要修改的系统文件包括 /ect/group 和 /ect/gshadow。若该群组中仍包括某些用户则必须先删除这些用户后方能删除群组。
groupdel [选项] 组名-h 或 --help显示groupdel命令的帮助信息。-f 或 --force强制删除用户组即使它是某个用户的主组。
使用示例
删除名为testgroup的用户组
groupdel testgroup删除cc用户组
groupdel cc强制删除apps用户组
groupdel -f apps强制删除名为staff的用户组
groupdel -f staff显示groupdel命令的帮助信息
groupdel -h注意事项和常见错误处理:
确保该组不再被任何用户所使用如果该组仍被某些用户使用删除操作将失败。除非使用-f选项强制删除否则必须先删除这些用户修改用户的主组如果某个用户的主组是目标组命令会报错。此时需要先将用户的主组改为另一个组然后再进行删除操作组不存在如果要删除的组不存在groupdel会提示错误
2.3、groupmod
groupmod命令是Linux系统中用于修改现有用户组的工具。其主要用途包括修改组的GID组标识符和组名。
常用选项
-g 或 --gid GID用于更改组的GID。-n 或 --new-name NEW_GROUP用于更改组的名称。-o 或 --non-unique允许使用重复的GID即允许多个组使用同一个GID。-h 或 --help显示帮助信息。-p 或 --password PASSWORD设置组的密码。-R 或 --root CHROOT_DIR指定在CHROOT_DIR下更改生效。-V 或 --version显示版本信息。
使用示例 修改组名
groupmod -n newgroup oldgroup
# 这条命令将用户组oldgroup的名称修改为newgroup。修改组的GID
groupmod -g 101 groupname
# 这条命令将用户组groupname的GID修改为101。允许使用其他用户组的GID
groupmod -o groupname
# 这条命令将用户组groupname的属性设置为允许使用其他用户组的GID。设置组密码
groupmod -p password groupname
# 这条命令将用户组groupname的密码设置为password。注意事项
在执行groupmod命令时确保您具有足够的权限通常需要以root用户身份执行。修改组名称或GID可能会影响系统上相关用户的权限和文件因此在进行修改前请做好备
2.4、groups
groups命令用于显示用户所属的用户组信息。
默认情况下groups命令会显示当前用户所属的所有用户组。例如输入groups即可查看当前用户所属的所有附加组。指定用户可以在命令后跟上用户名来显示指定用户所属的用户组。例如输入groups username可以查看指定用户username所属的所有用户组。
常用选项
-a在输出中包括用户的主组primary group。默认情况下主组不会被单独列出而是作为用户名的一部分显示在输出中。-g只显示用户的主组IDGID而不显示组名。-n以数字形式显示组IDGID和用户名UID而不是名称。-r只显示实际存在的组即那些在系统上实际存在的组。默认情况下groups命令还会显示一些特殊的、不存在的组如“wheel”组在某些系统中可能不存在。
注意事项
权限问题在执行groups命令时需要确保当前用户具有足够的权限来查看其他用户的组信息。如果当前用户没有足够的权限可能会收到权限拒绝的错误信息。输出定制根据需要可以使用不同的参数来定制groups命令的输出。例如如果需要以数字形式显示组ID可以使用-n参数如果需要只显示主组ID可以使用-g参数。
2.5、useradd
useradd 命令用于 Linux 中创建的新的系统用户。useradd 可用来建立用户帐号。帐号建好之后再用 passwd 设定帐号的密码而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号实际上是保存在 /etc/passwd 文本文件中。
使用useradd命令时系统会自动更新相关文件包括/etc/passwd和/etc/shadow。 /etc/passwd文件包含用户的基本信息如用户名、用户IDUID、组IDGID等而/etc/shadow文件则包含加密的用户密码和账户有效期等信息。通过useradd命令创建的用户管理员可以通过passwd命令为其设置密码。需要注意的是useradd命令本身不会为用户创建密码信息而是使用星号*初始化密码字段随后需要通过passwd或pwdadm命令设置密码。
useradd [选项] 用户名常用选项
-m创建用户主目录通常位于 /home/用户名。-d指定用户主目录路径。-s指定用户的默认 shell。-g指定用户的主组组名或 GID。-G指定用户的附加组组名或 GID。-u指定用户的 UID。-c添加用户备注信息如全名。-e设置账户过期日期格式YYYY-MM-DD。-p设置用户密码通常不推荐直接使用建议用 passwd 命令。
使用示例 创建用户并生成主目录
sudo useradd -m username
···
指定主目录路径
sh
sudo useradd -m -d /custom/home/username username指定默认 shell
sudo useradd -m -s /bin/bash username指定主组和附加组
sudo useradd -m -g primarygroup -G supplementarygroup username指定 UID
sudo useradd -m -u 1001 username添加备注信息
sudo useradd -m -c User Full Name username设置账户过期日期
sudo useradd -m -e 2023-12-31 username创建用户后使用 passwd 命令设置密码
sudo passwd username注意事项
需要 root 权限通常使用 sudo。如果不使用 -m 选项不会创建主目录。建议使用 passwd 命令设置密码而不是 -p 选项。
2.6、userdel
以下是基本用法和常见选项
userdel [选项] 用户名常用选项
-r删除用户的同时删除用户的主目录和邮件文件通常位于 /home/用户名 和 /var/mail/用户名。-f强制删除用户即使用户当前已登录。-Z删除用户的 SELinux 用户映射适用于启用了 SELinux 的系统。
使用示例 删除用户保留主目录
sudo userdel username
# 这种方式只会删除用户账户但不会删除用户的主目录和邮件文件。删除用户并删除主目录
sudo userdel -r username
# 这种方式会删除用户账户及其主目录和邮件文件。强制删除用户
sudo userdel -f username
# 即使用户当前已登录也会强制删除用户。删除用户并清理 SELinux 映射
sudo userdel -rZ username
# 适用于启用了 SELinux 的系统。注意事项
权限要求需要 root 权限通常使用 sudo。用户进程如果用户有正在运行的进程删除用户时可能会失败。可以使用 -f 选项强制删除或者先终止相关进程。主目录如果不使用 -r 选项用户的主目录和邮件文件将保留在系统中。依赖文件删除用户后系统中可能仍存在属于该用户的文件如 /home/username 中的文件需要手动清理。
其他相关命令
检查用户是否存在
id username
# 如果用户存在会显示用户信息如果不存在会提示“无此用户”。终止用户进程如果用户有正在运行的进程可以使用以下命令终止
sudo pkill -u username
sudo killall -u username
# 通过 userdel 命令可以安全地删除用户账户及其相关文件。2.7、passwd
passwd 命令用于在 Linux 系统中管理用户密码。
passwd [选项] [用户名]
# 如果不指定用户名默认修改当前用户的密码。
# 如果指定用户名需要管理员权限可以修改其他用户的密码。常用选项
-l锁定用户账户禁止登录。-u解锁用户账户。-d删除用户密码允许用户无需密码登录不安全不推荐。-e强制用户下次登录时修改密码。-S显示用户密码状态是否锁定、密码加密算法等。-n设置密码的最短使用期限天数。-x设置密码的最长使用期限天数。-w设置密码过期前的警告天数。-i设置密码过期后的宽限天数。
使用示例 修改当前用户的密码
passwd
# 系统会提示输入当前密码然后输入新密码并确认。修改其他用户的密码需要管理员权限
sudo passwd username
# 管理员可以直接为其他用户设置新密码。锁定用户账户
sudo passwd -l username
# 锁定后用户将无法登录。解锁用户账户
sudo passwd -u username删除用户密码
sudo passwd -d username
# 删除密码后用户无需密码即可登录不安全不推荐。强制用户下次登录时修改密码
sudo passwd -e username显示用户密码状态
sudo passwd -S username# 输出示例
username P 05/10/2023 0 99999 7 -1各字段含义
- 用户名
- 密码状态P 表示有密码L 表示锁定NP 表示无密码
- 最后修改密码的日期
- 最小密码年龄天数
- 最大密码年龄天数
- 警告天数
- 密码过期后的宽限天数设置密码策略
# 设置密码最短使用期限为 7 天
sudo passwd -n 7 username# 设置密码最长使用期限为 90 天
sudo passwd -x 90 username# 设置密码过期前 7 天提醒用户
sudo passwd -w 7 username# 设置密码过期后 5 天内仍可登录
sudo passwd -i 5 username注意事项
密码强度系统通常会检查密码强度过于简单的密码可能被拒绝。管理员权限修改其他用户的密码需要 root 权限通常使用 sudo。锁定账户锁定账户后用户将无法登录但用户的主目录和文件仍然存在。密码策略合理设置密码策略可以提高系统安全性。
2.9、su
su 命令用于切换当前用户身份到其他用户身份变更时须输入所要变更的用户帐号与密码。
su [选项] [用户名]
# 如果不指定用户名默认切换到 root 用户。
# 切换用户后会进入目标用户的 shell 环境。常用选项
- 或 -l 或 --login以登录 shell 的方式切换用户同时加载目标用户的环境变量和配置文件如 ~/.bashrc 或 ~/.profile。-c执行一条命令后立即退出不进入交互式 shell。-s指定要使用的 shell如 /bin/bash 或 /bin/sh。-m 或 -p保留当前环境变量不加载目标用户的环境配置。
常用示例 切换到 root 用户
su
# 系统会提示输入 root 用户的密码。以登录 shell 的方式切换到 root 用户
su -
#这种方式会加载 root 用户的环境变量和配置文件。切换到其他用户
su username
# 系统会提示输入目标用户的密码。以登录 shell 的方式切换到其他用户
su - username切换到用户并执行一条命令
su -c command username# 例如以 root 用户身份创建一个文件su -c touch /root/testfile root指定使用的 shell
su -s /bin/bash username保留当前环境变量
su -m username注意事项
密码要求 切换到 root 用户或其他用户时需要输入目标用户的密码。如果当前用户是 root切换到其他用户时不需要密码。 环境变量 使用 su - 或 su -l 会加载目标用户的环境变量。使用 su 或 su -m 会保留当前用户的环境变量。 退出切换的用户 输入 exit 或按 CtrlD 可以退出当前用户返回到之前的用户。 权限限制 普通用户只能切换到其他用户需要密码而 root 用户可以切换到任何用户无需密码。
与 sudo 的区别
su直接切换到目标用户的身份需要目标用户的密码。sudo以当前用户的权限执行命令需要当前用户的密码或配置为无需密码。
2.10、sudo
sudo 命令允许授权用户以超级用户root或其他用户的身份执行命令。
sudo [选项] 命令
# 默认情况下sudo 以 root 用户身份执行命令。
# 执行命令时系统会提示输入当前用户的密码而非 root 密码。常用选项
-u以指定用户身份执行命令。-l列出当前用户允许执行的 sudo 命令。-s启动目标用户的 shell默认为 root。-i以登录 shell 的方式启动目标用户的 shell加载环境变量。-v刷新 sudo 的认证时间戳延长有效期。-k清除 sudo 的认证时间戳立即失效。-b在后台运行命令。-E保留当前用户的环境变量。
使用示例 以 root 身份执行命令
sudo command# 例如安装软件包
sudo apt update以其他用户身份执行命令
sudo -u username command# 例如以用户 testuser 的身份创建文件
sudo -u testuser touch /home/testuser/testfile启动 root 用户的 shell
sudo -s以登录 shell 的方式启动 root 用户的 shell
sudo -i在后台运行命令
sudo -b command保留当前用户的环境变量
sudo -E command刷新 sudo 认证时间戳
sudo -v清除 sudo 认证时间戳
sudo -k配置文件 sudo 的权限配置存储在 /etc/sudoers 文件中。可以使用 visudo 命令安全地编辑该文件。
示例配置
允许用户执行所有命令
username ALL(ALL:ALL) ALL允许用户执行特定命令
username ALL(ALL) /usr/bin/apt, /usr/bin/systemctl允许用户无需密码执行命令
username ALL(ALL) NOPASSWD: /usr/bin/apt注意事项
密码提示 执行 sudo 时系统会提示输入当前用户的密码。默认情况下密码在 5 分钟内有效无需重复输入。 权限限制 只有被授权的用户才能使用 sudo。权限配置在 /etc/sudoers 文件中定义。 安全性 避免直接使用 sudo 执行未知或不可信的脚本。谨慎配置 NOPASSWD 选项以免降低安全性。 日志记录 sudo 的所有操作都会被记录到 /var/log/auth.log 或 /var/log/secure 中便于审计。
与 su 的区别
sudo以当前用户的权限执行命令需要当前用户的密码。su直接切换到目标用户的身份需要目标用户的密码。
2.10.1、给普通用户授权 sudo
假设要给普通用户 mary 配置 sudo 权限
/etc/sudoers 文件存放了 sudo 的相关用户但是默认是没有写权限的所以需要设为可写chmod uw /etc/sudoers在该文件中添加 mary ALL(ALL) ALL 保存并退出让 mary 具有 sudo 的所有权限再将 /etc/sudoers 的权限恢复到默认状态chmod u-w /etc/sudoers
2.10.2、 免密码授权 sudo
与给普通用户授权 sudo 类似区别仅在于第 2 步mary ALL(ALL) NOPASSWD: ALL。