热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Linux用户、用户组与文档属性

一、理解Linux 多用户,多任务特性Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登

一、理解Linux 多用户,多任务特性

Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。

root :系统维护

www:网页修改

ftp:文件上传

mysql:sql查询

不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

二、Linux 用户角色分类

root用户:拥有最高权限,可以登录系统,进行任何操作。

虚拟用户:虚拟用户也被称为伪用户或假用户,以与真实用户区分开来。这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的,而非后来添加的。

普通真实用户:这类用户等登录系统,权限有限,由管理员添加。

三、用户和用户组的概念

Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户。

一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限。

比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理。

另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。


四、用户和用户组的关系

用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:

创建用户:useradd vuser

设置密码:passwd vuser

一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。

一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。

多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。

多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

五、User, Group 及 Others

根据用户与用户组的关系,可以将权限分为所有者权限(User)、所有者同组权限(Group)和所有者非同组权限(others),下面举例说明:


天神:root 用户,无所不能。

王大毛家:某个用户组

王大毛:某个用户组中的用户王大毛房间的所有者是王大毛,里面的东西,其他人不能乱动,表示为所有者权限 (User)

王大毛家内公共区域三兄弟可以共享,表示为所有者同组权限(Group)对于王大毛来说,张小猪就不是他们家的人,表示为所有者非同组权限(others)

六、与用户和用户组相关的配置文件

6.1 与用户相关的配置文件

/etc/passwd  用户(user)的配置文件,存放账户信息
/etc/shadow   用户(user)影子口令文件,存放账户密码相关信息



6.2 与用户组相关的配置文件

/etc/group :用户组(group)配置文件,存放用户组信息
/etc/gshadow :用户组(group)的影子文件,存放组管理密码相关信息

七、Linux 文档属性

这里的文档指的是文件和目录,用root 用户登录后,执行 ls -la 。


7.1 文档权限

文档权限的10个字符

第一个字符表示文件类型

- :默认为普通文件

d :表示目录

l :链接文件

c :字符设备文件

b :块设备文件

第二个至第四个,三个字符表示所有者权限

第五个至第七个,三个字符表示同组权限

第八个至第十个,三个字符表示非同组权限

所有者权限、同组权限 、非同组权限都由r、w、x 组成,每个字符代表不同的权限


这样可以给文档设置所有者有什么权限,同组的有什么权限,不同组的有什么权限。对于目录来说,首先要有执行权(能进入目录),然后再有读权限(列出目录内容),最后是写权限(在目录中创建、删除文件)。


7.2 文件权限意义

r:可以读这个文件的具体内容;

w:可以编辑这个文件的内容,包括增加删除文件的具体内容;

x:文件就具有了可执行的权限-------注意:在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系。


7.3 目录权限意义

r:可以查看此目录下的完整文件列表信息。

w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个目录下的结构列表(这个要重视) 具体权利如下:可以在此目录下创建新的文件或目录;可以在此目录下删除存在的文件或目录(不论该文件的权限是什么,这点要格外注意!);可以重命名及改变文件或目录的位置。

x:目录没有可执行的权限,因此目录中x 的功能就是允许别的用户进入这个目录。

八、连结数


8.1 inode节点的含义

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。


文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。


8.2 inode包含的内容

inode包含文件的元信息,具体来说有以下内容:

文件的字节数;文件拥有者的User ID;

文件的Group ID;

文件的读、写、执行权限;

文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间;

链接数,即有多少文件名指向这个inode;

文件数据block的位置。

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。可以用stat命令,查看某个文件的inode信息:stat 文件名。


8.3 Linux 是如何读取数据的?

Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:1)首先,系统找到这个文件名对应的inode号码;

2)其次,通过inode号码,获取inode信息;

3)最后,根据inode信息,找到文件数据所在的block,读出数据。

注意:从root用户su - 到其他用户,不需要密码;从其他用户 su - root 用户需要密码




推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
author-avatar
渣渣
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有