浦东企业网站建设,长沙seo培训,宁国网络推广,网易企业邮箱怎么发送文件关于文件系统权限的管理 众所周知的是#xff0c;一个操作系统#xff0c;是需要为不同的用户进行服务的#xff0c;因为不能让每个人都以管理员进行操作#xff0c;这样做的话#xff0c;毫无安全性可言#xff0c;所以我们需要验证和授权。这就体现了权限的重要性… 关于文件系统权限的管理 众所周知的是一个操作系统是需要为不同的用户进行服务的因为不能让每个人都以管理员进行操作这样做的话毫无安全性可言所以我们需要验证和授权。这就体现了权限的重要性上一篇我介绍了那几个重要的目录。所以这就步入系统权限的正题了。文件系统的权限管理 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表)文件权限的构成 使用权MODEpermission 三个基本权限 rreadable可读 wwritable可写 xexecutable可执行 目录文件 r可以使用ls命令获取其中所包含的所有文件的文件名列表 w可以在此目录中进行文件名修改创建删除修改即可以创建文件名删除文件名及修改文件名 x可以使用ls -l命令查看各个文件的属性信息在路径中引用该目录 非目录文件 r可以利用cat类的命令获取文件中存放的数据信息 w可以修改添加修改删除覆盖文件中所存放的数据信息 x可以将文件发起为进程获取使用权和所有权的相关信息 ls -l[d] /PATH/TO/SOMEFILE[rootlocalhost ~]# ls -l /tmp/test
总用量 0
-rw-r--r--. 1 root root 0 11月 1 19:32 a
-rw-r--r--. 1 root root 0 11月 1 19:32 b
-rw-r--r--. 1 root root 0 11月 1 19:32 c
-rw-r--r--. 1 root root 0 11月 1 19:32 d
-rw-r--r--. 1 root root 0 11月 1 19:32 e
-rw-r--r--. 1 root root 0 11月 1 19:32 frwxr-xr-x:三个权限位属主/所有者属组/所属组其他用户 属主权限rwx此权限位标识为user简写u 属组权限r-x此权限位标识为group简写为g 其他用户权限r-x此权限位标识为other简写为o 所有权限位可以统一用all标识简写为a 注意-表示在该权限位上不具备指定权限 rwx组合称为权限标识三元组 数字权限标识二进制数字标识在对应权限位上有权限则为1无权限则为0 ---000 0 --x001 1 -w-010 2 -wx011 3 r--100 4 r-x101 5 rw-110 6 rwx111 7 使用符号标识权限和数字表示权限的区别 1.使用符号标识法可以只标识某个特定的权限位也可以同时标识所有的权限位 示例 urxugrwxurwxgrxorarwx 2.使用数字标识法只能同时标识所有权限位 示例 7556447 007 75 075修改文件的使用权 chmod - change mode 格式 chmod [options]... mode[,MODE] file... chmod [options]... OCTAL -MODE FILE.. chmod [options]... referenceRFILE FILE... MODE:符号权限标识法 ugoa表示权限位 -表示授权方式 表示在指定的权限位上增加指定权限如果新增的权限是已经存在的权限则结果相比较啊授权之前无变化 -表示在指定的权限位上撤销指定权限如果撤销的权限并不存在则结果相比较啊授权之前无变化 表示在指定的权限位上精确授权此种授权方式不考虑该权限位原有的权限设定 rwx表示具体的权限 注意 chmod |- r|x FILE :在所有者的权限位上增加或撤销读或执行权限 chmod |- w FILE:仅在所有者权限位上增加或撤销写权限 注意对于文件来说执行权限是非常重要的安全上下文标识因此默认情况下所有的非目录文件都不应该有执行权限一旦非目录具有了执行权限则意味着该文件可以被执行发起为进程则可以按需使用系统资源。 OCTAL-MODE八进制权限位标识位 referenceRFILE # chmod --reference/etc/shadow root.txt 依照shadow文件的权限位来设置root.txt相同的权限 常用选项 -R递归的设置目标文件或目录的权限修改文件的所有权 chown chown - 修改文件所有者和组别 格式 chown [option] [OWNER][:[group]] file... chown [option] referenceRFILE FILE... ~]# chown user3 tset1 ~]# chown user3: tset2 ~]# chown :user3 tset3 ~]# chown user3:myuser tset4 注意在使用chown命令时特别的可以使用.代替: 常用选项 -R递归的设置目标文件或目录的权限[rootlocalhost ~]# chown root. /home/yu
[rootlocalhost ~]# ls -l /home
总用量 4
drwx------. 14 root root 4096 9月 17 00:25 yu 注意对于文件来说普通用户可以修改所有者为自己的文件的使用权但无法修改文件的所有权修改文件所有权的操作只有root可以完成 chgrp不常用 chgrp - 改变文件的组所有权 格式 chgrp [option] group file... chgrp [option] referenceRFILE FILE... 注意chown和chgrp所指定的用户和组既可以是用户名和组名也可以是UID和GID mkdir -m MODE 在创建目录时为其指定权限[rootlocalhost ~]# mkdir -m 700 -pv /tmp/mydir
mkdir: 已创建目录 /tmp/mydir
[rootlocalhost ~]# ls -l /tmp
总用量 0
drwx------. 2 root root 6 11月 9 22:46 mydir install命令复制文件并设置属性 install [option] [-T] source dest 单源复制为复制后的文件增加执行权限 install [option] source... directory 多源复制为复制后的文件增加执行权限 install [option] -d directory... 创建目录 常用选项 -g group, --groupgroup 设定目标文件的所属组为指定组而不是进程所有者的主要组 -m mode, --modemode 设定目标文件的权限而不是rwxr-xr-x -o owner, --ownerowner 设定目标文件的所有者仅root用户可用 注意install命令不能复制目录也不能以目录为源文件如果其源文件是一个目录则install命令会进入该目录一次复制其中所有的非目录文件到达目标位置特殊权限 SUID,SGID,STICKY SUIDSUID仅设置在可执行的文件上。默认情况下当用户执行此类可执行文件时被发起的进程的所有者不是进程发起者而是可执行文件的所有者换句话说进程以所有者的身份运行。 SUID权限所显示的位置文件的属主的权限位中的执行权限位上如果属主本来就具有执行权限则显示为“s”如果本来没有执行权限则显示为“S” 管理SUID权限 1.符号标识法chmod us FILE 2.数字标识法chmod 4755 FILE[rootlocalhost ~]# chmod 4755 /tmp/mydir
[rootlocalhost ~]# ls -l /tmp
总用量 0
drwsr-xr-x. 2 root root 6 11月 9 22:46 mydir SGIDSGID可设置在可执行文件或目录的属组权限位的执行权限上。 如果某个目录设置了SGID权限并且对于某些用户有写权限则所有在此目录创建的新文件和目录的所属组均为其父目录的所属组而并非进程发起者的主要组 SGID权限的显示位置文件的属组权限位上的执行权限上如果属组本来就有执行权限。则显示为s否则就显示为“S” 管理SGID权限 1.符号标识法chmod gs DIR 2.数字标识法chmod 2770 DIR [rootlocalhost ~]# chmod 2770 /tmp/mydir/
[rootlocalhost ~]# ls -l /tmp/
总用量 0
drwsrws---. 2 root root 6 11月 9 22:46 mydir 3.STICKY仅设置在目录的其他用户权限位的执行权限上。 如果在某个目录上的权限设置为多个用户都拥有写权限那就意味着凡是拥有写权限的用户都能直接管理该目录中的所有文件名包括改名文件及删除文件名等操作因此需要在这样的目录上设置STICKY特殊权限如果此类目录设置了STICKY则所有用户即便拥有写权限也仅能删除或改名所有者为其自身的文件 STICKY权限的显示位置在目录的其他用户的权限位的执行权限上如果该权限位本来有执行权限则显示为“t”否则显示为“T” 管理STICKY权限 1.符号标识法chmod ot DIR 2.数字标识法chmod 1777 DIR[rootlocalhost ~]# chmod 1777 /tmp/mydir
[rootlocalhost ~]# ls -l /tmp/
总用量 0
drwsrwsrwt. 2 root root 6 11月 9 22:46 mydir权限遮罩码umask 作用在创建目录或文件时被创建出来的目录或文件的默认权限上删除遮罩码上所对应的权限 注意在创建目录或文件时默认不设置特殊权限 对于目录文件默认的权限为0777-umask 对于非目录文件默认的权限为0666-umask[rootlocalhost ~]# umask
0022 umask [OCTAL-MODE] 默认设置遮罩码的文件/etc/bashrc 规则如果用户的UID大于199并且用户的用户名和主要组的组名相同则遮罩码为002否则遮罩码为022文件的扩展属性 lsattr lsattr - 显示文件在Linux第二扩展文件系统上的特有属性 格式 lsattr [ -RVadv ] [ files... ] chattr chattr - 修改文件在Linux第二扩展文件系统(E2fs)上的特有属性 格式 chattr [ -RV ] [ -v version ] [ mode ] files... mode 可以是-[ASacdisu] a在向文件写数据时只能以附加的方式进行写操作文件的内容不能被更改和删除一般会为日志文件设置此属性 Aatime文件的访问时间戳控制属性对于并发访问量较大或者并发访问频率较高的文件应该设置此属性以降低IO成本防止IO瓶颈 c设置是否自动压缩之后在存储 C是否开启“写时复制” d使用dump备份文件系统时跳过属性设置为d的文件 D设置文件在文件系统中的异步写操作 i设置文件不能被删除改名及设定链接关系 s设置文件的保密性删除 u与s属性相反如果此类文件被删除则在存储器中会继续保存其内容FACL Filesystem Access Control List文件系统访问控制列表 想要应用此功能必须让文件系统能够支持 FACL为文件系统的额外赋权机制 在原有的ugo权限位之外让普通用户能够控制权限赋予另外的某个指定的用户或组的一种赋权机制 这种机制在centos或者RHEL7之后的发行版本中才逐渐成熟 与FACL相关的命令 getfacl getfacl - get file access control lists 格式 etfacl [-aceEsRLPtpndvh] file ... setfacl setfacl - set file access control lists 格式 setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ... setfacl --restorefile 常用的选项 -m acl_spec:为指定文件设置acl_spec -x acl_spec:将acl_spec从指定文件上移除 acl_specacl_specification acl规格访问控制列表 u:USERNAME:MODE g:USERNAME:MODE MODE一般是使用符号权限标识法标识的权限 示例 为文件赋予指定用户的额外访问权限 setfacl -m u:USERNAME:rwx /PATH/TO/SOMEFILE/ 撤销指定用户的额外访问权限 setfacl -x u:USERNAME /PATH/TO/SOMEFILE/ 注意如果设置了FACL之后在修改目标文件的使用权限那么FACL中设置的权限条目可能受到影响而导致授权失败还有一些小实验 背景描述xiaoqiang、wangcai和tangbohu三个用户的基本组都是与用户名相同的组但是他们都以qiuxiang组为附属组 [rootlocalhost ~]# groupadd qiuxiang[rootlocalhost ~]# useradd -G qiuxiang xiaoqiang[rootlocalhost ~]# useradd -G qiuxiang wangcai[rootlocalhost ~]# useradd -G qiuxiang tangbohu1.当用户xiaoqiang对/testdir目录无执行权限时和无读权限时分别意味着xiangqiang无法完成哪些操作 无执行权限意味着无法进入目录不能访问 无读权限意味着读取目录不能访问不能查看2.当用户wangcai对/testfile文件只有写权限时是否可修改和删除该文件如果不能那么wangcai能够对该文件做哪些操作 不修改该文件不可以删除该文件。 可以修改添加修改删除覆盖文件中所存放的数据信息3.如果用户tangbohu在/tmp目录中建立了一个目录mydir他想要让wangcai和xiaoqiang这两个用户能够在该目录中创建、修改和删除文件你能想到哪些办法来实现这个目的 1.修改其他人权限 [tangbohulocalhost root]$ mkdir -pv /tmp/mydirmkdir: 已创建目录 /tmp/mydir[tangbohulocalhost root]$ chmod 757 /tmp/mydir[tangbohulocalhost root]$ exitexit[rootlocalhost ~]# su xiaoqiang[xiaoqianglocalhost root]$ touch /tmp/mydir/a[xiaoqianglocalhost root]$ ls /tmp/mydir a 2.修改组权限 [tangbohulocalhost root]$ chgrp qiuxiang /tmp/mydir[tangbohulocalhost root]$ chmod 775 /tmp/mydir 3.利用su命令临时使用root用户执行。二、操作1.复制/etc/fstab文件到/var/tmp下同时设置文件属主为wangcai有读写权限属组为xiaoqiang组有只读权限其他人无权限请写出命令 [rootlocalhost ~]# install -o wangcai -g xiaoqiang -m 740 /etc/fstab /var/tmp2.不使用useradd命令创建用户xiaoming该用户有如下属性 1) UID为8089 2) 主要组为xiaominggid为8089 3) 其用户全名为Wang Xiaoming 4) 家目录在/home/xiaoming 5) 默认登录shell为/bin/bash 6) 密码修改之后5天内不能再次修改密码 7) 密码最多使用30天 8) 密码过期前3天开始提醒用户修改密码 9) 密码过期后7天之内不会禁止用户登录 [rootlocalhost ~]# echo xiaoming:x:8089:8089:Wang XiaoMing:/home/xiaoming:/bin/bash /etc/passwd
[rootlocalhost ~]# echo xiaoming:x:8089: /etc/group
[rootlocalhost ~]# cp -a /etc/skel /home/xiaoming
[rootlocalhost ~]# chmod 700 /home/xiaoming
[rootlocalhost ~]# chown -R xiaoming:xiaoming /home/xiaoming
[rootlocalhost ~]# echo xiaoming::5:30:3:7::: /etc/shadow
[rootlocalhost ~]# passwd xiaoming
更改用户 xiaoming 的密码 。
新的 密码
无效的密码 密码少于 8 个字符
重新输入新的 密码
passwd所有的身份验证令牌已经成功更新。
[rootlocalhost ~]# su xiaoming
[xiaominglocalhost root]$3.用户xiaoming在他自己的家目录中创建了一个文件project.plan为了想要让wangcai用户能够读取到该文件的内容xiaoming将/bin/cat文件复制到/tmp/xmcat/tmp/xmcat只有属主xiaoming和wangcai用户能够执行每次wangcai执行[wangcailocalhost ~]$ /tmp/xmcat ~xiaoming/project.plan命令就能看到该文件的内容 [rootlocalhost ~]# usermod -g 8089 wangcai[rootlocalhost ~]# su - xiaoming[xiaominglocalhost ~]$ touch project.plan[xiaominglocalhost ~]$ install -m 770 /bin/cat /tmp/xmcat[wangcailocalhost ~]$ /tmp/xmcat ~xiaoming/project. 转载于:https://blog.51cto.com/liujingyu/1980457