Llinux文件目录权限及chmod命令简析 操作系统

Llinux文件目录权限及chmod命令简析

这些天,在互推联盟群(344134224 )遇到几例关于WP升级失败以及FTP账号登陆的问题。最终发现都是主机的目录权限设置存在问题。比如,博友【PPT分享网】提出,能否让2个账号都能访问同一个FTP目录,其实只要使用chmod对目录赋相应的权限即可。 本文整理了关于Linux目录权限的一些基础知识,希望可以帮助一些刚接触Linux的朋友,比如使用VPS的博友等。   下图直观的展现了Linux系统中文件目录权限信息,有了它,应该能很快的算出,主机后台管理中类似于755、604、664 等数字代表的具体权限。这类三位数,分别表示下图的 r w x 的值(红色说明)的求和。     如果是在终端环境,可以使用 ls -al 命令列出当前目录所以文件、文件夹以及相应的权限情况。当然,直接使用 ll 命令也是一样的效果啦!如下图所示:     结果中,d打头的表示是一个目录,也就是文件夹;-横杆打头的表示是一个文件,当然还有其他打头的,比如 l 打头表示一个链接文件等等,这里就不细说了。下面介绍rwx代表的详细意义。   目录的 【读权限位】意味着可以列出其中的内容。【写权限位】意味着可以在该目录中创建文件,【执行权限位】则意味着搜索和访问该目录(cd)。 r-- 权限:单独有读权限不能执行ls命令,ls dir需要同时有这个dir的r-x权限。 -w- 权限:光有写权限什么事也不能干。创建文件要有-wx权限。 --x 权限:光有 x 权限可以进入该目录,可以cd path, 如果对某一文件有读权限,可以 ls path/xfile  cat path/xfile. 如果对某一文件有写权限,可以 vi path/xfile,(没有读权限的时候)可以以覆盖的形式保存。 如果对某一文件有执行权限,可以 path/xfile 执行该文件。 假设path路径下有一个文件file,某用户对file的文件的权限为 rwx ,而 path 为 --x,那么用户可以通过路径的方式 ……/path/file 执行该file文件,通过 vi编辑该文件,因为该目录是可以访问的。 但是该用户cd该目录后不能ls,但是可以 ls path/file. 假设path下有一个文件file,某用户对file的文件的权限为rwx, 而path为rw-,那么该用户无法通过路径的方式 ……/path/file执行该file文件,无法通过vi编辑该文件,因为该目录是不可以访问的(无法cd进入该目录)。同时也不能在该目录下建立新文件,虽然看起来已经有 w的权限。 如果某个用户对文件夹/AA/BB/CC 有rwx的权限,如果想正常操作CC文件夹,对AA和BB都必须有x权限。 所以目录对组合其他用户一般都设为r-x. 对于文件来说,如果要想一个文件的x权限起作用,同时必须有r权限。 对于目录设w权限给别的用户的危险性:在用户Locke拥有的目录…/treaties下有一个文件叫twotreatiesOnGrv,然后Locke给这个文件限制为别的用户不能写,但是别的用户对treaties目录却有写权限,那么别人,比如说,Plato还能不能写twotreatiesOnGrv这个文件呢,答案是,不能但又能,Plato不能直接,比如vi来改这个文件(但是w! twotreatiesOnGrv 也可以覆盖这个文件),但是他可以通过mv 将一个别的文件到treaties目录下覆盖这个twotreatiesOnGrv. 对于没有写权限的文件,如果对所在目录有写权限,这个文件可以被删除。 以上,整理于网络   那如何变更权限呢?在终端中,可以直接使用chmod来改变权限: 比如,给文件xfile赋上可执行权限,可以 chmod +x xfile 如果是文件目录,想遍历赋权呢?那你可以使用 -R参数,比如,给 /data/www目录赋 755的权限,你可以: chmod -R  755 /data/www 所以,想赋什么权,只要根据第一个图查下对应的数字,然后chmod下就可以了!就是如此简单!
阅读全文
操作系统

Linux系统chmod误操作目录权限恢复方法

部门刚上线了一个新系统,发现一个BUG,于是开发直接上机器调试,他认为是文件目录权限不够的问题,于是想用chmod -R 777 先给这个程序目录全部权限试试。 结果,那家伙手一抖命令敲成了: 而且想都不想就回车了,然后弹出一堆 /proc/*** 没权限更改目录权限的错误提示,我一看就冷了一大截。。。里面让他ctrl +C 终止命令。 不出所想,系统文件权限已经大部分都变成了"777"!下面是解决方法: Linux中,如果意外误操作将根目录目录权限批量设置,比如chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的getfacl命令来拷贝和还原系统权限,若是其他系统目录被误操作,同样可行。修复的方法如下: 1、通过一台权限正常的Linux(最好内核版本和故障服务器相同) 通过getfacl -R / >systemp.bak将这个正常系统的/目录下所有文件的权限都备份保存在systemp.bak中。 2、如果异常服务器未重启等操作并且连接未端,可以使用scp命令将正常的备份文件传至异常服务器中,命令如下: scp [email protected]目标机器IP:system.bak文件路径  本地存放system.bak路径 也可用其他方法把systemp.bak移动到异常服务器中。 3、在异常服务器中执行命令setfacl --restore=systemp.bak即可将现在的系统权限恢复成和正常系统一样。 4、reboot重启系统
阅读全文