Linux自主学习篇

用户及权限管理

sudo 是 "superuser do" 的缩写,是一个在类 Unix 操作系统(如 Linux 和 macOS)中使用的命令。它允许普通用户以超级用户(root 用户)的身份执行命令,从而获得更高的权限。
useradd -u 1024 jack 创建 jack 用户时指定其 UID 为 1024
useradd -d /home/myd bob1 为新添加的用户指定 home 目录
useradd -d /usr/local/apache -g apache -s /bin/false bob2
添加一个不能登录的用户;添加一个 bob2 用户,登录目录为 /usr/local/apache ,用户组为 apache ,指定 shell 为 /bin/false ;将用户 shell 设置为 /usr/sbin/nologin 或者 /bin/false ,表示拒绝系统用户登录
usermod -l tony tom 将用户 tom 的用户名改为 tony
usermod -d /home/tony/ tony 家目录改为 /home/tony
groupmod -n tony tom 修改原 tom 用户的私有组名 tom 改为 tony

userdel -r cx

问题分析:
这表明系统没有找到用户cx的邮件存储和主目录。这可能是因为用户在创建时没有被完全配置
解决方案:
1.创建用户时指定主目录

在使用 useradd 命令时,可以明确指定主目录。

sudo useradd -m cx

-m 选项会创建用户的主目录

2.手动创建主目录

如果你已经创建了用户但没有主目录,可以手动创建主目录,然后再尝试删除用户:

sudo mkdir /home/cx

3.删除用户时忽略邮件存储

如果你只想删除用户而不关心邮件存储和主目录,可以使用 userdel 命令而不加 -r 选项:

sudo userdel cx

4.检查用户信息

使用以下命令查看用户 cx 的信息,确认其状态:

sudo getent passwd cx

-u UID

-d 指定目录

-g 指定用户组

-s shell用户设置

-l 改变用户名

-n 修改私有组名

-m 创建用户的主目录

ls /home/ 查看用户

sudo 切换用户


passwd tony 设置密码
passwd -S jack 查看 jack 账号当前的状态
passwd -l jack 将 jack 账号锁定,测试效果后再解锁

你运行 passwd -l cx 命令并看到消息 passwd: password expiry information changed. 时,这表明用户 cx 的密码过期信息已成功更改。这是一个正常的反馈,表示系统已经更新了该用户的密码状态

  • 锁定账户 :使用 passwd -l cx 命令锁定用户账户时,系统会在 /etc/shadow 文件中添加一个标记(通常是 !*),这会阻止用户使用密码登录。

  • 密码过期信息:系统记录了用户密码的状态和过期信息。锁定账户的操作也会更新这些信息,因此你会看到这条消息。

  • 验证账户状态 :sudo grep cx /etc/shadow
    passwd -uf jack passwd -uf jack //openEuler 在这里做了安全加强,必须加上 -f 强制解锁
    ubuntu版本
    chage -l jack chage 命令查看编辑密码过期时间

    编辑用户过期时间,其它参数说明

    -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。

    -M 密码保持有效的最大天数。

    -W 用户密码到期前,提前收到警告信息的天数。

    -E 帐号到期的日期。过了这天,此帐号将不可用。

    -d 上一次更改的日期

    -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

    -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

  • 用户名: 是用户在系统中的标识符,通常用于登录和文件权限管理。

  • 私有组 : 默认情况下,Linux 会为每个用户创建一个同名的组 ,这个组被称为用户的私有组。它的主要作用是简化权限管理,使得用户能够轻松管理自己的文件和目录

用户组管理


groupadd hatest 创建 hatest 组,且将用户 tony 、 jack 加到 hatest 组里面
gpasswd -M tony,jack hatest
tail -1 /etc/group # 查看用户组是否创建成功
groupadd group1 用于创建新用户组
groupdel group1 删除用户组
groupmod -g 102 group2 更改用户组 ID
cat /etc/group 查看用户组
编辑一个文本用户文件,以 root 身份执行命令 newusers,从刚创建的用户文件 user.txt 中导入数据,创建用户

查看用户信息

查看用户账号信息文件 /etc/passwd cat /etc/passwd
查看用户账号信息加密文件 /etc/shadow cat /etc/shadow
查看组信息文件 /etc/group cat /etc/group
查看组信息加密文件 /etc/gshadow cat /etc/gshadow
将 /test 目录修改为公共共享目录即给其设置 t 位权限位 chmod 1777 /test
将文件 file1 和 file2 设置权限为 755 chmod 755 /test/file1 /test/file2
查看其默认的权限及归属 ls -l / | grep test
将文件 file1 设为所有人皆可读取 chmod ugo+r file1
chmod a+r file1
将文件 file1 与 file2 设为该文件拥有者,与其所属同一个群体者可写入,但其他以
外的人则不可写入 chmod ug+w,o-w file1 file2
将目前目录下的所有文件与子目录皆设为任何人可读取 chmod -R a+r *
将文件 file1 的所属用户改为 jack ,所属用户组改为 hatest 组 chown jack:hatest /test/file1
修改文件群组属性 chgrp -v bin file1
通过 umask 来查看为修改权限掩码前 umask 值 umask
使用 umask 命令进行权限的修改 umask 022

相关推荐
西岸行者9 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意9 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码9 天前
嵌入式学习路线
学习
毛小茛10 天前
计算机系统概论——校验码
学习
babe小鑫10 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms10 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下10 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。10 天前
2026.2.25监控学习
学习
im_AMBER10 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J10 天前
从“Hello World“ 开始 C++
c语言·c++·学习