centos7文件权限管理

  • 一.文件权限讲解
  • 二.更改文件权限
  • 三.高级权限讲解(摘抄)
  • 四 文件默认权限
  • 五.更改文件拥有者与所属组
  • 六.ACL访问权限讲解


一.文件权限讲解

1.文件基本权限

基本权限:

读:r,写:w,执行:x

数字表示为:

r:4 (可读)

w:2 (可写)

x:1 (可执行,一般用于可执行文件,例:a.exe,b.sh)

2.用户身份

U : user,代表文件的拥有者(默认为文件的创建者)

G :group,与文件所属组同组的用户(组内用户)

O :other,既不是拥有者,也不是所属组内的用户,这些用户就称之为其他用户

3.查看文件权限

ls命令:

ls -l 或 ll

(ll为ls -l的缩写)

例: ll /mnt/a

centos配置文件夹权限给mysql centos怎么给文件权限_linux


文件默认权限为:644

即:u=rw,g=r,o=r

默认不可执行

4.查看目录(文件夹)权限:

ls命令:

ls -ld 或 ll -d

例: ll -d /mnt/a

centos配置文件夹权限给mysql centos怎么给文件权限_运维_02


文件夹默认权限为:755

即:u=rwx,g=rx,o=rx

文件所属者默认可读可写可执行

其余用户默认可读可执行

ps:默认权限可修改,后续会提到

二.更改文件权限

1.chmod命令:
chmod [选项] 字母形式或数字形式 文件名称
选项说明:
-R : 递归设置,针对文件家(目录)

可使用rwx也可使用数字修改
新手推荐使用rwx修改
老手一般使用数字进行修改
2.chmod命令使用:
例: chmod g+w /mnt/a/b
给/mnt/a/b文件修改权限
b文件的同组用户添加w(可写)权限

例:chmod o-r /mnt/a/b
给/mnt/a/b文件修改权限
b文件的其他用户去掉r(可读)权限

例: chmod -R u+x /mnt/a
给/mnt/a目录下的所有文件修改权限
所有文件的文件所属者添加x(可执行)权限

例: chmod 777 /mnt/a/b
给/mnt/a/b文件添加所有权限

三.高级权限讲解(摘抄)

冒险位(u + s) => S

  • 冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
  • 冒险位,一般针对的是命令或者脚本文件
  • 冒险位,用字母表示是s或S;数字表示是4
  • 冒险位的设置:chmod u+s 文件名或者chmod 4xxx 文件名

主要针对可执行的二进制文件,如/usr/bin/passwd文件

② 强制位(g + s)

  • 强制位,一般针对的是目录
    如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组
  • 强制位,用字母表示是s或S;数字表示是2
  • 强制位的设置:chmod g+s 文件名或者chmod 2xxx 文件名

主要针对目录进行设置,比如shop目录,文件拥有者root,所属组itheima,g+s

这样以后我们在shop目录下创建的所有文件的所属组都会继承shop文件夹的itheima

③ 粘滞位(o + t) => T

  • 粘滞位,一般针对的是公共目录
    如果一个公共目录拥有粘滞位,那么该目录下的文件,只有root文件的创建者可以删除,其他人只能自己管理自己。(A用户不能删除B用户创建的文件)
  • 粘滞位,用字母表示是t或T;数字表示是1
  • 粘滞位的设置:chmod o+t 文件名或者chmod 1xxx 文件名
    ps:三.高级权限为网上摘抄

四 文件默认权限

1.文件默认权限:

文件默认权限由umask控制:

可使用命令umask查询当前umask值:

umask

centos配置文件夹权限给mysql centos怎么给文件权限_linux_03


2.修改文件默认权限:

临时修改:

umask 002 (此命令为临时设置,只在当前终端生效)

永久修改:

vi /etc/bashrc


umask 0002


source /etc/bashrc (重新生效)

五.更改文件拥有者与所属组

chown修改文件拥有者
chown [选项] 新文件拥有者 文件名称
选项说明:
-R :递归设置,主要针对文件夹

chgrp修改文件所属组
chgrp [选项] 新文件所属组 文件名称
选项说明:
-R :递归设置,主要针对文件夹

chown同时修改
chown [选项] 新的文件拥有者:新的文件所属组 文件名称
选项说明:
-R :递归设置,主要针对文件夹

六.ACL访问权限讲解

背景:
两组用户,一组可读,一组可读可写.
解决方案1:
使用所属组和其他用户实现
所属组可读可写
其他用户可读
ps:不推荐使用解决方案1,因为给在工作环境中给其他用户设置高权限风险太大,一般其他用户权限设为0,因此引入解决方案2
解决方案2: ACL访问权限控制实现
命令及语法:
getfacl:
getfacl = get + file + acl => 获取某个文件的ACL权限
例: getfacl /mnt/a/b
setfacl:
例: setfacl -m u:user1:rw /mnt/a/b
常用选项:
-m 修改或者设置ACL策略
-R 递归授权,对目录下已存在的目录或文件有acl策略,但新建的文件没有
-x 去掉某个用户或者某个组的权限
-b 删除所有的acl策略
-d 默认ACL策略,只针对目录,该目录下新建的目录和文件都会继承acl策略
mask: 定义除其他人和所有者外的最大权限

使用命令setfacl进行设置:
setfacl -m g:group1:rw /mnt/a/b
setfacl -m g:group2;r /mnt/a/b
ps:实际工作中,推荐使用解决方案二,简单,风险低.