文件权限管理

前言

  学习完如何创建用户之后,我们来学习LINUX系统的文件权限及其管理。Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读只写可执行三种。

一:文件权限的了解

1.文件权限的查看

首先我们用touch命令创建一个a.txt文件

[root@xj ~]# touch a.txt  //创建文件

[root@xj ~]# ll a.txt    //查看文件权限

-rw-r--r--. 1 root root 0 3月   6 15:47 a.txt


2.文件的基本权限


3.修改文件权限

使用到的相关命令chmod

chmod命令是非常重要的,用于改动文件或目录的访问权限。用户用它控制文件或目录的访问权限。      该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。  命令的使用方法

chmod [who] [+ | - | =] [mode] 文件名

 

 

 

1.3.1例 我们将a.txt文件取消拥有者可写的权限

[root@xj ~]# chmod u-w a.txt

[root@xj ~]# ll a.txt

-r--r--r--. 1 root root 0 3月  6 15:47 a.txt

 

 

由此我们看到a.txt文件的权限变成了-r--r--r--

1.3.2例 我们将a.txt文件增加组可执行的权限

[root@xj ~]# chmod g+x a.txt

[root@xj ~]# ll a.txt

-r--r-xr--. 1 root root 0 3月  6 15:47 a.txt

 

 

由此我们看到a.txt文件的组权限变成了-r--r-xr--

1.3.3例 我们将a.txt文件所以权限为只读

[root@xj ~]# chmod a=r a.txt

[root@xj ~]# ll a.txt

-r--r--r--. 1 root root 0 3月  6 15:47 a.txt

 

 

1.3.4例 我们将a.txt文件一次性修改多个权限

[root@xj ~]# chmod u=rwx a.txt

[root@xj ~]# ll a.txt

-rwxr--r--. 1 root root 0 3月  6 15:47 a.txt

 


 

4.修改目录权限

首先我们用mkdir 命令创建一个名为test 的目录,并且查看目录的权限

[root@xj ~]# mkdir test/

[root@xj ~]# ll -dtest/

drwxr-xr-x. 2 root root6 3月   6 16:19 test/

 

1.4.1 例 修改目录拥有者权限为可读

[root@xj ~]# chmod u-w test/

[root@xj ~]# ll -d test/

dr-xr-xr-x. 2 root root 6 3月  6 16:19 test/

 

二:权限的数字设定法

1.数字权限的了解

 

 

 

 

2.数字权限的计算

 

 

 


3.用数字修改文件权限

2.3.1例 用数字修改a.txt 文件权限为 -rw--w--w-

[root@xj ~]# chmod 622 a.txt

[root@xj ~]# ll a.txt

-rw--w--w-. 1 root root 0 3月   6 15:47 a.txt

 

 

三:文件拥有者和所属组

1.修改文件拥有和所属组

语法:chownUSER:GROUP 对象

chown USER 对象

chown :GROUP 对象

 

首先我们先创建一个为linux 的用户 指定所属组为 spade组 (如果不会创建请看上节课)

[root@xj~]# useradd -g spade linux

 

3.1.1例 修改a.txt 文件的文件拥有者为linux 所属组为spade

[root@xj ~]# chown linux:spade a.txt

[root@xj ~]# ll a.txt

-rw--w--w-. 1 linux spade 0 3月   6 15:47 a.txt

 

3.1.2 例 修改 a.txt 文件的文件拥有者为linux

[root@xj~]# chown linux a.txt

[root@xj~]# ll a.txt

-rw--w--w-.1 linux spade 0 3月   6 15:47 a.txt

 

3.1.3 例 修改 a.txt 文件的文件所属组为root

[root@xj ~]# chown :root a.txt

[root@xj ~]# ll a.txt

-rw--w--w-. 1 linux root 0 3月   6 15:47 a.txt

 

3.1.4 例 修改 test 目录的下所有文件拥有者为linux

[root@xj~]# chown linux test/ -R

