面试官:说说你对 linux 用户管理的理解?相关的命令有哪些?

面试官:说说你对 linux 用户管理的理解?相关的命令有哪些?

一、是什么

Linux是一个多用户的系统,允许使用者在系统上通过规划不同类型、不同层级的用户,并公平地分配系统资源与工作环境

而与 Windows 系统最大的不同, Linux 允许不同的用户同时登录主机,同时使用主机的资源

既然是多用户的系统,那么最常见的问题就是权限,不同的用户对于不同的文件都应该有各自的权限

例如,小 A 希望个人文件不被其他用户读取,而如果不对文件进行权限设置,共享了主机资源的小 B 也可以读取小 A 的个人文件,这是不合理的

这里面涉及到用户与用户组的概念

二、用户与用户组

Linux 以 “用户与用户组” 的概念,建立用户与文件权限之间的联系,保证系统能够充分考虑每个用户的隐私保护,很大程度上保障了 Linux 作为多用户系统的可行性

从文件权限的角度出发,“用户与用户组” 引申为三个具体的对象:

  • 文件所有者
  • 用户组成员
  • 其他人

每一个对象对某一个文件的持有权限是不同的

文件所有者

当一个用户创建了一个文件,这个用户就是这个文件的文件所有者。文件所有者对文件拥有最高权限,同时排他性地拥有该文件

除非文件所有者开放权限,否则其他人无法对文件执行查看、修改等操作

用户组

将 “其他用户” 区分为用户组成员和其他人后,若文件所有者希望对部分用户开放权限,而对其他人继续保持私有,则只需要将这部分用户与文件所有者划入一个用户组

这样,这部分用户就成了与文件所有者同组的用户组成员。用户可以对用户组成员开放文件权限,用户组成员则具备了查看、修改文件的权限,而对其他无关用户保持私有

例如,团队成员之间保持文件资源共享,但对非团队成员保持私有,这就需要将文件所有者与团队成员用户划分为同一个用户组,再对用户组成员开放权限即可

其他人

既与文件所有者没有任何联系的其他用户

小结

户和用户组的对应关系是:一对一、多对一、一对多或多对多:

  • 一对一:某个用户可以是某个组的唯一成员
  • 多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组
  • 一对多:某个用户可以是多个用户组的成员
  • 多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组

拓展

当我们使用ls -l的时候,会列出当前目录的文件信息,如下:

drwxr-xr-x   3  osmond   osmond    4096  05-16 13:32   nobp
  • d:文件类型
  • rwxr-xr-x:文件权限
  • 3 硬链接数或目录包含的文件数
  • osmond:文件所有者
  • 4096:文件长度
  • 05-16 13:32:文件上次修改的事件和日期
  • nobp:文件名

下面主要看看文件权限分析,实际上是由9个字符组成,每3个一组:

  • 第一组控制文件所有者的访问权限
  • 第二组控制所有者所在用户组的其他成员的访问权限
  • 第三组控制系统其他用户的访问权限

-代表当前没有,rwx对应代表的意思如下:

三、用户操作

用户相关的操作有如下:

新增用户

useradd 可以用来创建新用户,简要语法为:

useradd [options] [username]

例如:

添加一个一般用户

# useradd kk //添加用户kk

为添加的用户指定相应的用户组

# useradd -g root kk //添加用户kk,并指定用户所在的组为root用户组

创建一个系统用户

# useradd -r kk //创建一个系统用户kk

为新添加的用户指定/home目录

# useradd-d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf

设置密码

创建的用户还没有设置登录密码,需要利用passwd进行密码设置

asswd [options] [username]

option 参数有如下:

  • -d 删除密码
  • -f 强迫用户下次登录时必须修改口令
  • -w 口令要到期提前警告的天数
  • -k 更新只能发送在过期之后
  • -l 停止账号使用
  • -S 显示密码信息
  • -u 启用已被停止的账户
  • -x 指定口令最长存活期
  • -g 修改群组密码
  • 指定口令最短存活期
  • -i 口令过期后多少天停用账户

例如,修改用户密码

# passwd runoob  //设置runoob用户的密码
Enter new UNIX password:  //输入新密码,输入的密码无回显
Retype new UNIX password:  //确认密码
passwd: password updated successfully
# 

显示账号密码信息

# passwd -S runoob
runoob P 05/13/2010 0 99999 7 -1

删除用户密码

