百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

「Linux」 CentOS7 文件权限管理详解

nanshan 2024-11-15 22:51 16 浏览 0 评论

本节所讲内容:

  • 文件的基本权限:r w x (UGO+ACL)
  • 文件的高级权限:suid sgid sticky

第1章 文件的基本权限

1.1 权限的作用

通过对文件设定权限可以达到以下三种访问限制权限:

  • 只允许用户自己访问;
  • 允许一个预先指定的用户组中的用户访问;
  • 允许系统中的任何用户访问。

1.2 查看文件权限

我们可以通过ls命令来查看一个文件的具体信息,加参数 –l 可以查看这个文件的权限信息

文件权限基本解释:


-

rwx

r-x

r-x

user1

group

time

FILENAME

文件类型

拥有者的权限

所属组的权限

其他人的权限

拥有者

属组

最后修改时间

对象


其中:文件类型,可以为p、d、l、s、c、b和 –

  • p表示命名管道文件
  • d表示目录文件
  • l表示符号连接文件
  • -表示普通文件
  • s表示socket套接口文件,比如我们启用mysql时,会产生一个mysql.sock文件
  • c表示字符设备文件
  • b表示块设备文件

1.4 文件拥有者

所有者(属主)-用户组(属组)-其他用户

所有者: 就是创建文件的用户,这个用户拥有对它所创建的文件的一切权限,所有者可以允许其所在的用户组可以访问所有者的文件。

用户组: 用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组。

其它用户:系统内的其他所有者用户就是other用户类

1.5 举例说明

1.5.1 常见几种文件权限组成

  • -rwx------:文件所有者对文件具有读取、写入和执行的权限。
  • -rwxr--r--: 文件所有者具有读、写与执行的权限,用户组里用户及其他用户则具有读取的权限
  • -rw-rw-r-x:文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
  • drwx--x--x: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
  • drwx------: 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。


1.5.2 举例如下:

每个用户都拥有自己的专属目录,默认放置在/home目录下

这些专属目录的默认权限为【rwx------】表示目录所有者本身具有所有权限,其他用户无法进入该目录,如下图所示

1.5.2 更改文件的属主和属组

用到的命令:chown chgrp 如果对目录操作 -R

==》chown

语法:

  • chown user:group 对象
  • chown user 对象
  • chown :group 对象
  • -R :递归(目录下的所有内容全部更改,否则只修改目录)

[root@panda home]# chown harry test.txt ----只改文件的属主

[root@panda home]# chown :market test.txt ---只改文件的属组

[root@panda home]# chown xuegod-2:xuegod-4 test.txt ---改文件的属主、属组

[root@panda home]# chown -R harry:market /backup

==》chgrp

[root@panda home]# chgrp alice-2 test.txt ----n=改文件的属组


1.6 修改权限

1.6.1使用符号

修改权限的用到的命令:chmod

作用:修改文件、目录权限

用法:(中间的+、-、=表示添加还是删除该用户的对应权限)


u-w

user

拥有者

g+x

group

o=r

other

其他人

a+x

all

所有人


[root@panda mnt]# chmod u-w a.txt -----属主删除写权限

[root@panda san]# chmod g+x b.txt ----属组添加执行权限

[root@panda san]#chmod a=rwx file1 ----所有人等于读写执行

[root@panda san]#chmod a=- file1 ----所有人没有权限

[root@panda san]#chmod ug=rw,o=r file1 ----属主属组等于读写,其他人只读

查看修改的权限可以用ls –l 或 stat

1.6.2 使用数字


rwx

r--

-w-

--x

100

010

001

二进制

4

2

1

十进制

组合

u=rw

4+2=6 u=6

g=rx

4+1=5 g=5

rw-r--r--

rw-=6 r--=4 r--=4 rw-r—r--=644


扩展示例如下

建一个目录TEST,要求如下:

1、root用户和test用户可以读写执行 2、其他用户没有任何权限

1.7 权限对文件和目录的影响

