-
了解Linux系统目录/文件权限结构
利用ls -al 命令可以列出详细的文件以及隐藏文件的权限,显示详细时间信息可以用ls -al --full-time
以.bash_history文件为例:-rw-------
"-":代表文件属性为文件
"d":代表文件属性为目录
"r":代表文件可读
"w":代表文件可写入,即可对文件内容新增内容、编辑内容、修改内容(但不可以删除文件)
"x":代表文件可执行
对于文件权限是每三个为一组(rwx),分别代表"用户"、"群组"、"其他组"的用户针对该文件所具有的权限设置
"root root":第一个"root"代表该文件的所有者为"root"用户,第二个"root"代表该文件所属的群组为"root"
"4096":代表该文件占用的大小,默认单位为k
"Aug 4 00:52":代表该文件z最后修改的时间,当然未修改该文件代表文件的创建时间
".bash_history":代表查询出的文件名,这个文件前的点表示该文件为隐藏文件
-
了解Linux系统用户/群组/其他组的结构
用户(ower):代表该文件属于那个用户,以".bash_history"文件为例,则该文件属于root用户
群组(group):代表该文件所属的群组,针对该群组的用户若有指定的权限可以对该文件进行读写执行操作
其他组(other):代表该文件的其他组,设置其他组的权限,可以控制属于其他组的用户针对该文件的读写执行操作
-
如何修改目录/文件的权限修改
"r":权限值为4,"w":权限值为2,"x":权限值为1
以".bash_history"为例,"r-xr-xr-x"的权限值为555
对于文件权限的修改有以下几种方式:
1 利用权限值修改
chmod 755 .bash_history 修改完成后该文件具有的权限值为:rwxr-xr-x
chmod -R 755 /test/* 表示针对该目录下所有的文件都执行权限的修改,-R表示递归
2 利用赋值方式
这种方式修改权限可以直接实现增加权限和减小权限
chmod u=wrx .bash_history
chmod go=rx .bash_histoey
3 直接添加需要的权限不需要考虑该文件本来的权限设置
chmod u+x .bash_history
chmod u-x .bash_history
-
如和修改目录/文件所有者
cat /etc/passwd | grep test 查看是否系统存在test用户组,修改用户组必须是修改为已经存在的用户组
chgrp test .bash_history 修改用户组
chown test .bash_history 修改使用者
chown test:test .bash_history 同时修改用户和用户组,也可以为chown test.test .bash_history
-
权限对目录与文件的关系
简单的理解:目录一般是放文件的地方,好比:目录是抽屉,目录下的文件名为文件袋,文件内容就是文件袋中的文件
目录的"rwx"权限:当目录有"r"权限,则可以查看目录下的文件名;当目录有“w”权限可以删除文件,修改文件名;当目录有"x"权限,则可以进入该目录
所以当一个文件在目录下,需要对该目录或者文件的一些操作,列举以下几种情况:
1 当前登陆用户为test,目录下得文件属于root 用户和root用户组,文件权限为-rwxr-xr--,目录属于test用户,test用户组,权限为rwx------
test用户对文件的访问权限为:
首先test用户可以读目录下的文件名,可修改文件名也可以删除文件,可以切换到该目录下,对于目录下的文件,由于test用户对于文件属于other,所以对于文件的操作属于文件的other组的权限,则仅仅可以读
例如下图的测试案例
注意:
1 对于"x"权限,若文件具有可执行权限,只是能说明该文件具有执行的去权限,最终是否执行成功需要了解文件内容是否能执行
2 window系统的文件是否可执行是由文件后缀决定,只有特定的文件后缀才可以执行,如:.exe .bat .msi等;但linux系统可执行文件不是由后缀名决定,而是由文件具备可执行权限决定