# passwd -d lx138 
passwd: password expiry information changed.

修改用户

chage 命令用来修改与用户密码相关的过期信息,如密码失效日、密码最短保留天数、失效前警告天数等

chage [option] [username]

常见的参数有:

  • -d:指定密码最后修改日期

  • -E:密码到期的日期

  • -l:列出用户以及密码的有效期

  • -m:密码能够更改的最小天数

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

删除用户

userdel 命令用来删除用户的相关的所有数据。

userdel [options] [username]

常见的参数有:

  • -r:删除用户登入目录以及目录中所有文件

例如删除用户账号

# userdel hnlinux

用户组相关的操作如下:

新增用户组

groupadd用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

groupadd [options] [groupname]

常见的参数有如下:

  • -g:指定新建工作组的 id;
  • -r:创建系统工作组,系统工作组的组ID小于 500
  • -K:覆盖配置文件 “/ect/login.defs”
  • -o:允许添加组 ID 号不唯一的工作组
  • -f,–force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出

例如创建一个新的组,并添加组 ID。

#groupadd -g 344 runoob

修改用户

groupmod 命令用来修改 group 相关的参数,例如群组识别码或者名称

groupmod [options] [groupname]

常见的参数有:

  • -g <群组识别码>  设置欲使用的群组识别码
  • -o  重复使用群组识别码
  • -n <新群组名称>  设置欲使用的群组名

例如修改组名:

# groupmod -n linux linuxso 

删除用户组

groupdel 用于删除用户组,如果该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

groupdel [groupname]

日常工作通常会碰到只有root用户才有权限执行的操作,这就需要使用用户身份切换的命令:

su

用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码

sudo

sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行

不是所有的用户都能执行 sudo 命令的,而是在 /etc/sudoers 文件内的用户才能执行这个命令

例如sudo命令使用ls

$ sudo ls

参考文献

  • https://whyta.cn/post/4ee393ebc721/
  • https://zhuanlan.zhihu.com/p/37964411
  • https://zhuanlan.zhihu.com/p/105482468

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于MyBatis二级缓存深入装饰器模式

视频地址 学习文档 文章目录 一、示意代码二、装饰器三、经典案例—MyBatis二级缓存1、Cache 标准定义2、PerpetualCache 基础实现3、增强实现3-1、ScheduledCache3-2、LruCache 先来说说我对装饰器理解&#xff1a;当你有一个基础功能的代码&#xff0c;但你想在不改变原来代…

高效营销系统集成:百度营销的API无代码解决方案,提升电商与广告效率

百度营销API连接&#xff1a;构建无代码开发的高效集成体系 在数字营销的高速发展时代&#xff0c;企业追求的是快速响应市场的能力以及提高用户运营的效率。百度营销API连接正是为此而生&#xff0c;它通过无代码开发的方式&#xff0c;实现了电商平台、营销系统和CRM的一站式…

墒情监测FDS-400 土壤温湿电导率盐分传感器

墒情监测FDS-400 土壤温湿电导率盐分传感器产品概述 土壤温度部分是由精密铂电阻和高精度变送器两部分组成。变送器部分由电源模块、温度传感模块、变送模块、温度补偿模块及数据处理模块等组成&#xff0c;解决铂电阻因自身特点导入的测量误差&#xff0c;变送器内有零漂电路…

前端开发中requestAnimationFrame和setInterval、setTimeout的介绍和优缺点对比

一、requestAnimationFrame() requestAnimationFrame是一种在浏览器中实现动画循环的技术&#xff0c;它通过定时器机制来周期性地调用指定的回调函数&#xff0c;以实现网页动画的效果。与传统的setInterval和setTimeout不同&#xff0c;requestAnimationFrame具有更好的浏览…

Redis队列原理解析:让你的应用程序运行更加稳定!

一、消息队列简介 消息队列&#xff08;Message Queue&#xff09;&#xff0c;字面意思就是存放消息的队列。最简单的消息队列模型包括 3 个角色&#xff1a; 消息队列&#xff1a;存储和管理消息&#xff0c;也被称为消息代理&#xff08;Message Broker&#xff09;生产者…

Json格式化

Json格式化 大家好&#xff0c;我是微赚淘客机器人的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; Json格式化&#xff1a;让数据更亮眼&#xff0c;解密Json的奇妙世界 在现代Web开发中&#xff0c;Json&#xff08;JavaScript Object N…

