权限
一般权限
1.linux中的权限在文件中标识
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OvlKQ8fK-1670215182589)(C:\Users\倪旻萱\AppData\Roaming\Typora\typora-user-images\image-20221204141419447.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pfE0ZlI7-1670215182591)(C:\Users\倪旻萱\AppData\Roaming\Typora\typora-user-images\image-20221204141430858.png)]
2.权限的描述形式
(1)字符形式 r–read w–write x–excute
(2)数值形式 r=4 w=2 x=1
-rw-r--r--. 1 root root 12 Nov 27 15:43 ddd 6 4 4
drwxr-xr-x. 2 root root 6 Nov 26 19:55 Desktop 7 5 5
3.权限字符的含义
文本文件:r 查看文件的内容 cat more less tac tail head vim grep
w编辑文件内容 vim > cat <<EOF>FILENAME echo 123>a.txt
x执行改文件中内容(脚本信息)命令文件
目录文件:r 查看目录中的文件名 ls
w在该目录下创建文件 touch mkdir cp mv > rm
x执行cd 进入该目录 (r-x)
4.权限的匹配规则
可执行文件(命令文件)进程的所属用户身份是用户发起者身份;
判断发起者身份是否是目标文件的所属用户:
是—只匹配目标文件所属用户位的权限
不是–判断发起者身份是否是目标文件所属组用户,是组用户,只匹配目标文件所属组的权限,不是,直接匹配目标文件其他用户位的权限
5.修改权限的方式
chmod 权限 FILENAME
注:作为普通用户只能更改属于自己文件的权限
u所属用户位 g所属组 o其他用户 a所有
chmod ugo=rwx file1 ==chmod a=rwx file1 ==chmod rwx file
chmod u=rw-,g=r,o-r file1 == chmod -x file
chmod 644 file2 rw-r--r--
chmod 006 file3
chown 更改文件的所属用户
chown 用户名 FILE
chown 用户名:组名 FILE
chown .组名 FILE
chgrp 更改文件的所属组
chgrp 组名 FILE
6.文件默认的权限值
drwxr-xr-x. 2 root root 6 Dec 4 15:16 mmm 755
-rw-r--r--. 1 root root 0 Dec 4 15:16 xxx 644
文本文件最高的权限值:666
权限掩码(权限过滤值:022 #umask
文本文件默认的权限值:644
目录文件最高的权限值:777
权限掩码(权限过滤值:022 #umask
目录文件默认的权限值:755
(奇数相减不等于数值相减)
rw- rw- rw- 6 6 6
--- -wx -wx 0 3 3
rw- r-- r-- 6 3 3
特殊权限
u+s=4 suid 所属用户的禁锢位
仅对可执行文件(命令文件)设置有意义
可执行文件(命令文件)设置u+s权限,可执行文件的进程所属用户位文件自身的用户
eg.
[root@localhost ~]# ll /etc/shadow
----------. 1 root root 1703 Dec 4 11:42 /etc/shadow(对所有用户没有任何权限)
[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2926 Dec 4 11:42 /etc/passwd
[nmx@localhost ~]$ passwd (为什么普通用户可以修改)
Changing password for user nmx.
Current password:
原因:通过普通用户执行passwd , passwd 文件进程身份是root
设置情况:通过任意用户执行命令,通过root身份来执行就可以设置特殊权限u+s
g+s=2 sgid 所属组的禁锢位
(1)对可执行文件设置有意义:(很少用)
可执行文件(命令文件)设置u+s权限,可执行文件的所属组是可执行文件自身的所属组
(2)对目录文件设置有意义:任意用户在该目录下创建的文件,文件的所属组都是目录的所属组
eg:
[root@localhost ~]# chmod 777 /pub
[root@localhost ~]#
[root@localhost ~]# ll /usr/bin/touch
-rwxr-xr-x. 1 root root 96144 Jul 10 2021 /usr/bin/touch
o+t=1 sticky 冒险位
仅对目录文件设置有意义:
目录文件设置o+t权限后,用户只能删除自己的文件不能删除别人的文件
8.扩展权限
./+
getfacl 查看文件的权限列表
[root@localhost ~]# getfacl nnn
# file: nnn
# owner: root
# group: root
user::rw-
group::r--
other::r--
setfacl 设置扩展权限信息
setfacl -m u:用户名(UID):权限 file
-m指定权限列表
-x删除扩展权限列表
-b清空扩展权限(扩展权限的标识符)
作业题:
1.创建下列用户,组,和组的成员关系(servera)
• 创建组sysmgrs
• 一个名为 natasha 的用户,其属于 sysmgrs,这个组是该用户的从属组
• 一个名为 harry 的用户,属于 sysmgrs,这个组是该用户的从属组
• 一个名为 sarah 的用户,其在系统汇总没有可以交互的 shell
• 用户 natsha,harry,sarah 的秘密吗都要设定为:modteed
[root@localhost ~]# groupadd sysmgrs
[root@localhost ~]# usermod -G sysmgrs natasha
[root@localhost ~]# usermod -G sysmgrs[root@localhost ~]# passwd natasha
Changing password for user natasha.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd harrry
passwd: Unknown user name 'harrry'.
[root@localhost ~]# passwd harry
Changing password for user harry.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd sarah
Changing password for user sarah.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
harry
[root@localhost ~]# useradd sarah
[root@localhost ~]# usermod -L 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 进行读操作
[root@localhost ~]# cp -r /etc/fstab /var/tmp/fstab
[root@localhost ~]# chown root:root /var/tmp/fstab[root@localhost ~]# chmod -x /var/tmp/fstab
[root@localhost ~]# useradd natasha
[root@localhost ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@localhost ~]# useradd harry
[root@localhost ~]# setfacl -m u:harry:--- /var/tmp/fstab
3.创建一个共享目录/home/managers 特性如下
• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组
[root@localhost ~]# mkdir /home/managers
[root@localhost ~]# chmod 777 /home/managers
[root@localhost ~]# chgrp sysmgrs /home/managers
[root@localhost ~]# chmod 770 /home/managers
[root@localhost ~]# chmod u+s /home/managers
ocalhost ~]# mkdir /home/managers
[root@localhost ~]# chmod 777 /home/managers
[root@localhost ~]# chgrp sysmgrs /home/managers
[root@localhost ~]# chmod 770 /home/managers
[root@localhost ~]# chmod u+s /home/managers