linux账号和权限管理-1

简介: Linux操作系统是一个多用户、多任务的服务器操作系统,提供了严格的权限管理机制,主要从用户身份、文件权限两方面对资源访问进行限制。任何一个使用系统资源的用户都需要首先向系统 管理员申请一个账号,然后以这个账号的身份进入系统。本章将分别学习Linux操作系统中用户和组账号的管理、文件权限和归属的管理。

简介


Linux操作系统是一个多用户、多任务的服务器操作系统,提供了严格的权限管理机制,主要从用户身份、文件权限两方面对资源访问进行限制。任何一个使用系统资源的用户都需要首先向系统 管理员申请一个账号,然后以这个账号的身份进入系统。本章将分别学习Linux操作系统中用户和组账号的管理、文件权限和归属的管理。


本章重点


添加、删除、修改用户账号

设置目录和文件的权限

设置目录和文件的归属

1.管理用户账号和组账号

与Windows操作系统相比,Linux操作系统中的用户账号和组账号的作用在本质上是一样的,同样都是基于用户身份来控制对资源的访问,只不过在表现形式及个别细节方面存在一些差异。


1.1用户账号和组账号概述

与Windows操作系统一样,Linux操作系统的每一个用户账号也都有唯一的用户名与密码。用户在登录时输入正确的用户名和密码,就能够进入操作系统和自己的主目录。本小节将介绍Linux操作系统中用户账号和组账号的相关概念。


1.用户账号

在Linux操作系统中,根据系统管理的需要将用户账号分为不同的类型,主要包括超级用户、普通用户和程序用户,各类型拥有的权限、担任的角色也各不相同。


超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。

普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。

程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号, 这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、mail 等。

2. 组账号

基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。 例如,用户zhangsan是技术部的员工,与部门内的其他同事同属于基本组tech,后来因工作安排需 要,公司将zhangsan加入邮件管理员组mailadm,则此时用户zhangsan同时属于tech、mailadm组, tech组是其基本组账号,而mailadm组是其附加组账号。


对组账号设置的权限将适用于组内的每一个用户账号。


3. UID 和 GID 号

Linux操作系统中的每一个用户账号都有一个数字形式的身份标记,称为UID(UserIDentity,用户标识号),对于操作系统核心来说,UID是区分用户的基本依据,原则上每个用户的UID号应该是唯一的。root用户账号的UID号为固定值0,而程序用户账号的UID号默认为1~499,500-60000的UID号默认分配给普通用户使用。


与UID类似,每一个组账号也有一个数字形式的身份标记,称为GID(GroupIDentity,组标识号)。root组账号的GID号为固定值0,而程序组账号的GID号默认为1-499,500-60000的GID号默认分配给普通组使用。


1.2用户账号管理

Linux操作系统中的用户账号、密码等信息均保存在相应的配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。


1.用户账号文件

与用户账号相关的配置文件主要有两个,分别是 /etc/passwd和 /etc/shadow。前者用于保存用户名称、宿主目录、登录Shell等基本信息,后者用于保存用户的密码、账号有效期等信息。在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用 ":"(冒号)进行分隔。


1)passwd文件中的配置行格式


操作系统中所有用户的账号基本信息都保存在 /etc/passwd文件中,该文件是文本文件,任何用户都可以读取文件中的内容。例如,以下操作可分别查看 /etc/passwd文件开头、末尾的几行内容。


[root@localhost ~]# head -2 /etc/passwd


root:x:0:0:root:/root:/bin/bash


bin:x:1:1:bin:/bin:/sbin/nologin


[root@localhost ~]# useradd teacher


[root@localhost ~]# passwd teacher


更改用户 teacher 的密码 。


新的 密码:


重新输入新的 密码:


passwd:所有的身份验证令牌已经成功更新。


[root@localhost ~]# tail -1 /etc/passwd


teacher:x:1001:1001::/home/teacher:/bin/bash


在passwd文件开头的部分,包括超级用户root及各程序用户的账号信息,系统中新增加的用户账号信息将保存到passwd文件的末尾。passwd文件的每一行内容中包含了七个用 ":"(冒号)分隔的配置字段,从左到右各配置字段的含义分别如下所述。


第1字段:用户账号的名称,也是登录系统时使用的识别名称。

第2字段:经过加密的用户密码字串,或者密码占位符 "X"。

第3字段:用户账号的UID号。

第4字段:所属基本组账号的GID号。

第5字段:用户全名,可填写与用户相关的说明信息。

第6字段:宿主目录,即该用户登录后所在的默认工作目录。

第7字段:登录Shell等信息,用户完成登录后使用的Shell。

基于系统运行和管理的需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户账号的密码信息也是保存在passwd文件中的,不法用户可以获取密码字串进行暴力破解,这样一来账号安全就存在一定的隐患。因此,后来将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符 "X"。


2)shadow文件中的配置行格式


shadow文件又被称为"影子文件",其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取shadow文件中的内容,且不允许直接编辑该文件中的内容。例如,以下操作可分别查看 /etc/shadow文件开头、末尾的几行内容。


[root@localhost ~]# head -2 /etc/shadow


root:$6$TUVznlT4e5xbqyB6$BD8oie2/8h4jJEJ2TWIHxtwt0ofz010uFIfBNrTTtbYApirm6acch7kwa8bPsuiM6aRFVY83rxQQzMm3G8zXN/::0:99999:7:::


bin:*:17110:0:99999:7:::


[root@localhost ~]# tail -1 /etc/shadow


teacher:$6$.5IDDZ1w$s8EpjMwhhtkdAos6YOj8Ja69Wq4xE3C6wso2zB1yNV5fQmf6X43frBnydpWl0H5S7ZjZMm.7PA4BnNAG1lCwT0:18533:0:99999:7:::


shadow文件的每一行内容中包含了九个用 ":"(冒号)分隔的配置字段,从左到右各配置字段的含义分别如下所述。


第1字段:用户账号名称。

第2字段:使用SHA-5 12 (哈希算法中的一种)加密的密码字串信息,当为或 "!!" 时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统。

第3字段:上次修改密码的时间,表示从197◦年01月⑴日算起到最近一次修改密码时间隔的天数。

第4字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制。

第5字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。

第6字段:提前多少天警告用户密码将过期,默认值为7。

第7字段:在密码过期之后多少天内禁用此用户。

第8字段:账号失效时间,此字段指定了用户作废的天数(从197◦年01月01日起计算),默认值为空,表示账号永久可用。

第9字段:保留字段,目前没有特定用途。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
4月前
|
算法 Linux 数据安全/隐私保护
【linux】root大王如何制约普通用户——权限管理
【linux】root大王如何制约普通用户——权限管理
|
6月前
|
算法 Linux 数据安全/隐私保护
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
Linux权限管理:深入理解setuid、setgid、seteuid和setegid
525 0
|
13天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
39 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
83 14
|
3月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
5月前
|
网络协议 Linux 数据安全/隐私保护
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
【Linux操作系统】权限管理和粘滞位
|
5月前
|
安全 Linux Shell
【Linux】权限管理
【Linux】权限管理
49 5
|
6月前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
6月前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。
|
6月前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
【5月更文挑战第24天】 在Linux操作系统中,文件系统权限管理是维护系统安全和用户数据隔离的关键机制。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他类别的读、写、执行权限。我们将分析权限位的具体含义,如何通过命令行工具修改权限,以及权限掩码(umask)的作用。此外,我们还将讨论文件系统权限在实际应用中的常见问题及其解决方案,帮助读者构建更为安全且高效的Linux工作环境。