5.Linux学习--权限

5.1 查看权限信息

ls -l file         #####查看文件属性

ls -ld test/       #####查看目录属性

 

文件中各个属性字段的含义:

字段-rwxr--r--.1rootroot0Jan  8 05:39file
含义类型文件权限SELinux Context 硬链接数个数文件所属人文件所属组文件大小文件最后一次修改时间文件名

 

目录中各个属性字段的解释:

字段drwxr-xr-x.2rootroot6Jan  8 05:45test/
含义类型目录权限SELinux Context 目录中子目录个数文件所属人文件所属组文件大小目录内容最后一次修改时间目录名称

 

5.2 文件所属人和所属组

Linux下所有资源、设备均被视作文件来操作(一切皆文件),而文件权限则是决定用户对文件操作的范围,文件对用户身份一般划分下面的为三种:

usergroupother
文件所属人文件所属组其他

更改文件所属人和所属组的方法:


 

chown 用户名 文件更改文件所属人
chgrp  组名称 文件更改文件所属组
chown –R 用户名 目录更改目录所属人
chgrp  –R 组名称 目录更改目录所属组
chown 用户名 : 组名称 文件 | 目录更改文件/目录的所属人和所属组

实验:

1. 更改用户所属人

使用命令监控文件属性

watch -n 1 ls -l file 

使用chown命令更改文件file的所属人为huayu

chown huayu file              ####更改file文件所属人为huayu

2. 更改用户所属组

使用chgrp命令更改文件file的所属组为huayu

chgrp huayu file               #####更改file文件所属组为huayu

3. 更改文件所属人和所属组

使用命令chown更改file文件所属人和所属组为root

chown root:root file 

5.3 文件权限的理解

5.3.1 文件权限的读取

drwxr-xr-x
类型文件所属人权限文件所属组权限其他人权限

使用命令ls查看test目录属性

ls -ld test/

 

5.3.2 权限类型

 -rwx
文件权限未开启查看文件内容更改文件内容可以执行文件(程序)
目录权限未开启查看目录中的文件名称在目录中新建删除文件或目录可以进入目录

5.4 设定文件权限

 chmod    [u|g|o|a][+|-|=][r|w|x]   目标字符方式设定
 chmod    [0-7][0-7][0-7]   目标数字方式设定
 chmod   --reference=模板  目标依照模板复制文件权限

 

5.4.1 字符方式设定文件权限

实验:

使用命令监控文件属性

watch -n 1 ls -l testfile 

使用chmod命令通过字符方式对testfile文件所属人添加x(执行)权限

chmod u+x testfile 

对所属组和其他用户添加w权限

chmod go+w testfile 

对所有用户删去r权限

chmod ugo-r testfile 

5.4.2 数字方式设定文件权限

权限二进制八进制
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117

 

实验:

监控文件file1的属性

watch -n 1 ls -l file1 

使用chmod命令通过数字方式更改文件file1的权限

chmod 777 file1           ###为所有用户添加所有权限

chmod 775 file1                    ####所属人和所属组拥有所有权限,其他用户只有读和执行权限

5.4.3 通过模板复制文件权限

实验:

使用chmod命令通过--reference参数复制文件file的权限给文件tom

ls -l file;ls -l test/tom         ###查看file和tom的权限

chmod --reference=file test/tom             ####以file的权限为模板复制给文件tom
ls -l file;ls -l test/tom                   ####再查看执行操作后的权限

 

5.5 系统预留权限阈值

5.5.1 预留权限阈值的意义

  • 资源存在意义在于共享,权限开放越大,共享效果越明显,但是安全性越差
  • 对于系统安全而言,开放权利越小,系统越安全
  • 在系统中开放应开放的权利,保留不安全的权利以确保系统功能性及安全性

5.5.2 权限预留阀值设定

可以通过umask命令来查看或设定权限阈值

umask    ###查看预留权限阈值

umask 077              ###设定预留权限阈值为077

上面的操作实在shell中通过umask命令直接修改预留权限阈值,只是临时的修改。永久修改需要在shell配置文件 /etc/bashrc和系统环境配置文件 /etc/profile中修改

vim /etc/bashrc 

图中75行的umask为普通用户的系统预留权限阈值,77行为root的系统预留权限阈值。

5.6 特殊权限

5.6.1 SUID

  • 只针对于二进制可执行文件 , 使用拥有SUID权限的文件发其中记录的程序时以文件拥有者的身份去执行

实验:

在这里以cat为例,先查看cat文件的属性

ls -l /usr/bin/cat

可以看出cat所属人为root用户

创建一个文件,设定其权限为其他用户无任何权限

