Linux 文件权限的修改

一、前言

1. 权限包含三种:w、r、x
2. 对于文件来讲,只需拥有r的权限就可读取文件内容
3. 对于目录来讲,必须拥有r、x权限才能访问目录内容,单有r权限是没有意义的
4. root用户不受任何权限限制

二、修改普通权限

命令:chmod
作用:用以修改文件的权限
参数:-R 递归地修改目录下的所有文件的权限

用法1:chmod g+w 1.txt ; chmod u+r 1.txt ; chmod o+x 1.txt
用法2:chmod u=rwx,g=r--,o=r-- 1.txt
用法3:chmod 777 1.txt ; chmod 735 1.txt

说明:

  1. u、g、o分别代表用户,组和其他用户;a可以代指ugo
  2. +、- 代表添加或删除对应权限
  3. r、w、x代表三种权限
  4. 普通权限用数字表示为:r = 4 w = 2 x = 1 如:rw- = 4+2 = 6;rwx = 4+2+1 = 7

三、修改默认权限

前言:每一个终端都拥有一个umask属性,用来确定新建文件的默认权限,比如我们新建一个目录,它的默认权限是rwxr-xr-x;我们新建一个文件,它的默认权限是rw-r--r--

umask值用数字表示:

[[email protected] ~]# umask
0022

说明:

1. 第一个0表示特殊权限,后面三个代表ugo权限
2. 在Linux中,默认目录权限是755,文档权限是644

如何修改umask值:

[[email protected] ~]# umask 055

如何通过umask值来计算默认权限:

目录的计算:(rwxrwxrwx)– (umask值)=(目录权限)
文件的计算:(rw-rw-rw-)–(umask值)= (文件权限)

例子:

如果设置 umask 为 001 (用字母表示为--------x), 那么用户默认创建的目录和文件的权限是什么样子的?
目录的权限是:(rwxrwxrwx)–(--------x)=(rwxrwxrw-)= 776
文件的权限是:(rw-rw-rw-)–(--------x)=(rw-rw-rw-)= 666
所以得出结论,当umask为001时,目录权限是776,文件权限是666

四、修改特殊权限

1 特殊权限:suid

suid是什么:suid(set_uid)让普通用户对可执行的二进制文件(如passwd这个命令)临时拥有该文件所属用户的权限来运行(这里要注意的是suid权限只对可执行的二进制文件有效,对普通文件是无效的)

我们来举个例子:

假设我们现在是以普通用户登录,当我们要改密码时使用passwd命令,我们改密码需要借用/etc/shadow这个配置文件(/etc/shadow是用来存放密码的配置文件),但是如下,/etc/shadow是没有任何权限的,也就是说这个文件我们不可读不可写不可执行

[[email protected] ~]# ls -l /etc/shadow
----------. 1 root root 629 11月 3 03:28 /etc/shadow

这时我们怎么办呢?我们就要借助root用户的权限(注意:root用户不受任何权限的限制)来执行passwd这个命令以修改/etc/shadow这个配置文件
如果你不想让普通用户修改自己的密码,只需要chmod u-s /usr/bin/passwd

怎样添加suid权限?

语法一:chmod u+s 文件名
语法二:chmod 4755 文件名 (4表示s权限,755表示普通权限)
说明:与普通权限一样,特殊权限也可以使用数字方式表示:suid = 4、sgid = 2、sticky = 1

我们来举个例子:

我们知道,普通用户是不能浏览/root目录的,因此我们要给ls这个命令添加s权限(注意只有该文件的所属用户才能添加特殊权限),以临时拥有所属用户的权限来查看/root目录

[[email protected] ~]# su – pzk    //我们先切换到普通用户
[[email protected] ~]$ ls /root/    //普通用户没有权限浏览/root目录
ls: 无法打开目录/root/: 权限不够
[[email protected] ~]$ su -         //我们切换到root用户去把ls命令添加s权限
密码:
[[email protected] ~]# chmod u+s /bin/ls
[[email protected] ~]# su - pzk
[[email protected] ~]$ ls /root/    //ls拥有了s权限就可以浏览了
test.sh test.txt

那么,我们再来看一个现象,如下图,在权限位第3位出现了s和S,这又是什么情况呢?

为什么特殊权限有的大写有的小写?

