热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入解析用户、用户组及文件目录权限管理

在对文件或目录执行详细信息列表操作时,会看到一串字符。这串字符以每三个一组的形式出现,分别代表了用户、用户组及其他用户的访问权限。通过深入解析这些权限设置,可以更好地理解和管理系统的安全性与访问控制。

      当我们对文件或者目录进行信息的长列出时,我们能看到这样一条信息,那么前面那串字符串代表着什么意思呢?这串字符串,每三个为一组,rwx,r-x,r-x.分别代表着文件所有者,文件所属组,以及其他人对这个文件的权限。


用户名


用户类型


  •  管理员 root:具有所有权限的用户,UID的值为0。
  • 普通用户:我们正常创建的用户,UID为500~60000。
  • 系统用户:保障系统运行的用户,一般不提供密码登录系统,UID为1~499。


用户相关文件

与用户相关的文件主要有/etc/passwd和/etc/shadow。

A. /etc/passwd

存放用户的基本属性,从该文件可以查看Linux的所有用户。

例如:利用cat  /etc/passwd命令来查询文件


格式为:

【用户名:密码:用户ID:用户主组ID:用户详细信息(如姓名,年龄,电话等):用户根目录:用户编程环境】

第二行显示为x意味着密码是被加密的。

每个用户有1个主组(私有组),1个或者多个附加组。

B. /etc/shadow

例:

存放用户密码的一些策略,格式为:

【用户名:密码:最近更改密码的日期:密码不可更该的天数:密码需要重新更改的天数:密码更改前的警告期限:密码过期的宽限时间:帐号失效日期:保留】



用户命令

1.新增用户:useradd -d 根目录 -g 主组 -G 附加组列表(逗号隔开) 用户名

2.重置密码:passwd 用户名

3.修改用户:usermod -d 根目录 -g 主组 -G 附加组列表(逗号隔开) 用户名---------该命令的-G会把用户从原来的附加组移出来,可以使用-a参数指明是新增模式。

4.删除用户:userdel -r 连根目录一起删除 用户名

5.查看所有用户:cat /etc/passwd

6.查看单个用户详细:id 用户名

7.查看当前所有的登录用户:who



用户组

类型:

用户组是用户的容器,用户能从用户组继承权限。


  • 普通用户组:可以加入多个用户。
  • 系统用户组:一般加入一些系统用户。
  • 私有用户组:创建用户的时候,如果没有指明用户组,都会为该用户创建一个同名的用户组。私有用户组其实也是普通用户组的一种。

用户组相关文件

与用户相关的文件主要有/etc/group和/etc/gshadow。

/etc/group

例子:
存放组的基本信息。格式为:

【组名:组密码:组ID:用户列表】

/etc/gshadow

可以参考用户的/etc/shadow

用户组命令

    1.新增组:groupadd -g UID号 组名---------如果不指定UID号则自动生成。

    2.修改组:groupmod -n 新组名 组名 ----------可以用来改组名。

    3.删除组:groupdel 组名-------------如果组内还有用户,则无法删除。

    4.查看所有组+查看某个组内的用户:cat /etc/group。

    5.查看用户的组信息:id 用户名

    输出:

    uid=501(weinianjie) gid=501(weinianjie) groups=501(weinianjie),0(root)

    gid是主组,groups是附加组。

    6.将用户添加入组里:gpasswd -a 用户名 组名

    7.将用户从组里移除:gpasswd -d 用户组 组名


文件权限

       一般来说文件有多种权限,rwx这三种,对于文件和目录来说分别对应着不同的意思,通常我们可以看到一下这些权限:

对于文件来说:   


  •     当仅r权限作用在文件上的时候,用户可以读取该文件的内容:cat less more head tail
  •     当仅w权限作用在文件上的时候,用户可以修改文件的内容:>>
  •     当仅x权限作用在文件上的时候,无作为.
  •     当rw权限作用在文件上的时候,用户即能读与能修改:cat less more head tail vim nano > >>
  •     当rx权限作用在文件上的时候,用户可以执行该文件
  •     当wx权限作用在文件上的时候,权限等同于仅w权限.

    文件的常见权限是r--  rw-   rwx

对于目录来说:


  •     当仅r权限作用在目录上的时候,用户可以短列出目录下的文件名.
  •     当仅w权限作用在目录上的时候,无作为.
  •     当仅x权限作用在目录上的时候,用户可以进入该目录,并且在知道具体文件名且具有相关权限的情况下,可以访问 子文件

  •     当rw权限作用在目录上的时候,权限等同于仅r权限
  •     当rx权限作用在目录上的时候,用户进入,长列出.

  •     当wx权限作用在目录上的时候,用户可以进入且可以创建及删除文件.但不能使用文件名通配符

目录的常见权限是:r-x  rwx

修改用户所有者,用户组,和用户权限的命令

    chown    修改用户所有者,或者所属组。(只有root才能修改文件所有人)


  • 用户名 filename
  • 用户名.组名 filename 或 用户名:组名 filename  同时更改owner和group  如果.或:前省略,则只改group

chgrp  组名 filename   修改所属组

使用chmod   为文件添加或者修改权限

举例:可以利用ugo/a +/-/=  rwx 来赋值权限  ugo分别代表用户名,组名,其他人,a代表所有人,+-=分别代表增加减少权限和赋值权限,

还有一种改变权限的方法,也是常用的,常见的修改权限的方法,就是利用掩码,r代表4,w代表2,x代表1,777就代表-rwxrwxrwx-  而661就意味着-rw-rw--x.也就是说利用类二进制的方法来简化对权限的增减


推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • PHP中去除换行符的多种方法及应用场景
    本文将详细介绍在PHP中去除换行符的各种方法,并结合实际应用场景进行说明。通过本文,您将了解如何根据不同操作系统的特点,选择最合适的换行符处理方式。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
author-avatar
点提土八撇又254
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有