Linux权限

3.权限

3.1系统中的权限是在文件中标识

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oG987E1w-1670241787035)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221203135905012.png)]

3.2 权限两种描述方式

字符形式: r w x

数值形式:r=4 w=2 x=1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FocD4VwX-1670241787035)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221203140008763.png)]

3.3 文件默认权限值

​ 目录文件的最高权限值 777

权限过滤值(权限掩码)umask 022

​ 755

​ 文本文件的最高权限值666

权限过滤值(权限掩码)umask 022

​ 644

3.4 权限字符含义

文件文件:r read 读取文件内容(cat tac more less head tail grep )

​ w wirte 编辑文件内容(vim > cat << EOF > file)

​ x excute 解释运行文件的内容(命令文件)

​ 目录文件: r ls

​ w

​ x cd (r-x) (rwx)

3.5linux中文件权限匹配方式

可执行文件进程的所属身份是用发起者身份,

判断进程发起者身份是否是目标文件的所属用户,是,匹配目标文件所属用户的权限;

不是,判断进程发起者身份是否是目标文件的所属组用户,是,直接匹配目标文件组权限,

不是,则直接匹配目标文件其他用户的权限;

3.6 更改文件的权限

chmod 权限 文件名

chmod ugo=rwx   FILE1     //u  user   g group   o  other    a  all
chmod a=rwx  FILE1
chmod -x  FILE1
chmod u=rwx,g+w,o-r  file 

chmod   777  DIRNAME  
chmod    7   DIRNAME  == chmod 007 DIRNAME

chmod u=7 FILENAME  --错误
注:普通用户修改权限,用户只能更改属于当前用户文件的权限。

chown    更改文件所属用户
chown 用户名   FILE... 
chown 用户名:组名   FILE... 

chgrp    更改文件所属组
chgrp  组名   FILE...

拷贝文件/etc/fstab 到/var/tmp/fstab

配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 zhangsan文件/var/tmp/fstab 属于 zhangsan 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作

#cp  /etc/fstab   /var/tmp
#useradd zhangsan
#chown zhangsan:zhangsan   /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#chmod o+r /var/tmp/fstab

3.7特殊权限

umask 0022

chmod 4644 file

u+s =4 所属用户的禁锢位 suid

仅对可执行文件(命令文件)设置有意义:可执行文件进程的所属身份是执行文件自身的身份
[root@www pub]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 33544 Dec 14  2019 /usr/bin/passwd
[redhat@www pub]$ passwd   //passwd进程的用户身份是root(是执行文件自身的身份)
                           //passwd 修改当前用户的密码,更改的是/etc/shadow 
[root@www pub]# ll /etc/shadow
----------. 1 root root 1744 Dec  3 11:30 /etc/shadow

为什么普通用户可以修改/etc/shadow的密码信息?
原因是passwd进程的身份是root,作为root匹配目标文件可以忽略读写权限

g+s=2 所属组的禁锢位sgid

对可执行文件(命令文件)设置有意义: 可执行文件进程的所属组身份是执行文件自身的所属组身份 (应用不是很多)
[root@www pub]# ll /usr/bin/touch 
-rwxr-xr-x. 1 root root 96144 Jul 10  2021 /usr/bin/touch
[root@www pub]# chmod g+s /usr/bin/touch
[redhat@www pub]$ touch red2
[redhat@www pub]$ ll
-rw-rw-r--. 1 redhat root   0 Dec  3 16:13 red2
对目录文件设置有意义:在目录下任意用户创建的文件,文件的所属组都是当前目录的所属组
[root@www ~]# mkdir /test
[root@www ~]# chmod 777 /test
[redhat@www ~]$ cd /test
[redhat@www test]$ touch red1
[redhat@www test]$ ll
total 0
-rw-rw-r--. 1 redhat redhat 0 Dec  3 16:19 red1
[root@www ~]# chmod g+s /test                ----对/test 设置sgid
[root@www ~]# ll -d /test
drwxrwsrwx. 2 root root 18 Dec  3 16:19 /test
[redhat@www test]$ touch red2
[redhat@www test]$ ll
total 0
-rw-rw-r--. 1 redhat redhat 0 Dec  3 16:19 red1
-rw-rw-r--. 1 redhat root   0 Dec  3 16:20 red2  ---创建文件的所属组取决于/test目录的所属组

o+t=1 sticky 冒险位

仅对目录文件设置有意义:
o+t在该目录下,用户只能删除属于自己的文件不能删除别人的文件。
注:(目录文件对当前用户如果没有写权限,不能删除文件;对目录文件只有有写权限,用户可以删除任意用户创建的文件)

3.8扩展权限

./+ .表示没有扩展权限,+有扩展权限

查看文件的权限列表 :getfacl FILENAME

设置扩展权限列表:setfacl -m u:用户名:权限 FILENAME

​ setfacl -m g:组名:权限 FILENAME

删除扩展权限列表: setfacl -x u:用户名: FILENAME

清空扩展权限: setfacl -b FILENAME

练习题:

1.创建下列用户,组,和组的成员关系(servera)
• 创建组sysmgrs
• 一个名为 natasha 的用户,其属于 sysmgrs,这个组是该用户的从属组
• 一个名为 harry 的用户,属于 sysmgrs,这个组是该用户的从属组
• 一个名为 sarah 的用户,其在系统汇总没有可以交互的 shell
• 用户 natsha,harry,sarah 的秘密吗都要设定为:modteed

#groupadd sysmgrs
#useradd -G sysmgrs natasha
#useradd harry
#usermod -G sysmgrs harry  #gpasswd -a harry sysmgrs
#useradd -s /sbin/nologin sarah
#echo modteed |passwd --stdin natasha
#echo modteed |passwd --stdin harry
#echo modteed |passwd --stdin sarah

2.拷贝文件/etc/fstab 到/var/tmp/fstab 配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 root 文件/var/tmp/fstab 属于 root 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 用户 natasha 能够对文件/var/tmp/fstab/具有读写权限
• 用户 harry 对文件/var/tmp/fstab 既不能读也不能写
• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作

#cp /etc/fstab /var/tmp/fstab
#chown root.root /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#setfacl -m u:natasha:rw /var/tmp/fstab
#setfacl -m u:harry:- /var/tmp/fstab
#chomd o=r /var/tmp/fstab

3.创建一个共享目录/home/managers 特性如下

• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组

#mkdir -pv /home/managers
#chown sysmgrs:sysmgrs /home/managers
#chmod g=rwx /home/mangers
#chmod o=- /home/mangers
#chmod 770 /home/managers
#chmod g+s /home/managers

var/tmp/fstab
#chmod a-x /var/tmp/fstab
#setfacl -m u:natasha:rw /var/tmp/fstab
#setfacl -m u:harry:- /var/tmp/fstab
#chomd o=r /var/tmp/fstab


3.创建一个共享目录/home/managers 特性如下

• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组

#mkdir -pv /home/managers
#chown sysmgrs:sysmgrs /home/managers
#chmod g=rwx /home/mangers
#chmod o=- /home/mangers
#chmod 770 /home/managers
#chmod g+s /home/managers

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳阳真的很菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值