Linux学习笔记_2021-01-21

一切从“/”开始

Linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件。Linux系统中的一切文件都是从根(/)目录开始,并且按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。Linux系统中的文件和目录名称严格区分大小写,并且文件名称中不得包含斜杆(/)。

文件系统层次化标准FHS是根据以往无数Linux系统用户和开发者的经验总结而来,是用户在Linux系统中存储文件时需要遵循的规则,对用户来说是一种约束。

常见的目录以及存放内容:

Liunx系统常见目录及相应内容
目录名称 应放置文件内容
/boot 开机所需文件(内核、开机菜单以及配置文件等)
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户家目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 网络服务的数据文件目录
/tmp 任何人可使用的共享临时目录
/proc 虚拟文件系统(系统内核、进程、外部设备)
/usr/local 用户自行安装的软件
/usr/sbin Linux开机时不会用到的软件/命令/脚本
/usr/share 帮助与说明文档,可放置共享文件
/var 主要存放经常变化的文件
/lost+found
当文件系统发生错误时,将一些丢失的文件片段存放这里
路径指的是如何定位到某个文件,分绝对路径和相对路径。绝对路径指的是从根目录开始写起的文件或目录名称,相对路径值得是相对于当前路径的写法。
用户身份与文件权限
Linux是一个多用户、多任务的操作系统。

带着问题:

文件的所有者、所属组以及其他人如何对文件进行读r、写w、执行x等操作?
Linux系统中如何添加、删除、修改用户账户信息?
SUID、SGID与SBIT特殊权限用法、场景、作用?
文件的访问控制列表是什么?
su命令与sudo服务作用。
用户身份与能力
系统管理员root账户UID数值为0.UID不能重复,为了方便管理同一组的用户,Linux系统中存在用户组。通过使用用户组号码可以把多个用户加入一个组中进行统一规划权限或指定任务。Linux中创建每个用户时,自动创建一个与其同名的基本用户组,基本用户组只有该用户一个人。如果该用户以后被纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组多个扩展用户组。

useradd 命令用于创建新的用户 格式为useradd [选项] 用户名 使用该命令创建账户时,默认的用户家目录会被存放在/home目录中,默认的shell解释器为/bin/bash

groupadd 命令用于创建用户组 格式为 groupadd [选项] 群组名

usermod 命令用于修改用户的属性 usermod [选项] 用户名 用户的信息存放在/etc/passwd文件中,可以直接用文本编辑器修改用户参数项目

passwd 命令用于修改用户密码、过期时间、认证信息等 格式为passwd [选项] [用户名] 注意:root有权限修改其他人的密码 普通用户只能修改自身密码

userdel 命令用于删除用户 格式为 userdel [选项] 用户名 -f参数可以将用户夹目录删除

文件权限与归属
Linux系统中,每个文件都有所属的所有者和所有组,并规定了文件的所有者、所有组以及其他人对文件的读、写、执行权限(简写为rwx)。

Linux中文件类型字符:

   - :普通文科                d:目录文件                l:链接文件                b:块设备文件                c:字符设备文件                p:管道文件

   rwxrw-r--  数字表示法 764 表示 文件所有者可读可写可执行,所有组可读可写,其他人可读

  rw--w--wx 数字表示 623 表示 文件所有者可读可写,所有组写可写,其他人可写可执行

  rw-r--r-- 数字表示644 表示文件所有者可读可写,所有组可读,其他人可读

文件的特殊权限
SUID、SGID、SBIT特殊权限位,对文件权限进行设置的特殊功能,可以与一般权限同时使用。

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限。一种有条件、临时的特殊权限授权方法。

SGID主要实现以下两种功能:

让执行者临时拥有数组的权限(对拥有执行权限的二进制程序进行设置)与SUID区别在于执行程序的用户获取的不是文件所有者的临时权限,而是获取文件所属组的权限。
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
chmod命令用来设置文件或目录的权限 格式为 chmod [参数] 权限 文件或目录名称

chown命令用来设置文件或目录的所有者和所属组 格式为 chown [参数] 所有者:所属组 文件或目录名称

这俩个命令有一个共性,针对目录进行操作时加上大写参数-R表示递归操作,对目录内的所有文件进行操作。

SBIT特殊权限可确保用户只能删除自己的文件,而不能删除其他用户的文件。

文件的隐藏权限
Linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限。

chattr 命令用于设置文件的隐藏权限 格式为 chattr [参数] 文件

lsattr 命令用于显示文件的隐藏格式 格式为 lsattr [参数] 文件

文件访问控制列表
一般权限、特殊权限、隐藏权限共性,权限是针对某一类用户设置。对单个指定用户进行权限控制需要用到文件的访问控制列表(ACL)

基于普通文件或目录设置ACL就是针对指定的用户或用户组设置目录的操作权限。若针对目录进行设置,目录下的文件会继承ACL,若文件设置了ACL,其目录的权限失效。(向下兼容)

setfacl命令 用于管理文件的ACL规则 格式为setfacl [参数] 文件名称 文件的ACL提供的是在所有者、所属组、其他人的读写执行权限之外的特殊权限控制,使用这个命令可以针对单一用户或用户组、单一文件或目录来进行读写执行的控制。针对目录需要使用-R递归参数,普通文件-m参数,删除某个文件ACL则用-b参数。

getfacl命令 用于显示文件上设置的ACL信息

su命令与sodo服务
su命令用来解决切换用户身份需求。

sudo命令用于给普通用户提供额外的权限来完成原本管理员才能完成的任务。

猜你喜欢

转载自blog.csdn.net/weixin_52395571/article/details/113063290