Linux目录结构-用户权限管理

与世无争的帅哥 提交于 2020-02-04 06:25:23

Linux目录结构图

一切从“/”开始(倒状树结构)在Linux系统中,目录,字符设备,块设备,套接字,打印机都被抽象成了文件,Linux一切皆文件
在这里插入图片描述

常用目录详解

/boot 存放开机所需文件-内核,开机菜单所需的配置文件,vmlinuz-内核文件,initrd.msg,初始化文件,等于windows,PXE
/dev 以文件形式放任何设备与接口例如:Device设备,光盘cdrom ,别称-软连接-符 号链接
/etc 存放系统管理和配置文件
/home 普通用户的家目录,普通用户必须是root创建
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里
/lib 开机时用到函数库,以及/bin与/sbin命令调用的函数,library-库-开发- 提供功能
/sbin 开机过程中需要的命令只有root才能执行(原目录usr/sbin)
/media 用于挂载设备文件的目录 /mnt 用于挂载U盘 光盘
/opt 放置第三方的软件,统一管理下载的所有源码包,三方包都放在哪里option
/root 超级用户的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的共享临时目录, - tmp -拥有特殊权限t - SBIT 只有文件的拥有者能删除自己的文件
/proc 虚拟文件系统目录,系统内存的映射。可直接访问这个目录来获取系统硬件信息
/usr 最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录
/var 主要存放经常变化的文件, 日志系统 messages 服务志/var/log/httpd/access_logerror_log --ELK
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里
/etc目录常用配置文件
/etc/resolv.conf DNS客户端配置文件,逐渐被网卡配置文件所替代
/etc/hosts 本机DNS解析文件,优先级高于DNS服务器
/etc/hostname CentOS 7 主机名配置文件
/etc/fstab 开机自动挂载设备的配置文件,开机就启动
/etc/rc.local 开机自启动脚本程序或者命令的文件,也可以磁盘设备挂载,开机后启动
/etc/mtab /当前已挂载的文件系统列表,由scripts初始化,使用mount、umount 命令时会立即更新 mtab 文件
/etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件设置
/etc/init.d 存放系统或服务器以System V 模式启动的脚本
/etc/profile 配置系统的环境变量、别名等的文件,各种永久配置,生效需重新登录
/etc/bashrc 配置系统的环境变量、别名等的文件,各种永久配置,生效需重新登录
/etc/issue 系统启动后用户登录前,登录页面提示信息的配置文件
/etc/issue.net 系统启动后用户登录前,登录页面提示信息的配置文件
/etc/motd 账户登录后弹出的登录提示,可配置欢迎信息
/etc/sysctl.conf Linux内核参数设置文件,用于内核的配置和优化
/etc/redhat-release centos查看版本信息,ubuntu 为/etc/lsb-release,oracle 为 /etc/oracle-release
/etc/group 设置用户的组名和相关信息
/etc/gshadow 查看用户组相关信息
/etc/passwd 账号信息文件
/etc/shadow 密码信息文件
/etc/yum.repos.d/ 存放yum源配置文件目录
/etc/default/useradd 新增账户的默认属性配置
/etc/login.defs 新增用户的属性信息
/etc/skel 提供用户环境变量配置文件,由此目录向新增用户家目录添加环境变量配置文件

普通文件与特殊文件区分

