首先大致有个概念,文件所有者,也就是定义私人的空间,而用户组是可以设置大家共享的权限,可以查看,还是大家都可以修改,类比私人房间和客厅的差别,当然还有一个其他人,也就是来家里的客人
不过还有个万能的神,root,他可以无视所有限制,为所欲为
在Linux中,默认所有账户包括root都记录在etc/passwd这个文件内,而密码则记录在/etc/shadow这个文件下,不得不说这个文件名有点误导,此外Linux所有的组名都记录在/etc/group这个文件里,所以注意,不要随意删除,修改,不要rm -rf /*
这三个文件的格式以后再说
不同的用户能否查看文件,修改和执行文件取决于这个权限的设定,接下来好好看一下
登录进系统以后,首先看一下ls -al 有什么效果,当然,ls(也就是list)这个命令有很多参数,可以自己多查查
从左到右,分别是,权限明细,连接,所有者,用户组,文件容量,修改日期,文件名
其中有的权限明细上有个与众不同的d,意思是个目录,若是-,意思是一个文件,l表示连接文件,b是个可存储的接口是被,c表示设备文件里的串行端口设备,类似键鼠
可以看到紧随其后是九个空位填了rwx这三个字母,时有时无,r意为可读,w代表可写,x代表可执行
以下为例
- rwx r-x r--
1234567890
1:-表示这个文件名是个文件
234:表示拥有者有可以读写执行的权限
567:表示同用户组的权限,本例中为可读,可执行
890:其他用户的权限,本例中为可读
rwx所在的位置是不变的,,有这个权限就会显示字符,没有就会变成-号
同样在rwx认为是4+2+1=7,
要修改文件属性为这个例子的样子,可以用
chmod 754 文件名或者chmod u=rwx,g=rx,o=r 文件名
如果不知道别的权限,只是添加一个读写权限,就是
chmod a+w 文件名(ugoa分别以为所有者,用户组,其他用户和所有),同理去除使用-号
修改用户组:chgrp 用户组 文件名
修改所有者:chown 账号名称:组名 文件或者目录
两个都可以使用-R表示递归,不过不常用
权限一定要慎重,原因在于rwx这个三个符号的含义
对文件:
r:可以读取实际内容,例如阅读文本文件
w:编辑,新增或修改文件内容
x:执行,但是并不具备删除该文件的权限,原因看了下面的就晓得了
对目录:
r:可以查询该目录下的文件,比如可以ls一把
w:可以更改该木立下的结构列表,如创建新的文件或目录,删除已存在的文件和目录(不论该文件的权限是什么),重命名已有文件和目录,转移文件或目录的位置等
x:可以进入该目录成为工作目录
复制行为会复制执行者的属性和权限
如果你在一个目录下不具有x的权限,那么就无法切换到这个目录下,也就无法执行该目录下的任何命令,及时具有该目录的r权限,也就是说,要开放目录给任何人浏览时,应该至少也要给r和x权限,w是不可以随便给的,因为w是可以修改的,注意是修改这个目录下的所有信息
当然如果权限就这么简单也就没什么了,其实还有一些特殊权限
t :设置粘着位,一个文件可读写的用户并一定相让他有删除此文件的权限,如果文件设置了t权限则只用所有者和root有删除文件的权限,命令是chmod +t 文件名
i:不得任意更动文件或目录,添加了这个权限之后就不能随意更改了 ,root也不行,添加权限使用chattr +i 文件名,去除用-号,检查是否有这个权限,用lsattr 文件名
a:让文件或目录仅供附加用途。也就是只许添加,日志上面比较多用,也是用chattr实现
后面两个都是用chattr ,这个命令还是蛮有用的,主要是针对一些特殊的文件,有兴趣的可以man chattr一下
其实还有suid等,后面再说