目录

1. 用户与用户组简介

1.1 作用

1.2 相关配置文件

1.2.1 用户信息文件:/etc/passwd

1.2.2 影子文件:/etc/shadow

1.2.3 组信息文件:/etc/group

1.2.4 组密码文件:/etc/gshadow

2. Linux文件权限解析

2.1 3个身份和3种权限

2.2 权限各字段解释

2.2.1 文件类型

2.2.2 文件权限

2.2.3 文件链接数

2.2.4 文件所有者

2.2.5 文件所属用户组

2.2.6 文件大小

2.2.7 文件内容最后修改时间

2.2.8 文件名

2.3 创建文件/目录的缺省权限

3. 文件与目录的权限意义

4. 修改文件的属性与权限

4.1 chgrp命令

4.2 chown命令

4.3 chmod命令

5. Linux文件名限制

5.1 文件名长度限制(ext2/ext3)

5.2 文件名字符限制

6. Linux目录配置

6.1 目录定义的四种交互形态

6.2 FHS规则简介

6.3 Linux目录简表

7. 绝对路径和相对路径

7.1 绝对路径:由根目录写起的路径

7.2 相对路径:相对于当前位置的路径

8. 查看Linux distribution信息


1. 用户与用户组简介

1.1 作用

用户与用户组就是用于描述用户与文件的关系,即所有者(User)、同组(Group)、其他人(Other)

说明1:Linux中每添加一个用户,就会默认添加一个和该用户名相同的组,作为该用户的初始组(/etc/passwd文件中指出的就是这个初始组ID)

说明2:一个用户可以加入多个用户组

1.2 相关配置文件

1.2.1 用户信息文件:/etc/passwd

/etc/passwd文件各字段说明,

① 用户名

用来对应UID

② 密码

早期Unix将密码放置在该字段,由于所有程序均能读取该文件(/etc/passswd文件的权限为-rw-r--r--),容易造成密码数据被窃取

目前密码数据被放置在/etc/shadow文件中,所以此处字段显示为x

③ UID

UID = 0:root用户

UID = 1 ~ 499:保留给系统使用的ID(默认使用习惯)

由于希望使用最小的权限去运行系统中启动的服务,一般不使用root身份去执行,所以就需要提供这些运行中的程序的拥有者账号,这些账号通常是不可登陆的

UID = 500及以上:一般用户

④ GID

当前用户缺省组ID,用户组相关信息记录在/etc/group文件中

⑤ 用户信息说明字段

⑥ 家目录

当用户登陆后,他的shell将把该目录作为用户的工作目录

⑦ 用户登陆shell

很多系统用户的shell使用/sbin/nologin,此时该用户无法登陆系统。所谓"无法登陆"指的仅是这个用户无法使用bash或其他shell来登陆系统而已(其实系统用户也无需登陆),并不是说这个用户无法使用系统资源

说明:系统管理员通常没必要直接修改/etc/passwd文件,可以使用Linux提供的账号管理工具实现账号的管理与维护

1.2.2 影子文件:/etc/shadow

/etc/shadow文件的权限如下,

这就确保了用户密码的安全性

/etc/shadow文件各字段说明,

① 用户名

与/etc/passwd文件中用户名字段相同

② 加密密码

经过SHA512散列加密算法加密后的密码

所有伪用户的密码都是"!!"或"*",代表没有密码,是不能登陆的

如果新创建的一般用户不设置密码,那么该用户的密码字段也是"!!",表示这个用户没有密码,不能登陆

③ 最后一次修改密码的时间

以自1970年1月1日开始以来的天数计算

下图中root用户最后一次修改密码的时间是1970年1月1日之后的17628天,也就是2017年12月11日

④ 密码有效期

该字段用于强制用户定期修改密码,可以指定距离第3个字段(最后一次修改密码)多长时间内再次变更密码

⑤ 密码需要变更前的警告天数

⑥ 密码过期后的宽限天数

⑦ 账号失效时间

以自1970年1月1日开始以来的天数计算

1.2.3 组信息文件:/etc/group

/etc/group文件各字段说明,

① 组名

② 组密码

此处的"x"也仅是密码标识,真正加密后的组密码保存在/etc/gshadow文件中

用户组密码主要是用来指定组管理员。当root用户没有时间进行用户的组管理时,可以指定组管理员,如果有用户需要加入或者退出某用户组,可以由该组的组管理员替代root进行管理

③ GID

④ 组中的用户

该字段用于列出每个组中包含的所有用户,如果该用户组是这个用户的初始组,则该用户不会列入该字段,所以该字段显示的是这个用户组的附加用户