有三种权限可以应用:读取,写入与执行,这些权限对访问文件和目录的影响如下:


权限

对文件的影响

对目录的影响

r(读取)

可以读取文件的内容

可以列出目录的内容(文件名)

w(写入)

可以更改文件的内容

可以创建或删除目录中的任意文件

x(执行)

可以作为命令执行文件

可以访问目录的内容(取决于目录中文件的权限)


  1. 对文件的影响

[root@panda ~]#

[root@panda ~]# mkdir /dir1

[root@panda ~]# touch /dir1/file1

[root@panda ~]# chmod 777 /dir1/file1

[root@panda ~]# ll /dir1/file1

-rwxrwxrwx. 1 root root 0 Sep 11 01:59 /dir1/file1

[root@panda ~]# ll -d /dir1/

drwxr-xr-x. 2 root root 18 Sep 11 01:59 /dir1/

[root@panda ~]# su - harry

Last login: Mon Sep 11 01:44:26 CST 2017 on pts/0

[harry@panda ~]$ cat /dir1/file1

[harry@panda ~]$ rm -f /dir1/file1

rm: cannot remove ‘/dir1/file1’: Permission denied

  1. 对目录的影响

[root@panda ~]#

[root@panda ~]# ll -d /dir1

drwxr-xr-x. 2 root root 18 Sep 11 01:59 /dir1

[root@panda ~]# chmod 777 /dir1/

[root@panda ~]# ll -d /dir1

drwxrwxrwx. 2 root root 18 Sep 11 01:59 /dir1

[root@panda ~]# ll /dir1/file1

-rwxrwxrwx. 1 root root 0 Sep 11 01:59 /dir1/file1

[root@panda ~]# chmod 000 /dir1/file1

[root@panda ~]# ll /dir1/file1

----------. 1 root root 0 Sep 11 01:59 /dir1/file1

[root@panda ~]# su - harry

Last login: Mon Sep 11 02:00:46 CST 2017 on pts/0

[harry@panda ~]$ cat /dir1/file1

cat: /dir1/file1: Permission denied

[harry@panda ~]$ rm -f /dir1/file1

[harry@panda ~]$ touch /dir1/file2

[harry@panda ~]$ ls /dir1/

file2

1.8 补码

为什么我们创建的文件的权限是644呢?

我们创建文件的默认权限是怎么来的?

如何改变这个默认权限呢?

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字

对于文件来说,这一数字的最大值分别是6;系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限(为了安全考虑)

4 2

对于目录来说,则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7

umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反.;umask设置的是权限“补码”,而chmod设置的是文件权限码。我们只要记住umask是从权限中拿走相应的位即可 。如:umask值为022,则默认目录权限为755,默认文件权限为644

该命令的一般形式为:umask nnn 其中nnn为umask值000 – 777

umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反.;umask设置的是权限“补码”,而chmod设置的是文件权限码。我们只要记住umask是从权限中拿走相应的位即可 。如:umask值为022,则默认目录权限为755,默认文件权限为644

我们一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

计算方法:

文件默认权限=666-umask值 666-022=644

目录默认权限=777-umask 值 777-022=755

Umask表示的是要减掉的权限

永久生效,编辑用户的配置文件vim .bash_profile


第2章 特殊权限

其实文件与目录设置不止这些,还有所谓的特殊权限。由于特殊权限会拥有一些“特权”.

因而用户若无特殊需求,不应该启用这些权限,避免安全方面出现严重漏洞,造成入侵,甚至摧毁系统!!!

特殊权限:

  • SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效

功能:程序运行时的权限从执行者变更成程序所有者

  • SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置

功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会 继承上级目录的所属组

  • Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位
  • s对应的数值为


SUID

SGID

Stickybit

u=4、u+s

g=2、g+s

o=1、o+t


2.1.3 粘滞位举例如下:

SBIT(Sticky):只针对目录有效,对文件无效,作用是防止别人删除掉对方的资料,防止用户自己的文件被别的用户误删除

[root@panda ~]# mkdir /tencent

