Linux目录及文件权限管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux操作系统
Linux目录及文件权限管理
本章结构
하드웨어 점검 목록
2
Linux目录及文件权限管理方式
目录及文件的所有者及拥有组
如下所示的内容中有二个“root”,第一个“root”是表明文件的所有都是 root用户;第二个“root”是表明文件的拥有组是名为root的用户组。
[root@srv ~]# ll /etc/fstab
4
目录及文件权限特性
用户有效权限
一个用户对某个目录的有效权限,是该用户自己的权 限、用户初始组权限、用户额外组权限之和。在如下 内容中,可以发现用户“charles”属于2个组,一个 是他的初始组“charles”;一个是他的额外组 “test”,文件“lost”拥有组是“test”;文件拥有 组权限是可读(r)、可写(w)。用户“charles”对 文件“lost”的权限应该就是可读、可写
16
目录及文件高级权限管理
SGID属性
当SGID属性应用在目录上时,该目录中所有建立的文件或子 目录的拥有组都会是该目录的拥有组 当SGID属性应用在可执行文件上时,其他用户在使用该执行 文件时就会临时拥有该执行文件拥有组的权限
[root@srv tmp]# ll total 4 drwxr-sr-x 2 root root 4096 Feb 15 22:25 fringe -r-xr-sr-x 1 root root 6144 Feb 15 22:25 jack
17
目录及文件高级权限管理
Sticky属性
Sticky属性只能应用在目录,当目录拥有Sticky属性所有在该 目录中的文件或子目录无论是什么权限只有文件或子目录所 有者和root用户能删除
18
目录及文件高级权限管理
配置SUID/SGID/Sticky属性
普通权限配置时可以使用字符或数字,SUID、SGID、Sticky 也是一样。使用字符时s表示SUID和SGID、t表示Sticky;4 表示SUID、2表示SGID、1表示Sticky。在配置这些属性时 还是使用chmod命令
[root@srv tmp]# ll total 8 drwxrwxr-x+ 2 root root 4096 Feb 15 23:25 house
20
ACL
配置分区支持ACL功能
使用tune2fs命令 使用mount命令
tune2fs -o acl 分区
mount -o remount,acl 分区 mount -o acl 分区 挂载点
[root@srv tmp]# ll total 0
-rw-rw-r-- 1 root test 0 Feb 15 13:57 lost
[root@srv tmp]# groups charles charles : charles test
5
目录及文件权限特性
新建目录默认权限
在RHEL中默认情况下root用户新建的目录权限是 “755”,也就是说目录的所有者root用户权限是可读 (r=4)、可写入(w=2)、可执行(r=1);目录的 拥有组root用户组权限是可读(r=4)、可执行 (r=1);其他用户的权限是可读(r=4)、可执行 (r=1)。一般用户新建的目录权限是“775”,也就 是说目录的所有者权限是可读(r=4)、可写入 (w=2)、可执行(r=1);目录的拥有组权限是可读 (r=4)、可写入(w=2)、可执行(r=1);其他用 户的权限是可读(r=4)、可执行(r=1)
[root@srv tmp]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@srv tmp]# umask 0022 [root@srv ~]# umask -S u=rwx,g=rx,o=rx
[root@srv tmp]# chmod o+t fringe/
#为目录fringe增加Sticky属性
[root@srv tmp]# chmod 1755 house/ #为目录house增加Sticky属性
19
ACL
Linux文件系统提供的ACL功能为系统中已存在 的任何用户或用户组指定其对系统中文件或目录 的权限 在使用“ls -l”或“ll”命令浏览文件或目录时, 在权限部分多了一个“+”表示该文件或目录已 经配置了ACL功能
目录及文件高级权限管理
权限掩码
在Linux内核级别新建文件的默认权限是666,也就是说文件 的所有者权限是可读(r=4)、可写入(w=2);文件的拥 有组权限是可读(r=4)、可写入(w=2);其他用户的权 限是可读(r=4)、可写入(w=2) 在Linux内核级别新建目录的默认权限是777,也就是说目录 的所有者权限是可读(r=4)、可写入(w=2)、可执行 (x=1);目录的拥有组权限是可读(r=4)、可写入 (w=2)、可执行(x=1);其他用户的权限是可读 (r=4)、可写入(w=2)、可执行(x=1)
8
目录及文件权限特性
符号链接
在RHEL中建立的符号链接文件的权限都是“777”, 也就是说文件的所有者、拥有组、其他用户的权限都 是可读(r=4)、可写入(w=2)、可执行(x=1), 但他的实际权限最后会由他指向的文件决定
9
目录及文件权限特性
用户家目录
在RHEL中每个用户的家目录的所有者是家目录对应的 用户、拥有组是家目录对应用户的初始组;权限是 “700”,也就是只有家目录的所有者有可读(r=4)、 可写入(w=2)、可执行(x=1)权限,其他任何用 户都没有任何权限
修改/etc/fstab文件,使分区永久支持ACL功能
/media/sda10 ext3 defaults,acl 00
/dev/sda10
21
ACL
setfacl:配置ACL
文件|目录...:需要配置ACL的文件或目录 -m:更改文件或目录的ACL规则 -x:删除文件或目录指定的ACL规则 -b:删除文件或目录所有ACL规则 -k:删除文件或目录默认的ACL规则 -d:指定文件或目录默认的ACL规则 --test:测试模式,不会改变任何文件或目录的ACL规 则,操作后的ACL规格将被显示 -R:递归处理,将指定目录下的所有文件及子目录一 并处理
12
所有者/拥有组/权限管理
chmod:更改目录或文件权限
文件|目录...:要更改权限的文件或目录 -R:递归处理,将指定目录下的所有文件及子目录一并处理。 u:更改所有者的权限 g:更改拥有组的权限 o:更改其他用户的权限 a:同时更改所有者、拥有组其他用户的权限 +:在现有权限基于上增加新的权限 -:取消现有权限 =:将权限改为指定值 权限字符:可读(r)、可写入(w)、可执行(x)三种中 任意一种或多种。 权限数字:4表示可读权限、2表示可写入权限、1表示可执 行权限 13
6
目录及文件权限特性
新建文件默认权限
在RHEL中默认情况下root用户新建的文件权限是 “644”,也就是说文件的所有者root用户权限是可读 (r=4)、可写入(w=2);文件的拥有组root用户组 权限是可读(r=4);其他用户的权限是可读(r=4)。 一般用户新建的文件权限是“664”,也就是说文件的 所有者权限是可读(r=4)、可写入(w=2);文件的 拥有组权限是可读(r=4)、可写入(w=2);其他用 户的权限是可读(r=4)
7
目录及文件权限特性
文件拥有者例外
在Linux即便文件的权限中所有者并没有写权限,但只 要当前用户是文件所有都一样可以写入文件,比如在 使用vim编辑这样的文件后保存时只需要使用“!”强 制保存即可。在下面的例子中文件jack所有者的权限是 只读,但由于当前用户是charles,所以该文件还是可 以被写入的
-rw-r--r-- 1 root root 912 Jan 29 11:46 /etc/fstab
在默认情况下安装系统时复制到硬盘的系统文件 的所有者一般是root用户、拥有组一般是root组。 在系统使用过程中文件的所有者是建立文件的用 户、拥有组是建立文件用户的初始组
3
Linux目录及文件权限管理方式
在Linux系统中权限分为可读(r)、可写入 (w)、可执行(x)三种
对于文件来说,可读权限表示允许对文件进行浏览; 可写入权限表示允许修改文件;可执行表示可以将文 件作为命令使用 对于目录来说,可读权限表示允许显示目录列表;可 写入表示可以在目录中建立、删除、移动文件或子目 录;可执行表示可以切换到目录
11
所有者/拥有组/权限管理
chown:更改目录或文件的所有者或拥有组
文件|目录...:要更改拥有组的文件或目录。 -R:递归处理,将指定目录下的所有文件及子目录一 并处理。 --reference=<参考文件或目录>:把指定文件或目录 的所有者和拥有组更改成和参考文件或目录的拥有组 相同 -v:显示命令执行过程
15
目录及文件高级权限管理
SUID属性
SUID属性只能运用在可执行文件上,当用户执行该执行文件 时,会临时拥有该执行文件所有者的权限
[root@srv ~]# ll /etc/shadow
-r-------- 1 root root 1128 Feb 15 14:33 /etc/shadow
[root@srv ~]# ll /usr/bin/passwd -rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
22
ACL
在该命令中指定ACL规则可以使用以下几种方式
[d:]u:<UID|用户>:权限:指定用户的ACL,[d:]表示配 置用户对文件或目录的默认的ACL,权限可以使用字符 或数字 [d:]g:<GID|用户组>:权限:指定用户的ACL,[d:]表示 配置用户对文件或目录的默认的ACL,权限可以使用字 符或数字 [d:]o:权限:相关于普通权限中其他用户的权限,[d:] 表示配置用户对文件或目录的默认的ACL,权限可以使 用字符或数字 [d:] m:权限:指定有效权限,[d:]表示配置的默认的权 限,权限可以使用字符或数字
10
所有者/拥有组/权限管理
chgrp:更改目录或文件的拥有组
用户组:更改以后的拥有组 -R:递归处理,将指定目录下的所有文件及子目录一 并处理 -v:显示命令执行过程 --reference=<参考文件或目录>:把指定文件或目录 的拥有组更改成和参考文件或目录的拥有组相同
[root@srv tmp]# ll total 4 drwxr-xr-x 2 root root 4096 Feb 15 14:56 lost [root@srv tmp]# chgrp charles lost/ [root@srv tmp]# ll total 4 drwxr-xr-x 2 root charles 4096 Feb 15 14:56 lost
14
目录及文件高级权限管理
权限掩码
umask值是一个三位的整数,其中百位是所有者权限掩码; 十位是拥有组权限掩码;个位是其他用户权限掩码。当用户 在新建目录或文件时真正的权限会使用Linux内核级别默认权 减去umask值。比如在RHEL中root用户默认的umask值是 “022”,那么新建的文件默认权限就应该是666-022;一 般用户默认的umask值是“002”,那么新建的文件默认权 限就应该是666-002。通过“umask”命令可以查看当前用 户的umask值
#为文件jack增加SUID属性
#为文件oliva增加SUID属性 #为目录csi增加SGID属性
[root@srv tmp]# chmod u+s jack
[root@srv tmp]# chmod 4555 oliva [root@srv tmp]# chmod g+s csi/
[root@srv tmp]# chmod 2755 dexter/ #为目录dexter增加SGID属性
Linux目录及文件权限管理
本章结构
하드웨어 점검 목록
2
Linux目录及文件权限管理方式
目录及文件的所有者及拥有组
如下所示的内容中有二个“root”,第一个“root”是表明文件的所有都是 root用户;第二个“root”是表明文件的拥有组是名为root的用户组。
[root@srv ~]# ll /etc/fstab
4
目录及文件权限特性
用户有效权限
一个用户对某个目录的有效权限,是该用户自己的权 限、用户初始组权限、用户额外组权限之和。在如下 内容中,可以发现用户“charles”属于2个组,一个 是他的初始组“charles”;一个是他的额外组 “test”,文件“lost”拥有组是“test”;文件拥有 组权限是可读(r)、可写(w)。用户“charles”对 文件“lost”的权限应该就是可读、可写
16
目录及文件高级权限管理
SGID属性
当SGID属性应用在目录上时,该目录中所有建立的文件或子 目录的拥有组都会是该目录的拥有组 当SGID属性应用在可执行文件上时,其他用户在使用该执行 文件时就会临时拥有该执行文件拥有组的权限
[root@srv tmp]# ll total 4 drwxr-sr-x 2 root root 4096 Feb 15 22:25 fringe -r-xr-sr-x 1 root root 6144 Feb 15 22:25 jack
17
目录及文件高级权限管理
Sticky属性
Sticky属性只能应用在目录,当目录拥有Sticky属性所有在该 目录中的文件或子目录无论是什么权限只有文件或子目录所 有者和root用户能删除
18
目录及文件高级权限管理
配置SUID/SGID/Sticky属性
普通权限配置时可以使用字符或数字,SUID、SGID、Sticky 也是一样。使用字符时s表示SUID和SGID、t表示Sticky;4 表示SUID、2表示SGID、1表示Sticky。在配置这些属性时 还是使用chmod命令
[root@srv tmp]# ll total 8 drwxrwxr-x+ 2 root root 4096 Feb 15 23:25 house
20
ACL
配置分区支持ACL功能
使用tune2fs命令 使用mount命令
tune2fs -o acl 分区
mount -o remount,acl 分区 mount -o acl 分区 挂载点
[root@srv tmp]# ll total 0
-rw-rw-r-- 1 root test 0 Feb 15 13:57 lost
[root@srv tmp]# groups charles charles : charles test
5
目录及文件权限特性
新建目录默认权限
在RHEL中默认情况下root用户新建的目录权限是 “755”,也就是说目录的所有者root用户权限是可读 (r=4)、可写入(w=2)、可执行(r=1);目录的 拥有组root用户组权限是可读(r=4)、可执行 (r=1);其他用户的权限是可读(r=4)、可执行 (r=1)。一般用户新建的目录权限是“775”,也就 是说目录的所有者权限是可读(r=4)、可写入 (w=2)、可执行(r=1);目录的拥有组权限是可读 (r=4)、可写入(w=2)、可执行(r=1);其他用 户的权限是可读(r=4)、可执行(r=1)
[root@srv tmp]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@srv tmp]# umask 0022 [root@srv ~]# umask -S u=rwx,g=rx,o=rx
[root@srv tmp]# chmod o+t fringe/
#为目录fringe增加Sticky属性
[root@srv tmp]# chmod 1755 house/ #为目录house增加Sticky属性
19
ACL
Linux文件系统提供的ACL功能为系统中已存在 的任何用户或用户组指定其对系统中文件或目录 的权限 在使用“ls -l”或“ll”命令浏览文件或目录时, 在权限部分多了一个“+”表示该文件或目录已 经配置了ACL功能
目录及文件高级权限管理
权限掩码
在Linux内核级别新建文件的默认权限是666,也就是说文件 的所有者权限是可读(r=4)、可写入(w=2);文件的拥 有组权限是可读(r=4)、可写入(w=2);其他用户的权 限是可读(r=4)、可写入(w=2) 在Linux内核级别新建目录的默认权限是777,也就是说目录 的所有者权限是可读(r=4)、可写入(w=2)、可执行 (x=1);目录的拥有组权限是可读(r=4)、可写入 (w=2)、可执行(x=1);其他用户的权限是可读 (r=4)、可写入(w=2)、可执行(x=1)
8
目录及文件权限特性
符号链接
在RHEL中建立的符号链接文件的权限都是“777”, 也就是说文件的所有者、拥有组、其他用户的权限都 是可读(r=4)、可写入(w=2)、可执行(x=1), 但他的实际权限最后会由他指向的文件决定
9
目录及文件权限特性
用户家目录
在RHEL中每个用户的家目录的所有者是家目录对应的 用户、拥有组是家目录对应用户的初始组;权限是 “700”,也就是只有家目录的所有者有可读(r=4)、 可写入(w=2)、可执行(x=1)权限,其他任何用 户都没有任何权限
修改/etc/fstab文件,使分区永久支持ACL功能
/media/sda10 ext3 defaults,acl 00
/dev/sda10
21
ACL
setfacl:配置ACL
文件|目录...:需要配置ACL的文件或目录 -m:更改文件或目录的ACL规则 -x:删除文件或目录指定的ACL规则 -b:删除文件或目录所有ACL规则 -k:删除文件或目录默认的ACL规则 -d:指定文件或目录默认的ACL规则 --test:测试模式,不会改变任何文件或目录的ACL规 则,操作后的ACL规格将被显示 -R:递归处理,将指定目录下的所有文件及子目录一 并处理
12
所有者/拥有组/权限管理
chmod:更改目录或文件权限
文件|目录...:要更改权限的文件或目录 -R:递归处理,将指定目录下的所有文件及子目录一并处理。 u:更改所有者的权限 g:更改拥有组的权限 o:更改其他用户的权限 a:同时更改所有者、拥有组其他用户的权限 +:在现有权限基于上增加新的权限 -:取消现有权限 =:将权限改为指定值 权限字符:可读(r)、可写入(w)、可执行(x)三种中 任意一种或多种。 权限数字:4表示可读权限、2表示可写入权限、1表示可执 行权限 13
6
目录及文件权限特性
新建文件默认权限
在RHEL中默认情况下root用户新建的文件权限是 “644”,也就是说文件的所有者root用户权限是可读 (r=4)、可写入(w=2);文件的拥有组root用户组 权限是可读(r=4);其他用户的权限是可读(r=4)。 一般用户新建的文件权限是“664”,也就是说文件的 所有者权限是可读(r=4)、可写入(w=2);文件的 拥有组权限是可读(r=4)、可写入(w=2);其他用 户的权限是可读(r=4)
7
目录及文件权限特性
文件拥有者例外
在Linux即便文件的权限中所有者并没有写权限,但只 要当前用户是文件所有都一样可以写入文件,比如在 使用vim编辑这样的文件后保存时只需要使用“!”强 制保存即可。在下面的例子中文件jack所有者的权限是 只读,但由于当前用户是charles,所以该文件还是可 以被写入的
-rw-r--r-- 1 root root 912 Jan 29 11:46 /etc/fstab
在默认情况下安装系统时复制到硬盘的系统文件 的所有者一般是root用户、拥有组一般是root组。 在系统使用过程中文件的所有者是建立文件的用 户、拥有组是建立文件用户的初始组
3
Linux目录及文件权限管理方式
在Linux系统中权限分为可读(r)、可写入 (w)、可执行(x)三种
对于文件来说,可读权限表示允许对文件进行浏览; 可写入权限表示允许修改文件;可执行表示可以将文 件作为命令使用 对于目录来说,可读权限表示允许显示目录列表;可 写入表示可以在目录中建立、删除、移动文件或子目 录;可执行表示可以切换到目录
11
所有者/拥有组/权限管理
chown:更改目录或文件的所有者或拥有组
文件|目录...:要更改拥有组的文件或目录。 -R:递归处理,将指定目录下的所有文件及子目录一 并处理。 --reference=<参考文件或目录>:把指定文件或目录 的所有者和拥有组更改成和参考文件或目录的拥有组 相同 -v:显示命令执行过程
15
目录及文件高级权限管理
SUID属性
SUID属性只能运用在可执行文件上,当用户执行该执行文件 时,会临时拥有该执行文件所有者的权限
[root@srv ~]# ll /etc/shadow
-r-------- 1 root root 1128 Feb 15 14:33 /etc/shadow
[root@srv ~]# ll /usr/bin/passwd -rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
22
ACL
在该命令中指定ACL规则可以使用以下几种方式
[d:]u:<UID|用户>:权限:指定用户的ACL,[d:]表示配 置用户对文件或目录的默认的ACL,权限可以使用字符 或数字 [d:]g:<GID|用户组>:权限:指定用户的ACL,[d:]表示 配置用户对文件或目录的默认的ACL,权限可以使用字 符或数字 [d:]o:权限:相关于普通权限中其他用户的权限,[d:] 表示配置用户对文件或目录的默认的ACL,权限可以使 用字符或数字 [d:] m:权限:指定有效权限,[d:]表示配置的默认的权 限,权限可以使用字符或数字
10
所有者/拥有组/权限管理
chgrp:更改目录或文件的拥有组
用户组:更改以后的拥有组 -R:递归处理,将指定目录下的所有文件及子目录一 并处理 -v:显示命令执行过程 --reference=<参考文件或目录>:把指定文件或目录 的拥有组更改成和参考文件或目录的拥有组相同
[root@srv tmp]# ll total 4 drwxr-xr-x 2 root root 4096 Feb 15 14:56 lost [root@srv tmp]# chgrp charles lost/ [root@srv tmp]# ll total 4 drwxr-xr-x 2 root charles 4096 Feb 15 14:56 lost
14
目录及文件高级权限管理
权限掩码
umask值是一个三位的整数,其中百位是所有者权限掩码; 十位是拥有组权限掩码;个位是其他用户权限掩码。当用户 在新建目录或文件时真正的权限会使用Linux内核级别默认权 减去umask值。比如在RHEL中root用户默认的umask值是 “022”,那么新建的文件默认权限就应该是666-022;一 般用户默认的umask值是“002”,那么新建的文件默认权 限就应该是666-002。通过“umask”命令可以查看当前用 户的umask值
#为文件jack增加SUID属性
#为文件oliva增加SUID属性 #为目录csi增加SGID属性
[root@srv tmp]# chmod u+s jack
[root@srv tmp]# chmod 4555 oliva [root@srv tmp]# chmod g+s csi/
[root@srv tmp]# chmod 2755 dexter/ #为目录dexter增加SGID属性