每个用户可以加入多个附加组,但是只能属于一个初始组。如果需要把用户加入其他组,则需要以附加组的形式添加

1.2.4 组密码文件:/etc/gshadow

/etc/gshadow文件的权限如下,也是为了确保组密码的安全

/etc/gshadow文件各字段说明,

① 组名

与/etc/group文件中的组名对应

② 组密码

对于大多数用户来说,通常不设置组密码

③ 组管理员

从系统管理员的角度来说,该文件最大的功能就是创建组管理员

④ 组中的附加用户

与/etc/group文件中的组附加用户相同

2. Linux文件权限解析

2.1 3个身份和3种权限

3个身份:owner group others

3种权限:read write execute

2.2 权限各字段解释

2.2.1 文件类型

-:普通文件

具体的种类可以用file命令查看,一般可分为,

① 纯文本文件,编码集可以是ASCII、UTF8等

② 二进制文件(binary)

③ 数据格式文件(data),这属于一种特殊格式的文件,由特定的程序读取处理

e.g. last命令使用的/var/log/wtmp文件

查看wtmp的man手册可知,该文件就是将登陆信息组织为结构体存储

d:目录文件

l:链接文件(软连接)

b:块设备文件

c:字符设备文件

s:套接字文件

p:管道文件(有名管道)

2.2.2 文件权限

rw-r--r--就是3个身份的3种权限

2.2.3 文件链接数

表示有多少文件名链接到标识该文件的inode

Linux中每个文件都会将他的权限与属性记录到inode中,即文件系统是以inode来管理文件的;而目录是以文件名来管理文件的。

目录的block中记录的就是目录中的文件名与inode的对应关系,因此在实现层面,每个文件名都会关联到一个inode,也就有了此处的文件链接数。

说明:空目录的链接数为什么是2?

根据链接数的说明,一定是有2个文件名关联到了同一个inode,这2个文件名正是empty_dir和该目录下的 .

由此可以讨论下在A目录中新建目录,对A目录链接数的影响。假设在A目录下新建B目录,那么B目录的初始链接数为2;而B目录下.. 文件和A目录关联的inode相同,所以A目录的链接数会加1

2.2.4 文件所有者

如题

2.2.5 文件所属用户组

文件的默认用户组为创建该文件用户的初始组

2.2.6 文件大小

默认以B为单位,可以使用-h选项进行人性化显示

2.2.7 文件内容最后修改时间

Linux中有三个时间,

① 文件最后获取时间(access time)

② 文件内容最后修改时间(modify time)

③ 文件属性最后修改时间(change time)

实际上Linux中没有所谓文件创建时间

说明1:touch命令默认会同时修改access time & modify time,可通过选项只修改其中之一

说明2:后续笔记中将看到,修改文件属性涉及的是inode,修改文件内容涉及的是block

说明3:通过stat命令可以查看文件的属性和状态

疑问:此处Blocks & Device字段的含义并未完全理解,尤其是Blocks为啥使用了8个

2.2.8 文件名

如果以. 开头,是隐藏文件

2.3 创建文件/目录的缺省权限

所有者:文件创建者

所属组:文件创建者的初始组(每个用户可以属于多个组,但初识组只有一个)

权限:通过umask命令管理

命令名称:umask

命令英文愿意:the user file-creation mask

命令所在路径:shell内置命令

执行权限:所有用户

语法:umask [-S]

umask 新文件权限掩码

-S:以rwx形式显示新建文件缺省权限掩码

功能描述:显示、设置文件的缺省权限掩码

root的umask为0022,即在创建文件/目录时会取消group和other的w权限。当然,在创建文件时,默认不具备x权限。

说明1:普通用户默认的umask值为0002

说明2:关于设置文件权限掩码

使用umask命令设置文件权限掩码只能在shell中暂时生效,要想永久修改需要修改脚本(比如/etc/bashrc,该脚本中会根据不同的UID设置不同的umask;也可以修改各用户家目录下的.bashrc,修改时要注意各脚本的执行顺序,后执行的脚本会覆盖之前的设置)

3. 文件与目录的权限意义

关键:rwx权限对普通文件[-]和目录[d]的意义不同

核心:文件和目录(目录也是文件),均将权限属性记录在inode中,实际数据记录在block中。rwx权限就是通过inode中的信息,控制不同用户对block的访问。

造成文件与目录不同的原因就是文件的block中记录的是文件的数据,而目录的block中记录的是该目录中文件名与inode的对应关系

说明1:rwx权限不能限制root用户

e.g. /etc/shadow文件的权限为000,但是root用户依然可以编辑