[root@panda ~]# chmod 1777 /tencent/

[root@panda ~]# su - test

Last login: Tue Oct 11 20:12:57 CST 2016 on pts/2

[test@panda ~]$ cd /tencent/

[test@panda tencent]$ touch aa

[test@panda tencent]$ touch bb

[test@panda tencent]$ exit

logout

切换用户

[root@panda ~]# su - xiaobai

Last login: Tue Oct 11 20:11:14 CST 2016 on pts/2

[xiaobai@panda ~]$ cd /tencent/

[xiaobai@panda tencent]$ touch cc

[xiaobai@panda tencent]$ touch dd

[xiaobai@panda tencent]$ ll

total 0

-rw-rw-r--. 1 test test 0 Oct 11 20:14 aa

-rw-rw-r--. 1 test test 0 Oct 11 20:14 bb

-rw-rw-r--. 1 xiaobai xiaobai 0 Oct 11 20:14 cc

-rw-rw-r--. 1 xiaobai xiaobai 0 Oct 11 20:14 dd

[xiaobai@panda tencent]$ rm -f aa

rm: cannot remove ‘aa’: Operation not permitted --提示没有权限

[xiaobai@panda tencent]$ exit

logout

这就是sticky位的功能


相关推荐

Linux下C++访问web—使用libcurl库调用http接口发送解析json数据

一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...

干货 | 这 3 个超经典的Linux实战项目,让你分分钟入门Linux系统

编译安装nginx搭建小游戏网站编译安装流程下载nginx代码wget-P/server/tools/http:nginx.org/download/nginx1.22.0.tar.gz解压并进...

权限管理-树莓派linux⑦

前言当你在看这篇README,我感到非常荣幸。作为支持开源、分享的理念的我,给大家带来一些学习上的乐趣。由于本人并非专业的教育领域人士,很多时候天马行空,随心所欲的表达方式,可能让部分人感到不适。请根...

每天Linux学习:linux文件属性

ls-lih先通过这个命令来观察(-l列表显示目录内容详细,-i第一列显示inode,-h将文件大小显示为我们常见的kb,mb等单位)从截图中我们能看出文件属性由这9列信息组成:第1列:inod...

Linux ln、unlink命令用法

ln命令可以用来创建软链接或硬链接。1.创建软链接:ln-s源文件目标文件例如:ln-s/usr/lib/libc.so/usr/local/lib/libc.so.6这样就创建了一...

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。何为DevOps?来自wiki百科介绍DevOps是一系列软件开发实践,强调开发人员(Dev)和测...

hadoop集群搭建详细方法

第一步:搭建配置新的虚拟机格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除rm-rf/tmp/hadoop-centos*开启之后jps只有Java的进程:sudovi/et...

Linux 常用命令集合

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

inode文件索引,你了解嘛?你的Linux基础真的扎实嘛?

一、inode是什么?深入了解inode,就要从文件存储说起来!文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节。读取硬盘的时候,不会一个个扇区地读取,这样效率...

linux实例之创建service服务

前面我们讲过可以通过service命令来启动,重启,停止指定的服务程序。service服务可以在系统启动时,自动运行该服务,我们可以利用这一特点,创建service文件,并且让系统重启时,自动执行命令...

linux之软连接和硬连接的区别

硬连接硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的...

Linux inode 详解

简介索引节点(IndexNode)是Linux/类unix系统文件系统上的一种数据结构,用于存储有关文件或目录的元数据。它包含文件的所有信息,除了文件名和数据。inode在文件系统如何存储和检...

Bash 脚本实例:获取符号链接的目标位置

我们都熟悉Linux中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。本文将介绍Linux中符号链接的基础知识,并创建一个简单的bash脚本...

windows快捷方式,符号链接,软链接和硬链接

当一个软件大量的向C盘写入数据,而我们又无法修改软件保存数据的位置时,可以使用windows系统的“符号链接”(SymbolicLink)功能,将保存数据的位置修改到其它分区中。符号链接类似于我们熟...

取消回复欢迎 发表评论: