Linux基础 文件权限
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文件权限 ? 1.文件属性的查看 ls - l file ?? ???- ll file -|rw-r--r--| 1 |root| root| 0 |Apr 2 16:17 |file ? ? ?2.文件的类型 ?- ??空文件 ?d ??目录 ?l ??软连接 ?s ??socket套接字 ?b ??block 块设备 ?c ??字符设备 ? 2.目录属性的查看 ls -ld test/ ll -d ?test/ drwxr-xr-x 2 root root 6 Apr 2 16:18 file ? 在/mnt/下新建3个文件和1个目录westos,在westos目录下在建3个文件,实施每秒监控 ???watch -n -1 ls - lR /mnt/ ?,在新建一个lee用户和linux用户 ? ? 3 chown命令 ??:更改文件/目录所有者 ?chown ???username ??????file|dir ???????##更改文件的所有人 ?chown ???username:groupname file|dir ??##更改文件的所有人所有组 ?chown -R username ??????dir ????????????##更改目录本身及里面所有内容的所有人 ? ? chgrp:更改文件/目录所有组 ????????chgrp ???username ?????dir ????##更改文件的所有组 ????????chgrp -R groupname ?????dir ????##更改目录本身及里面所有内容的所有组 4.文件普通权限 ????rw-|r--|r-- ? ? u ??g ??o ?????r :有读取权限 ??????????w:有写入权限 ?????????x:有执行权限 u部分(user) :文件所有人对文件可以读写 g部分(group):文件组成员对文件可读 o部分(other):其他人对文件可读 权限详解 ?1.r(读) ?对文件:可以查看文件中的字符 对目录:可以查看目录中文件的信息 ?2.w(写) ?对文件:可以更改文件内记录的字符。 对目录:可以在目录中子目录或子文件的元数据(子目录、子文件)进行更改,对子目录、子文件的写即是对目录、文件的重命名,删除等操作 ?3.x(执行权限) ?对文件:可以运行文件内记录的程序动作。执行、运行文件 对目录:可以进入目录中 4.修改该文件权限 ? 1.字符方式修改权限 ?chmod u-x file1 ?????????文件 file1拥有者去掉x权限 chmod g+w file1 ?????????文件 file1拥有组添加w权限 chmod u-x,g+w file1 ?????文件 file1拥有者去掉x权,file1拥有组添加w权限 chmod u+rwx ?????????????文件 file1拥有着加读写执行权限 chmod ugo-r file2 ???????文件 file2的用户组其他人去掉r权限 chmod ug+x,o-r file3 ????文件 file3用户和组添加x权限,其他人去掉r权限 ???? chmod g=rx file1 ????????不管之前文件所有组的权限如何,使file1所有组权限变成读、执行 chmod +r ?或 +x file1 ???注意:文件file1对所有的用户增加读和执行权限,惟独写权限不能全部添加,优先给用户添加,为了安全,不给用户组和其他人添加。 ? ? 2.数字方式修改该文件权限 ?文件权限数字表示方式 小科普:在linux文件权限表示中 ????????r=4 (2的2次方) ????????w=2 (2的1次方) ????????x=1 (2的0次方) ????????-=0(-表示没有对应权限,故为0) 举个栗子: rw-|r--|r-- ?u ???g ??o u=rw-=4+2+0=6 g=r--=4+0+0=4 o=r--=4+0+0=4 所以文件权限表示为644 命令:chmod 修改后权限值 file chmod ??777 file ?--------> 该文件权限全部开放 7=rwx 6=rw- 5=r-x 4=r-- 3=-wx 2=-w- 1=--x 0=--- 5.系统默认权限的设定(umask) 从系统存在角度来说,开放权力越大,系统存在意义越高 从系统安全角度来说,开放权力越少,系统安全性越高 所以系统设定新建文件或目录会去掉一些权限 设定方式: umask ?????????????查看系统保留权限默认为022umask 077 ?????修改该系统保留权限为077,此设定为临时设定,只当前shell中生效 永久设定方式: 编辑文件:vim /etc/bashrc ?70 ????if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then ?71 ???????umask 002 ???-----------> 普通用户umask ?72 ????else ?73 ???????umask 077 ???-----------> 超级用户umask ????????????????????????????????????????????????????????????????????? ?74 ????fi ? 编辑文件:vim /etc/profile ?59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then ?60 ????umask 002 ????------------> 普通用户umask ?61 else ?62 ????umask 077 ??????------------> 超级用户umask ???????????????????????????????????????????????????????????????????????????????????????? ?63 fi 以上两个文件umask设定值必须保持一致! 让设定立即生效: source /etc/bashrc source /etc/profile ?? 6.特殊权限 ? 1.sticky 粘制位 ? ????只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被其所有者删除。 设定方式: ????chmod o+t 目录 ????t = 1,故又可以: ????chmod 1xxx 目录 ? 2.sgid 强制位(只针对二进制可执行文件) ? 对文件:只针对二进制可执行文件, ????当文件有sgid权限时,任何人执行此文件产生的进程都属于该文件的文件所有组,和程序发起人组的身份无关 对目录: ????当目录有sgid权限后,目录中新建的所有文件的所有组,都自动归属到目录的所有组之中,和文件建立者所在的组无关 设定方式: ????chmod g+s file/dir ????s = 2,故还可以: ????chmod 2xxx file/dir(xxx代表文件的普通权限数值) 进程查看:ps ax -o comm,user,group | grep watch ? 3.suid 冒险位置 ? ????只针对与二进制的可执行文件,当文件上有suid时,任何人执行这个文件,程序产生的进程都属于该文件所有人,即以文件所有者的身份运行该文件。用于程序执行中权力的提升或者下降。 设定方式: ????chmod u+s file ?????s = 4,故还可以 ????chmod 4xxx file (xxx代表文件的普通权限数值) ? 7.acl列表 ? 1.acl定义 ? acl = 访问控制 ????指定特殊用户对特殊文件有特殊权限 drwxrwx---+ 2 root root 17 Jul 18 01:39 file ???????????^ 这个‘+‘表示acl开启,如果对应位置上是‘.‘则表示没有acl或者acl是关闭的 查看文件是否有acl列表: getfacl? ?file? ? ?查看acl开启的文件权限 ? file: file? ? ? ? ? ? ? ? ??文件名称 owner: root ???????????文件所有人 group: root ???????????文件所有组 user::rwx ????????????????拥有者权限 user:student:rwx ???特殊用户权限 group::r-x ?????????????文件所有组权限 mask::rwx? ? ? ? ? ? ?能赋予用户的最大权力伐值 other::r-x ??????????????其他人权限 注意:当文件上有权限列表时,ls -l 能看到的权限是不真实的 ? 2.acl列表管理 ? a.? ? ? ? ? ?setfacl -m u:student:rwx? file? ? 设定用户对file文件有rwx权限 b.? ? ? ? ???setfacl -m g:group:rwx? file? ? ??设定组成员对file文件有rwx权限 ? 3.删除acl列表中的用户或者组 ?setfacl -x u:student? file? ? ?从acl列表中删除student用户 ?4.关闭acl列表 ?setfacl -b? file? ? ? ??关闭文件上的acl列表 ? 5.acl mask ? mask:权限掩码(表示能生效的权力值) mask用来标实能够赋予用户最大权限阀值 当存在acl列表时,用chmod减小acl的文件权限时mask值可能会发生改变 修复文件mask值: setfacl -m m:rwx 文件名称 ? 6.acl 默认权限设定 ? ? ? acl默认权限只针对目录设定 注意: 默认权限只对设定完成之后新建立的文件或者目录生效,而已经存在的文件不会继承默认权限。 ? ? ? ?setfacl -m d:u:student:rwx /mnt /westos ? ? ? setfacl? -k /mnt/westos (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |