欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 文件/目录访问权限

程序员文章站 2024-01-23 12:21:22
...

访问权限

知识点

一、简介

权限字符 普通文件操作 目录文件操作
r (read) 浏览文件 查看目录文件列表
w (write) 修改文件内容 添加、删除或重命名目录内文件
x (execute) 执行文件 进入目录

Linux 文件/目录访问权限

文件的三种用户角色:

  • user - 文件所有者 - u
  • group - 同组用户 - g
  • other - 其他用户 - o
    Linux 文件/目录访问权限

二、改变访问权限(chmod)

1.文字设定法

chmod [who][+|-][mode] filepath
#如给组用户加上/home/hhh.txt的
chmod g+rw /home/hhh.txt

2.数字设定法

数字设定法用3个二进制位来表示一个用户对象的三种文件权限,“1”表示有权限,“0” 表示无权限。

  • 第一位表示r权限(可读)
  • 第二位表示w权限(可写)
  • 第三位表示x权限(可执行)

每个用户对象二进制权限数字设定好后将其换算为八进制数[0~7]即可,如“110” ->“6”

chmod [mode] filepath
#文件所有者可读可写可执行、同组用户可读可执行、其他用户无权限 
chmod  750  /root/file.txt

三、更改默认权限(umask)

#显示当前文件或文件夹的默认权限
umask
#设置umask
umask [权限掩码]

注:

  • umask设置的是默认完整权限中需要去掉的权限
  • umask中“1”是去除对应权限

如:目录的默认完整权限为777,则实际默认权限是777-022=755

四、更改所有权(chown/chgrp)

chown [option] [user.group] filepath
#递归设置
chown -R
#修改文件组用户
chgrp

上机实例

1、改变文件/目录的访问权限

新建目录/root/dir1、/root/dir2、/root/dir2/dir21

新建文件/root/file1.txt、/root/file2.txt、/root/dir1/file11.txt、/root/dir2/file21.txt

添加user1用户,命令:useradd user1

添加user2用户,命令:useradd user2

(1)使用文字设定法设置文件/root/file1.txt的权限:

为文件所有者增加执行权限
Linux 文件/目录访问权限

为同组用户、其他用户增加写权限和执行权限

Linux 文件/目录访问权限

为所有用户去掉执行权限
Linux 文件/目录访问权限

(2)使用数字设定法设置文件/root/file2.txt的权限:

为文件所有者增加执行权限l
Linux 文件/目录访问权限

为同组用户、其他用户增加写权限和执行权限

Linux 文件/目录访问权限

为所有用户去掉执行权限

Linux 文件/目录访问权限

(3)设置目录/root/dir1的权限:

将文件所有者设为user1,观察子文件file11.txt的权限变化
Linux 文件/目录访问权限

去掉同组用户的执行权限,观察是否能进入/root/dir1、直接列出/root/dir1的子文件列表、在/root/dir1中建立新文件vi

Linux 文件/目录访问权限

(4)同时修改/root/dir2及其子目录/子文件的所有者为user1、同组用户为user2,观察子文件和子目录的权限

命令:chown -R user1.user2 /root/dir2

(5)使用chgrp修改文件/root/file2.txt的同组用户为user2

Linux 文件/目录访问权限

2、更改文件/目录的默认权限

(1)查看当前系统的umask值
Linux 文件/目录访问权限

(2)创建新文件/root/file3.txt和新文件夹/root/dir3,分析umask值和文件默认权限的关系

umask中“1”是去除对应权限

(3)将默认权限设置为077,创建新文件/root/file7和新文件夹/root/dir7,观察权限变化

Linux 文件/目录访问权限