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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt Creator项目模板介绍
  • 视频相关处理
  • MQ入门(4)
  • 【Python】Maya:为人类打造的 Python 日期时间库
  • 抓机遇,促发展——2025第十二届广州国际汽车零部件加工技术及汽车模具展览会
  • Java内存泄漏排查
  • Ansible部署与应用基础
  • Git清除某文件所有历史提交记录
  • 【Redis】之Geo
  • 【机器学习】——线性回归(自我监督学习)
  • 秒变 Vim 高手:必学的编辑技巧与隐藏功能大揭秘
  • 【设计模式】UML类图
  • Streamlit:使用 Python 快速开发 Web 应用
  • <<编码>> 第 16 章 存储器组织(4)--内存 示例电路
  • C++ ——日期类的实现和注释浅解
  • ES6指北【2】—— 箭头函数
  • [nginx文档翻译系列] 控制nginx
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • C++11: atomic 头文件
  • javascript 总结(常用工具类的封装)
  • linux学习笔记
  • 关于List、List?、ListObject的区别
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 盘点那些不知名却常用的 Git 操作
  • 让你的分享飞起来——极光推出社会化分享组件
  • 山寨一个 Promise
  • 延迟脚本的方式
  • #define与typedef区别
  • #php的pecl工具#
  • (19)夹钳(用于送货)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (一)Linux+Windows下安装ffmpeg
  • . NET自动找可写目录
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET CLR Hosting 简介
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Standard 的管理策略
  • .net web项目 调用webService
  • .Net 应用中使用dot trace进行性能诊断
  • [20170728]oracle保留字.txt
  • [ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [C#]winform部署官方yolov10目标检测的onnx模型
  • [C++基础]-入门知识
  • [CERC2017]Cumulative Code
  • [Codeforces] combinatorics (R1600) Part.2
  • [C语言]-基础知识点梳理-编译、链接、预处理
  • [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
  • [gdc19]《战神4》中的全局光照技术
  • [GN] 设计模式——面向对象设计原则概述
  • [Hello-algo] 复杂度分析
  • [IE技巧] IE8中HTTP连接数目的变化