[26/3/6]文件权限
参考资料:《鸟哥的 Linux 私房菜 基础篇》第 5、6 章
用户组
首先需要理解三个概念:用户、用户组、其他人。
Linux 作为多人多任务操作系统,为了管理多人,以及多人协作,所以使用了用户组这一概念。
比如说,user1、user2、user3 均属于用户组 usergroup
那么,不属于这一用户组的其他用户都属于其他人。
此外,一个用户可以同时在多个用户组下。
u:user,用户/拥有者g:group,用户组o:other,其他人
文件权限
首先权限分为:
r :read,读取权限
w :write,写入权限
x :execute,执行权限
实例说明:
# 先运行 ls -al
-rw-r--r-- 1 muxinyue muxinyue 84 Mar 4 13:37 .gitignore
drwxr-xr-x 2 muxinyue muxinyue 4096 Mar 2 15:37 .vscode
可以看到依次是:
权限、链接数、拥有者、所在用户组、文件大小、最后修改时间、文件/目录名
重点看权限:注意有 10 个字符!
第一个字符:表示文件类型,比如说 .gitignore 是一个文件,所以开头是 -
而 .vscode 是一个文件夹,也就是目录,所以开头是 d
类似的还有 l 表示链接文件(link file),b 表示可供存储的周边设备,c 表示串行端口设备。
接下来按三个一组表示权限,分别是是拥有者权限、用户组权限、其他人权限。
此外因为是 3 个布尔值,所以可以用二进制数来表示。比如说 5 = 101 也就是 r-x 即可读不可写可执行权限。
补充:对于一个目录/文件夹,执行权限就是进入到文件夹内
修改权限
权限修改相关的命令:
chgrp:(change group) 修改文件所属用户组。chown:(change owner) 修改文件的拥有者。chmod:修改文件权限。
例如,想把文件权限改为【-rwxr-xr--】就需要 [111][101][100]=754
那么运行 chmod 754 filename
还可以运行 chmod u=rwx,g=rx,o=r filename # 用=指定权限
此外还有用 + 新增权限,用 - 取消权限
例如 chmod a+w filename # 这里 a 表示所有用户,所有用户都授予写入权限
目录管理
cd:切换目录pwd:显示当前路径mkdir:新建文件夹rmdir:删除空文件夹rm -r <dir_name>:删除整个文件夹ls [-a -l]:查看路径下的文件和目录cp:copy,复制(不同用户使用此命令时会有权限上的差别)rm:remove,删除mv:move,移动