说明2:如果只是拥有一个目录的r 权限而没有x 权限,在使用ls显示目录内容时可能仍无法成功

首先在/home/chencheng目录中新建test目录,并在其中touch 2个文件1.c和2.c,然后修改test目录权限为444使得用户失去x权限,然后使用ls查看该目录的内容。

分析:原因可能是ls的实现需要进入目标目录,但此时用户没有x权限

4. 修改文件的属性与权限

4.1 chgrp命令

命令名称:chgrp

命令所在路径:/bin/chgrp

执行权限:所有用户

功能描述:改变文件或目录的所属组

语法:chgrp  [-R]  组名  文件名/目录名

-R:递归修改目录下的所有文件/目录

注意1:只有root用户可以进行此操作(不然可以随便给其他用户组添加文件了~~)

注意2:组名必须在/etc/group文件中,否则报错

4.2 chown命令

命令名称:chown

命令所在路径:/bin/chown

执行权限:所有用户

功能描述:改变文件所有者和所属组

语法:chown  [-R]  用户名[: 组名]  文件名/目录名

-R:递归修改目录下的所有文件/目录

使用场景:root用户把自己的文件复制给普通用户(cp会保留文件的所有者和所属组),为了让普通用户能修改这个文件,root用户应当把这个文件的属主修改为那个普通用户

注意1:只有root用户可以进行此操作

注意2:chown可以仅修改用户名,也可以同时修改组名,此时以分号分割用户名和组名

注意3:用户名必须在/etc/passwd文件中,否则报错

4.3 chmod命令

命令名称:chmod

命令所在路径:/bin/chmod

执行权限:所有用户

功能描述:改变文件或目录的权限

语法:①数字法;②字母法

数字法比较熟悉,不再详解

字母法规则如下:

示例:chmod  u=rwx,go=rx  .bashrc

注意1:u=rwx,go=rx是连在一起的,中间没有空格

注意2:只有root用户和文件所有者可以修改文件权限

注意3:加-R选项可以进行递归修改

5. Linux文件名限制

5.1 文件名长度限制(ext2/ext3)

① 单一文件或目录文件名最长255个字符

② 包含完整路径最长4096个字符

5.2 文件名字符限制

由于Linux在文件界面下的一些命令操作的关系,一般情况下文件名字应避免以下特殊字符(都是在shell中有特殊含义):

*    ?    <    >    ;    &    !    [    ]    |    \    '    "    (    )    {    }

还有文件名最好不以-开头,否则容易和命令选项混淆

6. Linux目录配置

注:Linux目录配置遵循FHS标准(Filesysytem Hierarchy Standard)

6.1 目录定义的四种交互形态

可/不可分享:该目录是否可以分享给其他系统挂载使用(比如通过NFS供其他机器挂载),不可分享的内容都是仅与自身机器有关

可/不可变动:该目录中的数据是否经常变动

6.2 FHS规则简介

FHS仅定义了三个目录应该放置的数据

/:根目录,与开机系统有关

/usr:UNIX software resource,与软件安装/执行有关

/var:variable,与系统运行过程有关

说明1:所有目录都由根目录衍生而来

说明2:根目录还与开机、还原、修复等操作相关。由于开机时需要特定的开机软件、内核文件、开机所需程序、函数库等文件数据;若系统出现错误时根目录也必须包含有能够修复文件系统的程序。

说明3:为了性能和稳定性,根目录所在分区越小越好

说明4:开机过程中仅有根目录会被挂载,其他分区则是开机完成后才会挂载。因此,根目录下与开机过程有关的目录必须和根目录在同一分区,包括

/etc:配置文件

/bin:重要执行文件

/dev:所需要的设备文件

/lib:执行文件所需的函数库和内核所需的模块

/sbin:重要的系统执行文件

说明5:关于/usr目录

① 所有系统默认的软件(distribution发布者提供的软件)都在/usr目录下

② 系统管理员自行下载安装的软件(非distribution默认)建议安装在/usr/local目录中

6.3 Linux目录简表

注:详细表格见《鸟哥的Linux私房菜:基础学习篇》P153 ~ 157

7. 绝对路径和相对路径

7.1 绝对路径:由根目录写起的路径

绝对路径的用途:绝对路径正确性好,如果在程序中使用相对路径,可能由于执行的工作环境不同,导致一些问题发生。

7.2 相对路径:相对于当前位置的路径

相对路径的用途:

① 一般在安装软件时使用。比如一个软件需要etc、bin、man这三个目录,但有些人喜欢将软件安装在/usr/local/packages/etc、/usr/local/packages/bin和/usr/local/packages/man下,有些人喜欢安装在/home/packages/etc、/home/packages/bin和/home/packages/man目录下,此时使用相对路径可以使得安装更方便。