[root@localhost Desktop]# touch /mnt/file
[root@localhost Desktop]# chmod 700 /mnt/file 
[root@localhost Desktop]# ls -l /mnt/file 
-rwx------. 1 root root 0 Jan  8 08:11 /mnt/file

切换到huayu直接使用cat查看文件内容

显示请求被拒绝,这时候我们可以通过suid特殊权限解决,开启cat的suid权限,当普通用户使用cat时身份会变成文件所属人也就是root,而root拥有权限查看file文件

[root@localhost Desktop]# chmod u+s /usr/bin/cat
[root@localhost Desktop]# ls -l /usr/bin/cat
-rwsr-xr-x. 1 root root 51856 Jan 11  2019 /usr/bin/cat

文件所属人最后一位x变为s说明开启了suid权限,这时候使用切换到hauyu再使用cat命令查看文件file内容

最后关闭cat文件的suid特殊权限

[root@localhost Desktop]# chmod u-s /usr/bin/cat
[root@localhost Desktop]# ls -l /usr/bin/cat
-rwxr-xr-x. 1 root root 51856 Jan 11  2019 /usr/bin/cat

 

5.6.2 SGID

  • 针对二进制可执行文件 : 该命令发起的程序是以该命令所有组的身份去执行 
  • 针对目录 : 目录新建文件的所属组与该目录的所有组保持一致

实验:

1.针对文件:

监控cat进程

watch -n 1 'ps ax -o user,group,comm|grep cat'

调用cat,查看进程

可以看到cat进程所属组为root,所属人为root更改cat所属组

[root@localhost Desktop]# chgrp huayu /usr/bin/cat
[root@localhost Desktop]# ls -l /usr/bin/cat
-rwxr-xr-x. 1 root huayu 51856 Jan 11  2019 /usr/bin/cat

开启cat文件的sgid权限

[root@localhost Desktop]# chmod g+s /usr/bin/cat
[root@localhost Desktop]# ls -l /usr/bin/cat
-rwxr-sr-x. 1 root huayu 51856 Jan 11  2019 /usr/bin/cat

执行cat,查看cat进程

可以看到cat进程所属组变为huayu

2.针对目录:

监控目录test,并在目录te中新建文件file

watch -n 1 ls -lR  /mnt/test/

切换普通用户huayu,新建文件file1

可以看到新建文件的所属人和所属组取决于建立文件的用户以及其主组。

目录te开启sgid特殊权限

切换到huayu新建文件file2

可以看到新建的文件file2所属组为父目录所属组

5.6.3 STICKYID

  • 表示当目录上有 STICKYID 的权限时 , 所有用户在该目录下均可创 建文件 , 但只有文件拥有者和 root 用户可以删除该目录下的文件

实验:

root用户在dir目录中新建file1,切换到huayu用户新建file2

[root@localhost mnt]# touch dir/file1
[root@localhost mnt]# su - huayu 
Last login: Wed Jan  8 09:12:13 PST 2020 on pts/1
[huayu@localhost ~]$ touch /mnt/dir/file2

查看file1,fle2属性

在huayu账户下尝试删除由root建立的file1

结果表明可以删除不属于自己的文件。

为父目录dir添加STICKYID权限

chmod o+t /mnt/dir/

使用root账户新建文件file3,切换到账户huayu尝试删除

[root@localhost mnt]# chmod o+t /mnt/dir/
[root@localhost mnt]# touch dir/file3
[root@localhost mnt]# su - huayu 
Last login: Wed Jan  8 09:12:57 PST 2020 on pts/1
[huayu@localhost ~]$ rm -rf /mnt/dir/file3

删除失败,提示操作不被允许

 

5.7 ACL权限列表

5.7.1 facl概述及注意事项

传统的权限仅有三种身份 (user,group,other) 搭配三种权限 (r,w,x), 并没有办法单纯的针对某一个使用者或某一个群组来设置特定的权限需求 , 此时就得要使用ACL( 文件访问控制列表 ,Access Control List) 这个机制

5.7.2 facl相关命令

getfacl查看权限列表
setfacl -m设定权限
setfacl -x删除指定用户
setfacl -b关闭列表功能

实验:

监控/mnt/dir目录的权限列表

watch -n 1 getfacl /mnt/dir/

 

使用setfacl命令为用户huayu对/mnt/dir目录设定权限rw-

setfacl -m u:huayu:rw- dir/

使用setfacl删除为用户huayu设定的权限

setfacl -x u:huayu dir/

我们可以看到为用户huayu设定的权限被移除了,虽然没有特殊acl权限条目,但acl列表并没有关闭(权限属性后面的.还是+的状态)

我们可以通过setfacl -b命令关闭acl列表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值