Linux文件权限设定

前言

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			#	

在这里插入图片描述

文件权限的读取

解读 - | rw- | r-- | r–|. 1 | student | student | 2068 | Oct 14 21:46 | passwd
#####1 . "-"文件的类型

-	#空文件,或者文本
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. 文件的名称

修改文件

为了更直观的查看文件权限修改可以使用
watch -n 1 ls -lR dir 来监控目录下的文件及子文件

改用户及用户组

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默认权限只针对目录设定

acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限
setfacl -m d:u:student:rwx /mnt/westos

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值