普通文件(文本文件)
d 目录文件
l 链接文件(特指软链接文件,快捷方式=符号链接)
b 块设备文件(block=硬件=机器硬盘=扇区=在Linux 表示为,块设备文件)
c 字符设备文件(字符设备=虚拟终端=tty)
p 管道文件 (> >>
s socket 安全套接字文件(所有的服务基于某个协议所有服务=端口号)虚拟层 - 安全套接层 - 启动服务 -80 端口

用户与用户组的概念

Linux是可多用户系统,同时控制工作,安全系数具备相同特性的用户
一组:分不同的操作权限职责用户,实施,检测,运维
文件,服务,归责,拥有者,用户=属主
Linux操作系统对多用户的管理,是非常繁琐的,所以用组的概念来管理用户就变得简单,每个用户可以在一个独立的组,每个组可以有零个用户或多个用户,Linux系统用户是根据用户ID来识别的,默认ID长度为32位,从默认ID编号从0开始,但是为了和老式系统兼容,用户ID限制在60000以用户分为三种
root用户:ID0 :超级用户
系统用户:ID1-499 或 1-999 :用于运行服务,但是此用户无家目录&不可登入
普通用户:ID500以上- 6版本 或 1000以上 -7版本 :必须由root创建,权限root分配
ID默认从1000 - 6533 最大用户数
Linux系统中的每个创建的文件或者文件夹,都有一个所属用户及所属组,使用ID命令可以显示当前用户的信息
每个用户拥有一个UserID,操作系统实际读取的是UID,而不是用户名称
每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组
每个组拥有一个GroupID
每个进程以一个用户的身份运行,该用户可对进程拥有资源控制权限,出问题能快速找出该进程是谁负责
每个可登陆用户拥有一个指定的Shell环境bin/bash
Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件
root用户:一个特殊的管理账号,也被称为超级用户,root接近完整的系统控制,对系统损害几乎有无限能力,除非必要,不要登入为root
普通用户:非特权用户,权限有限造成损害的能力比较有限
你的用户不是名字叫root就一定是超级用户,普通用户还是超级用户是由系统中UID决定的,UID=0 则为超级用户,UID非0 则为普通用户
[root@localhost ~]# 超级用户
[jiangzhi@localhost ~]$ 普通用户
[root @ localhost ~ ]#
用户名 @ 主机名 ( ~ 当前所在目录)(#root - $普通用户)

用户权限管理

Linux文件或目录有三种权限:
r (读取) 可读取文件内容 ,可列出目录内容
w(写入) 可修改文件内容 ,可在目录中创建删除内容
x (执行) 可作为命令执行脚本,普通用户才能访问目录内容
案列1,文件 – rwx 权限请问该文件可以删除吗?
答案:文件是否可以删除不是看文件自身权限,而是看所在目录是否具备(W)权限

d rwx r-x r-x. 2 root root 6 Nov 12 13:55 date
(d类型)(rwx属主)(r-x属组)(2硬链接个数) (r-x其它)(root属组)(root属组)(6大小)(12号下午13:55创建)(date文件名)
Linux权限,默认授权给三种角色,分别是user ,group ,other ,与用户关联
U代表user用户 ,G代表Group组 ,O代表other其他不在组内的人

权限 文件所有者 文件所属组 其他人
权限项 执行 执行 执行
字符方式 r w x r w x r w x
数字方式 4 2 1 4 2 1 4 2 1

注意:文件是否可以删除,不是受自身权限控制,而是所在的目录是否具备可写权限

权限 文件 目录
4- r 阅读文件内容 浏览目录内容
2-w 修改文件内容 目录中增删改文件
1-x 脚本文件 是否允许进入目录

文件权限默认644 ,文件满位权限 666
目录权限默认755 ,目录满位权限 777

默认权限与满位权限相差22,那这22是用来定义创建文件或目录的权限 ,也称之为反掩码
配置文件路径/etc/profile**,umask = 0022 特殊权限 ,修改完成重启文件source /etc/profile

chmod:修改权限文件或目录

常用参数:

+ 表示增加权限
表示取消权限
= 表示覆盖权限
u user用户
g group组
o other其他
-R 递归更改目录里所有文件-继承权限

以下例子:
[root@localhost ~]# chmod 666 file1 :以数字形式给予满权限在这里插入图片描述
[root@localhost ~]# chmod u+x,g+x,o+x file1 :字母形式给予权限,逗号相隔在这里插入图片描述
[root@localhost ~]# chmod u-x,g-x,o-x file1 :取消所有的x执行权限在这里插入图片描述
[root@localhost ~]# chmod u=rw,g=r,o=r file1 :覆盖当前权限在这里插入图片描述
[root@localhost ~]# chmod -R 777 date :包括目录本身里面所有文件权限覆盖更改在这里插入图片描述
补充:chmod -R /etc --- 不加/ 连同etc自身都改变, chmod -R /etc/ ---加/ 不包括etc自身里面文件改变

chown:修改文件或目录的属主属组

以下例子:
[root@localhost ~]# chown jiangzhi file1 :修改文件所属主在这里插入图片描述
[root@localhost ~]# chown jiangzhi:jiangzhi file1 :修改属主和属组在这里插入图片描述
[root@localhost ~]# chown :dengzhi file1 :单独修改属组前面加双引号或者点在这里插入图片描述

useradd:创建普通用户

常用参数:

-d 指定用户家目录
-g 指定一个组(组必须存在)
-G 指定一个或多个组(组必须存在)
-s 指定解释器例如:/bin/bash或/sbin/nologin
-M 不创建家目录
-u 指定用户ID

以下例子:
[root@localhost home]# useradd -d /home/jianzhi1 -s /bin/bash dengzhi :不-S指定解释器登入普通用户会异常
在这里插入图片描述
[root@localhost home]# useradd -M -d /home/jiangzhi1 zaizhi :创建用户-M不要家目录,-d指定其他家目录
在这里插入图片描述
[root@localhost~]#useradd xianggan -g jiangzhi2 :用户属主与属组都是通过ID识别的在这里插入图片描述
[root@localhost~]#useradd zhongguo -u 888 :指定用户ID
在这里插入图片描述
[root@localhost~]#useradd dengzhi1 -g jiangzhi10 :指定属组在这里插入图片描述
[root@localhost~]#useradd dengzhi2 -g jiangzhi9 -G jiangzhi10 :添加附属组
在这里插入图片描述

userdel:删除普通用户

常用参数:默认删除用户保留家目录

-r 删除用户及家目录,系统用户无法删除
-rf 强制删除用户及家目录,包括系统用户

以下例子:
[root@localhost/home]#userdel dengzhi2 :不加参数默认删除用户,家目录还存在
在这里插入图片描述

[root@localhost/home]#userdel -r dengzhi1 :删除用户及家目录在这里插入图片描述

usermod:修改用户账号

常用参数:

-d 更改用户登入的家目录
-U 解除密码锁定
-L 锁定用户账号

以下例子:
[root@localhost/home]#usermod -d /home/jiangzhi dengzhi :将用户转移到新创建的目录作为家目录需要把/etc/skel/.*文件拷贝到新目录里面在这里插入图片描述

由于新创建的目录没有配置文件,提示符没有任何变化,只能用pwd确定自己的位置在这里插入图片描述

[root@localhost/home]#cp /etc/skel/.* /home/jiangzhi :拷贝所有带.文件到jiangzhi新家目录
在这里插入图片描述
[root@localhost~]#usermod -L dengzhi :锁定用户无法登入
在这里插入图片描述
[root@localhost~]#usermod -U dengzhi :解锁用户
在这里插入图片描述

groupadd:创建用户组

常用参数:

-g 创建工作组指定ID
-r 创建系统工作组ID小于1000

以下例子:
[root@localhost~]#groupadd -g 1888 xianggan
在这里插入图片描述
[root@localhost~]#groupadd -r dengdeng
在这里插入图片描述

groupdel:删除用户组

常用参数:只有默认参数

以下例子:
[root@localhost~]#groupdel fafa

在这里插入图片描述

groupmod:更改用户组

常用参数:

-g 更改组GID
-n 更改组的名称

以下例子:
[root@localhost~]#groupmod -g 1999 xianggan在这里插入图片描述
[root@localhost~]#groupmod -n systemc xianggan
在这里插入图片描述

特殊权限及ACL权限

在特殊的环境下,我们的普通权限已经满足不了我们的安全需求了,所以,我们拥有了特殊权限来加固我们的文件安全,针对文件和文件设定特殊的用户和用户组,配置RWX权限来规定使用的用户

权限 对文件的影响 对目录的影响
SUID-- 属主控制 -4 普通用户当作root用户权限使用
SGID – 属组控制 -2 以文件所属组身份去执行 该目录创建文件所属组相同
Sticky(SBIT)t = 1 无(粘滞位) 该文件属主才能删除该文件

Linux中设置特殊权限方法如下:
设置suid: chmod u+s jiangzhi文件或目录
设置sgid: chmod g+s jiangzhi文件或目录
设置sticky: chmod o+t jiangzhi文件或目录

以下例子:
[root@localhost /]# chmod 4755 root :没有特殊权限普通用户都进不了root家目录,755权限只能查看不能增删在这里插入图片描述
文件或目录4666没有执行权限可读写不能删除S为大写,4777满位权限任意删除添加S为小写在这里插入图片描述

stat:显示文件或目录详细信息时间

常用参数:文件或目录权限,创建时间,软连接,Block个数,文件类型

-f 显示文件系统的信息
Access 访问时间
Modify 修改时间
Change 状态改动时间

以下例子:
[root@localhost ~]# stat /sbin在这里插入图片描述

chattr:添加文件属性

常用参数:

-a 仅允许补充(追加)内容,无法覆盖/删除内容
-s 文件内容在变更后立即同步到硬盘
-u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复

以下例子:
[root@localhost~]#chattr +a file1
在这里插入图片描述
[root@localhost~]#chattr +a file1 :取消a功能
在这里插入图片描述

lsattr:显示文件隐藏属性

-a 列出目录中的所有文件,包括隐藏文件或隐藏权限

以下例子:
[root@localhost~]#lsattr
在这里插入图片描述
[root@localhost~]#lsattr -a
在这里插入图片描述

setfacl:管理文件的ACL规则

常用参数:对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL

-R 递归对目录或文件
-m 更改文件的访问控制
-b 取消ACL

以下例子:
没有设置ACL权限普通用户是没有权限访问root家目录
在这里插入图片描述
[root@localhost~]#setfacl -Rm u:dengzhi:rwx /root:添加ACL规则root目录会多出一个+号表示ACL已经生效,也证实了普通用户在root家目录随意增删改查
在这里插入图片描述
[root@localhost~]#setfacl -b /root:取消ACL规则在这里插入图片描述

getfacl:查看目录ACL信息

常用参数:

以下例子:
[root@localhost~]#getfacl /root :没有设置ACL与设置了ACL的查看区别
在这里插入图片描述

待完成,"小白勿喷,谢谢观看"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!