② 使用相对路径可以避免写很长的路径名

8. 查看Linux distribution信息

命令名称:uname

命令所在路径:/bin/uname

执行权限:所有用户

功能描述:显示系统信息

语法:uname  [-asr]

-a:显示所有信息

-s:显示内核类型

-r:显示内核发行版本

Linux操作系统使用基础03:Linux文件权限与目录配置相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置

    第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要 ...

  2. linux基础学习——linux的文件权限和目录配置

    linux基础学习--linux的文件权限和目录配置 1.用户和用户组和其他人概念: 三个概念的前提宗旨:linux是一个多人多任务的系统环境.如果不对文件作出一个权限限制的话.任何人都能操作这份文件 ...

  3. Linux 的文件权限与目录配置

    第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 3. Linux目录配置 3.1 Linux目录配置的依据--FHS:/,/usr, /var 3.2 目录树(direct ...

  4. 【笔记】linux文件权限与目录配置

    linux文件权限与目录配置 文章目录 linux文件权限与目录配置 一.文件权限 <1>文件属性 [特别注意] <2>连接数 二.修改文件权限 <1>改变群组 c ...

  5. 一文走进Linux——文件权限与目录配置

    鸟哥的Linux私房菜第五章--Linux的文件权限与目录配置 文章目录 第五章--Linux的文件权限与目录配置 一.拥有者.群组.其他人 二.文件权限 1. 文件属性 2. 改变文件属性 3. 文 ...

  6. 鸟哥的私房菜笔记—文件权限与目录配置

    本文参考鸟哥的私房菜-文件权限与目录配置 1.linux中的角色 user group others 每种角色都有三种权限:r(read) w(write) x(execute) 2.linux文件属 ...

  7. Linux学习:Linux 的文件权限与目录配置

    引用:<鸟哥的Linux私房菜基础篇第三版> Linux最优秀的地方之一就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了. Linux一般 ...

  8. Linux操作系统使用基础06:文件与文件系统的压缩与打包

    目录 1. Linux系统常见压缩命令 1.1 压缩文件管用后缀名 1.2 gzip命令 1.3 bzip2命令 1.4 tar命令 1.1.4 打包与压缩 1.4.2 解包解压缩 1.4.3 查看文 ...

  9. 鸟哥Linux私房菜基础学习篇 第二部分 Linux 文件、目录与磁盘格式_Linux文件权限与 目录配置_Linux文件与目录管理...

    2019独角兽企业重金招聘Python工程师标准>>> 1.相对路径相对某目录比较灵活方便(如安软件时候指定目录),绝对路径一般不会因为环境变化而产生错误. 2.目录变化时的切换 - ...

最新文章

  1. CSS之 background-color: rgba(255,0,0,opacity number)
  2. 软件测试工程师们,今年的年终奖你想拿多少?
  3. mysql 多配置文件实例安装_mysql安装之多实例多配置文件安装
  4. 从系统的启动过程分析,为什么我们划分分区的时候 /sbin 、/bin、/lib、/dev不能做为独立的分区?...
  5. GCC编译选项 -OX[转]
  6. IA-32 Intel手册学习笔记(一)系统架构概述
  7. SQLServer中批量插入数据方式的性能对比 (转)
  8. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
  9. Javascript中的内置对象:RegExp对象
  10. DelphiMVC连接池配置
  11. python的数组怎么用_python数组的使用
  12. 电磁铁轭铁和极头收缩角
  13. 固态硬盘SSD格式化后,数据恢复的可能性有多大?
  14. 由于这台计算机没有远程桌面客户端
  15. 数字化时代:电梯广告的喜与忧
  16. R语言筛选两列中元素相同的重复数据
  17. 基于Java的实时通信软件的设计(类似微信)
  18. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)
  19. 如何快速制作一个H5单页面网站
  20. pandas pandas具体用法相关内容(三)

热门文章

  1. ansi c标准_C语言为什么需要有标准库
  2. 链接在HTML的英文,html超链接学习(适于初学者)(国外英文资料).doc
  3. windows一键安装oracle,Oracle在Windows下快速搭建
  4. The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, forc
  5. Java中调用FTP服务时inputStream获取一直为null
  6. C语言求超级素数的个数,求一个输出a-b的超级素数程序(c)
  7. mybatis的mapper.java_mybatis笔记之使用Mapper接口注解
  8. Eclipse添加注释的快捷键alt+shift+j,在菜单中是source-gt;generate element comment
  9. vue ---- filter(vue2才有)
  10. 阻滞增长模型求解_种群增长模型