系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母(s, s, t)否则显示为大写字母(S, S, T),我们知道,权限位的前3位是user的权限,当出现s的时候,表明user还拥有x权限,当出现S的时候,user就不拥有x权限了,但是普通用户使用ls命令的时候,使用的权限位是other的权限位,因此对于S不拥有x权限就没关系了,只要other这个权限位中有x权限就可以运行ls这个命令了(root用户倒是无所谓了,因为root用户不受任何权限限制)

2 特殊权限:sgid

sgid是什么:我们前面讲过,当s这个标志出现在文件所有者的x权限上时,则就被称为Set UID。那么把这个s放到文件的所属用户组x位置上的话,就是SGID

当出现s的时候,表明拥有x权限,当出现S的时候,不拥有x权限

sgid有什么用:和suid一样,只是sgid是获得该程序所属用户组的权限,以所属组的权限去执行。

对sgid有几点需要我们注意:
            1. sgid对二进制程序有用;
            2. 程序执行者对于该程序来说,需具备x的权限;
            3. sgid主要用在目录上;

如何添加sgid权限?

语法一:chmod g+s 文件名
语法二:chmod 2755 文件名 (2表示sgid权限,755表示普通权限)
说明:与普通权限一样,特殊权限也可以使用数字方式表示:suid = 4、sgid = 2、sticky = 1

3 特殊权限:sticky

sticky是什么:前面的suid和sgid是针对user和group来设置的,那么sticky就是针对others来设置的了,和suid/sgid一样,只是功能不同而已
sticky有什么用:SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件,但仅有该文件/目录建立者与root能够删除自己的目录或文件。

当出现t的时候,表明拥有x权限,当出现T的时候,不拥有x权限

如何添加sticky权限?

语法一:chmod o+s 文件名
语法二:chmod 1755 文件名 (1表示sticky权限,755表示普通权限)
说明:与普通权限一样,特殊权限也可以使用数字方式表示:suid = 4、sgid = 2、sticky = 1

 

时间: 2024-11-06 09:45:15

Linux 文件权限的修改的相关文章

linux文件权限误修改之后如何恢复

linux文件权限误修改之后如何恢复 linux系统权限修复 应用场景 在有些时候,不小心执行了修改文件权限,比如chown mysql.mysql / ,这种对属组属主的操作,想要恢复看起来很麻烦,怎么办呢 这个脚本可以让你脱离苦海 使用条件 可以提前备份相关权限,脚本提供备份功能 也可以找到权限相似的主机备份好之后在自己主机恢复 备份方法: 直接复制脚本内容,在你的主机向运行,需要有getfacl命令 备份完成后,备份的是整个文件系统当中所有文件的权限信息 含有两个文件,分别是/tmp/ge

Linux 文件权限的修改方法

命令汇总 新增一个test文件夹,查看默认权限 root用户不受权限控制 修改属主,属组  修改权限 u:属主权限,g:属组权限,o:其他权限.a:所有 chmod u+-=->(+)增加权限,(-)删除权限,(=)设置权限 原文地址:https://www.cnblogs.com/Brake/p/12209675.html

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

修改linux文件权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

修改linux文件权限命令:chmod

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

Linux文件权限详解

在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限

linux学习随笔——linux文件权限管理和网络配置

一.linux文件权限管理 查看某个文件的权限命令:ls -l linux文件权限有4种:读(r).写(w).执行(x)和无权限(-) 一般用10个字符表示其权限,按照(1-3-3-3)来分组划分 1位置 表示文件类型 "-"表示文件,"d"表示目录 2-4位 表示用户权限(u) 5-7位 表示组权限(g) 8-10  表示其他权限(o) 通常用chmod来修改权限:chmod     u+r 目标文件 也可以用数字来表示权限 r=4 w=2 x=1 chown命令

Linux文件权限【转载】

一.Linux文件权限    每个Linux文件具有四种访问权限:可读(r).可写(w).可执行(x)和无权限(-).    利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为    准.第一个字段由10个字符组成,如下:        -rwxr-xr-x    第一位表示文件类型,-表示文件,d表示目录    2-4位表示文件所有者的权限,u权限    5-7位表示文件所有者所属组成员的权限,g权限    8-10位表示所有者所属组之外的用户的权限,o权限      

linux 文件权限继承

低权限用户生成一个新文件到权限可写的目录,由于新文件不继承可写权限,生成后该用户则无法修改操作该文件. 用setfacl命令可以将新建的文件自动继承父文件夹的权限(-d参数继承) setfacl -R -d -m u:用户:rwx  文件/文件夹 ====================================================== Linux 权限继承 ,使用setfacl划分权限 Linux 文件权限分为  owner group other 如: drwxrwx---