[root@xj~]# ll -d test/

dr-xr-xr-x.2 linux root 6 3月   6 16:19 test/

 

 

四:特殊权限

1.什么是特殊权限

linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是suid、sgid和sticky bit

 

2.特殊权限有什么用

s对应的数值为:u 4,g  2,o   1

SUID:

限定:只能设置在二进制可执行程序上面。对目录文本设置无效。

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

[root@xj~]# which passwd

/usr/bin/passwd

[root@xj~]# ll /usr/bin/passwd

-rwsr-xr-x.1 root root 27832 Jan 29  2014/usr/bin/passwd

 

[root@xj~]# which less

/usr/bin/less

[root@xj~]# chmod u+s /usr/bin/less

 

[linux@xj~]$ less /etc/shadow

能看到文件里的内容

等同于

[root@xj~]# chmod 4755 /usr/bin/less

 

SGID

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

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

[root@xj~]# mkdir shark

[root@xj~]# chown :linux shark/

[root@xj~]# ll -d shark/

drwxr--r--2 root linux 6 Feb 15 09:03 shark/

[root@xj~]# touch shark/linux.txt

[root@xj~]# touch shark/mk.txt

[root@xj~]# ll shark/

total0

-rw-r--r--1 root root 0 Feb 15 09:04 mk.txt

-rw-r--r--1 root root 0 Feb 15 09:04 linux.txt

 

加上SGID

[root@xj~]# chmod g+s shark/

[root@xj~]# touch shark/docker.txt

[root@xj~]# ll shark/

total0

-rw-r--r--1 root linux   0 Feb 15 09:06 docker.txt

-rw-r--r--1 root root 0 Feb 15 09:04 mk.txt

-rw-r--r--1 root root 0 Feb 15 09:04 linux.txt

 

Stickybit

限定:只作用于目录

功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除

[root@xj~]# ll -d /tmp/

drwxrwxrwt.14 root root 4096 Feb 15 09:08 /tmp/

 

[root@xj~]# chmod 1777 /share/

[root@xj~]# ll -d /share/

drwxrwxrwt2 root root 6 Feb 15 09:10 /share/

[linux@xj~]$ cd /share/

[linux@xjshare]$ ls

[linux@xjshare]$ touch linux.txt


[root@xj~]# useradd mk

[root@xj~]# su - mk

[mk@xj~]$ cd /share/

[mk@xjshare]$ linux -rf linux.txt

linux:cannot remove ‘linux.txt’: Operation not pelinuxitted

 

3.Linux文件系统扩展

属性:chattr lsattr

语法:+a  只能追加内容

 +i  不能被修改

 

[root@xj~]# echo "spade" > b.txt

[root@xj~]# cat b.txt

spade

[root@xj~]# chattr +a b.txt                    //给b.txt添加只能追加内容的权限

[root@xj~]# echo "123456" > b.txt         //覆盖b.txt

-bash:b.txt: Operation not permitted      //覆盖失败

[root@xj~]# echo "123456" >> b.txt       //追加成功

[root@xj~]# rm -rf b.txt                         //尝试删除b.txt

rm:cannot remove ‘b.txt’: Operation not permitted        //删除失败

[root@xj~]# chattr +i b.txt                            //给b.txt添加不能被修改的权限

[root@xj~]# echo "123456" >> b.txt       //追加内容

-bash:b.txt: Permission denied                //追加失败

 [root@xj~]# lsattr b.txt                          //查看对应的权限

----ia----------b.txt                                   //权限为只能追加不能修改

[root@xj~]# chattr -i b.txt                      //删除不能修改权限

[root@xj~]# chattr -a b.txt                            //删除只能追加权限

[root@xj~]# lsattr b.txt                          //查看权限

----------------b.txt                                         

 

实际应用:

[root@xj~]# chattr +a /etc/passwd

[root@xj~]# chattr +a /etc/shadow

 

还能针对日志文件进行设置


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值