Linux文件权限设定

Linux文件权限设定本文深入解析 Linux 文件权限系统 涵盖一般文件与目录的权限设定 包括读 写 执行的具体含义 以及如何使用 ls chmod chown 和 chgrp 等命令进行权限查看与修改

大家好,欢迎来到IT知识分享网。

前言

Linux文件一般分为两种,一般文件和目录文件。是系统最底层的安全设定之一,所以要保证文件可以被可用的用户做相应操作

在普通文件上:

r:可读,可以使用类似cat等命令查看文件内容;读是文件的最基本权限,没有读权限,普通文件的一切操作行为都被限制。
w:可写,可以编辑此文件;
x:可执行,表示文件可由特定的解释器解释并运行。可以理解为windows中的可执行程序或批处理脚本,双击就能运行起来的文件。

在目录上:

r:可以对目录执行ls以列出目录内的所有文件;读是文件的最基本权限,没有读权限,目录的一切操作行为都被限制。
w:可以在此目录创建或删除文件/子目录;
x:可进入此目录,可使用ls -l查看文件的详细信息。

文件权限的查看

ls -l file #除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -ld dir #查看目录本身权限 ll file #功能相同 ll -d dir # ll -a dir # 

在这里插入图片描述

文件权限的读取

- #空文件,或者文本 d #目录 l #软链接 s #socket 套接字 b #block 块设备 c #字符设备 
2. “rw-“文件的权限
rw-|rw-|r–

第1个”rw-“第2个”rw-“第3个”r–”分别表示如下:

1.[u] 文件拥有者对文件能做什么操作 2.[g] 文件所有组对文件能做什么操作 3.[o] 其他人对文件能做什么操作 
3. 个数

对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数

4. 文件的所有人
5. 文件所有组
6. 大小

对文件:文件大小
对目录:目录中子文件元数据(matedate)大小

7.文件的内容被修改的时间
8. 文件的名称

修改文件

改用户及用户组

chown可以修改文件所有者和所属组。

这个指令只有是由系统管理者(root)所使用

chgrp更改文件和目录的所属组,要求组已经存在。

对于链接文件而言,修改组的作用对象是链接的源文件,而非链接文件本身。

chown username file|dir chown user.group file|dir chown -R user.group dir chgrp group file|dir chgrp -R group dir chmod <u|g|o><+|-|=><r|w|x> file|dir 

在这里插入图片描述

权限chmod的改变方式

权限的模式有两种体现:数字体现方式和字符体现方式。

权限的数字表示:”-“代表没有权限,用0表示。

r------------------4 w------------------2 x------------------1 

例如:rwx rw- r–对应的数字权限是764,732代表的权限数值表示为rwx -wx -w-。

  1. 可以使用字符方式修改权限
    所有者使用字母”u”表示,所属组使用”g”来表示,其他使用”o”来表示,而字母”a”同时表示它们三者。所以使用字符方式修改权限时,需要指定操作谁的权限
    chmod u+x /mnt/file1 chmod g-r /mnt/file2 chmod ug-r /mnt/file3 chmod u-r,g+x /mnt/file4 chmod -r /mnt/file5 chmod o=r-x /mnt/file6 

2… 使用数值方式修改权限

 chmod 755 file 

umask

umask值用于设置用户在创建文件时的默认权限。对于root用户(实际上是UID小于200的user),系统默认的umask值是022;对于普通用户和系统用户,系统默认的umask值是002。

  1. 永久更改umask
    vim /etc/profile #编写系统配置文件 source /etc/profile #让更改立即生效 

在这里插入图片描述

  1. 临时更改umask
    vim /etc/bashrc #shell配置文件 source /etc/bashrc #让更改立即生效 

在这里插入图片描述

特殊权限

1.sticky粘制位

如果用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。粘着位出现执行许可的位置上,用t表示,设置了该位后,其它用户就不可以删除不属于他的文件和目录。但是该目录下的目录不继承该权限,要再设置才可使用。

设定方式:
chmod o+t dir chmod 1xxx dir 

实例

chmod 777 abc chmod +t abc 等价于 chmod 1777 abc 
2.suid 冒险位
只针对与2进制可执行文件 当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人 

设定方式
chmod u+s file
chmod 4xxx file

3.sgid 强制位

针对目录时,目录中所建立的文件或子目录的组将继承默认父目录组,其本质还是提升为目录所属组的权限。此时目录应该要有rx权限,普通用户才能进入目录,如果普通用户有w权限,新建的文件和目录则以父目录组为默认组。

以2代表sgid,如2755,和suid组合如6755。

设定方式

chmod g+s file|dir chmod 2xxx file|dir 

acl权限列表

通常只通过这3个权限位是无法完全合理设置权限问题的,例如如何仅设置某单个用户具有什么权限。这时候需要使用扩展acl。

acl是一种特殊权限,它是文件系统上功能,用于解决所有者、所属组和其他这三个权限位无法合理设置单个用户权限的问题。

acl列表管理

setfacl -m u:username:rwx file #设定username对file拥有rwx权限 setfacl -m g:group:rwx file #设定group组成员对file拥有rwx权限 setfacl -x u:username file #从acl列表中删除username setfacl -b file #关闭file上的acl列表 

在这里插入图片描述
当权限出现”+”是表示acl开启赋予了一个用户对这个文件acl的特殊权力
然后发现本来只有root用户可以修改的文件,特定用户student也可以编写

getfacl file #查看acl开启的文件的权限 # file: file #文件名称 # owner: root #文件拥有者 # group: root #文件拥有组 user::rw- #文件拥有人的权限 user:kiosk:rwx #指定用户的权限 group::r-- #文件拥有组的权力 mask::rwx #能赋予用户的最大权力伐值 other::r-- #其他人的权限 

在这里插入图片描述

acl的默认权限设定

acl默认权限只针对目录设定

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/141818.html

(0)
上一篇 2025-05-14 18:20
下一篇 2025-05-14 18:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信