Turtle绘制菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第16讲。 Turtle绘制菱形&a…

六.聚合函数

聚合函数 1.什么是聚合函数1.1AVG和SUM函数1.2MIN和MAX函数1.3COUNT函数 2.GROUP BY2.1基本使用2.2使用多个列分组2.3GROUP BY中使用WITH ROLLUP 3.HAVING3.1基本使用3.2WHERE和HAVING的区别 4.SELECT的执行过程4.1查询的结构4.2SELECT执行顺序4.3SQL执行原理 1.什么是聚合函数…

pip的常见60条基本命令和使用详解

pip是Python的包管理工具&#xff0c;用于安装、升级和卸载Python包。以下是pip的常见基本命令和使用详解&#xff1a; 1. 安装包&#xff1a;pip install package_name 该命令用于安装指定的Python包。例如&#xff0c;要安装名为xlwt的包&#xff0c;可以运行命令"pip i…

用友 U8总账凭证打印设置

总账--凭证打印——设置 是设置凭证打印显示的格子框&#xff0c;勾上就有框&#xff0c;去掉就没有框。

多家安全设备存在远程命令执行漏洞复现 [附POC]

文章目录 多家安全设备(防火墙产品)存在远程命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响产品0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现多家安全设备(防火墙产品)存在远程命令执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相…

xcode-文件

IOSDeviceSupoprt 共享缓存库 当你使用新的 iOS 设备连接到 Xcode 时&#xff0c;Xcode 会自动下载并存储相应版本的设备支持文件。 每个 iOS 版本都有一个对应的设备支持文件集&#xff0c;这些文件包含有关设备架构和操作系统的信息&#xff0c;以便 Xcode 能够正确地调试和…

判断css文字发生了截断,增加悬浮提示

示例&#xff1a; 固定显示宽度&#xff0c;溢出显示...&#xff0c;利用了css的属性&#xff0c;想要实现成下面这样&#xff1a; 针对溢出的文字&#xff0c;hover显示全部。 提示很好加&#xff0c;使用tooltip组件就行了&#xff0c;难点是如何判断是否发生了文字溢出。…

JS数组与它的42个方法

前言 数组在js中作为一个非常重要的类型之一&#xff0c;在我们对数据处理&#xff0c;存储数据&#xff0c;条件渲染的时候经常会用到&#xff0c;所以随着ES的不断更新&#xff0c;数组的方法也是越来越多&#xff0c;也让我们使用数组对数据操作的时候&#xff0c;越来越简…

【Python百宝箱】数据巨轮启航:Python大数据处理库全攻略,引领数据科学新浪潮

前言 在当今数据爆炸的时代&#xff0c;处理大规模数据集已经成为数据科学和工程领域的关键挑战。Python作为一种强大而灵活的编程语言&#xff0c;吸引着越来越多的数据专业人士。本文旨在为读者提供一份全面的指南&#xff0c;介绍了Python中几个重要的大数据处理库&#xf…

竞赛保研 python 爬虫与协同过滤的新闻推荐系统

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python 爬虫与协同过滤的新闻推荐系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&…

天线的分类

1.按工作性质可分为发射天线和接收天线。 2、按用途可分为通信天线、广播天线、电视天线、雷达天线等。 3、按方向性可分为全向天线和定向天线等。 4、按工作波长可分为超长波天线、长波天线、中波天线、短波天线、超短波天线、微波天线等。 5、按结构形式和工作原理可分为…

Python求小于m的最大10个素数

为了找到小于m的最大10个素数&#xff0c;我们首先需要确定m的值。然后&#xff0c;我们可以使用一个简单的算法来检查每一个小于m的数字是否是素数。 下面是一个Python代码示例&#xff0c;可以找到小于m的最大10个素数&#xff1a; def is_prime(n): if n < 1: …

Conda 使用教程大全来啦

什么是 Conda&#xff1f; Conda 是一款功能强大的软件包管理器和环境管理器&#xff0c;您可以在 Windows 的 Anaconda 提示符或 macOS 或 Linux 的终端窗口中使用命令行命令 Conda 可以快速安装、运行和更新软件包及相关依赖项。Conda 可以在本地计算机上创建、保存、加载和…

swing快速入门(八)

注释很详细&#xff0c;直接上代码 上一篇 新增内容 cardLayout布局管理器 事件监听器的创建与绑定 多种布局与容器的结合使用 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class swing_test_6 {public static v…