Linux为多用户多任务的操作系统,文件权限管理十分重要,每一个文件都有很多属性,合理的权限设置,可以确保数据不被未授权的人员访问,同时也能提高系统安全性。
本文将介绍Linux系统中用户、用户组及文件权限的常用知识。
身份与权限
身份:拥有者【owner】,所属群组【group】,其他人【other】
权限:读【read】、写【write】、执行【execute】
用户与用户组
拥有者【owner】
文件和文件目录的所有者就是文件拥有者。默认情况下,用户自己创建的文件对应的拥有者就是用户本身。
所属群组【group】
文件和文件目录的所有者所在的用户组。同一个用户可以加入多个用户组,同一个用户组可以拥有多个用户。
其他人【other】
不属于拥有者、所属群组的第三方人员。
举例说明
姓名:张三,职务:员工 姓名:李四、王五,职务:经理 姓名:赵六,职务:创始人
张三、李四、王五是具体的个人(用户),他们以个人(用户)身份创建的事项(文件)对应的事项所有者就是自己(拥有者)。
员工、经理、创始人为职务(用户组),张三(用户)所拥有的权限默认是对应的职务员工(用户组)所赋予的权限,李四、王五2个人(用户)所拥有的权限默认是对应的职务经理(用户组)所赋予的权限。
当对经理(用户组)的权限进行调整时,张三、李四(用户)也就自动拥有了调整后的权限。
当对张三(用户)的职务调整为经理(用户组)时,张三(用户)也就自动拥有了经理(用户组)的权限。
对于张三(用户)来说,李四、王五(用户)都是其他人。
对于李四、王五(用户)来说,张三(用户)是其他人。
但是,对于李四(用户)来说,王五(用户)不能算是其他人,算是同一职务(用户组)的人。
从以上示例中,可以得知个人的权限默认是由职务所分配的,同理在Linux中,用户的权限默认是由用户组所赋予的。
特别注意的是,赵六(用户)为创始人,他拥有全部权限,对应在Linux系统中就是超级管理员 root 。
文件信息说明
输入命令,参考以下演示内容
代码语言:javascript复制ls -la
第1栏:权限,代表文件的类型与权限,共有10个字符,如drwxr-xr-x,可以分为4个部分,下文将着重讲解权限部分。
第2栏:链接数,每个文件都会被记录到文件系统的inode中,此处表示有链接到相同的inode的数量。
第3栏:拥有者,显示出拥有者的账号
第4栏:用户组,显示出拥有者加入的用户组的名称,在Linux系统中同1个账号可以加入1个或多个用户组中。
第5栏:文件容量,默认单为Bytes
第6栏:创建或修改日期,格式为月 日 时间,如果年代太久则时间部分显示为年份。
第7栏:文件名,比较特殊的是,如果文件名以 . 开头则表示为隐藏文件,如.config
权限部分说明
文件信息中第1栏权限部分,代表文件的类型与权限,共有10个字符,如drwxr-xr-x,可以分为4个部分
第1部分,由1个字符代表文件类型,表示目录、文件或链接文件等。
【d】表示为目录,如test_dir对应的是drwxr-xr-x(第1个字符为 d ) 【-】表示为文件,test_file.txt对应的是-rw-r--r--(第1个字符为 - ) 【l】表示为链接文件,test_link对应的是lrwxrwxrwx(第1个字符为 l )
第2、3、4部分,分别由3个字符串为1组,共3组,且均为【rwx】参数的组合。
【r】表示可读(read) 【w】表示可写(write) 【x】表示可执行(execute) 3个权限的位置不变,没有对应的权限则由【-】替代。
第1组为拥有者权限,以drwxr-xr-x为例,对应的文件拥有者权限为rwx,即可读、可写、可执行。
第2组为用户组的权限,以drwxr-xr-x为例,对应的用户组权限为r-x,即可读、不可写、可执行。
第3组为其他人的权限,以drwxr-xr-x为例,对应的其他人权限为r-x,即可读、不可写、可执行。
实例分析
假设用户test1、test2隶属于用户组group1,用户test3隶属于用户组group3,有3个文件或目录,权限设置如下
代码语言:javascript复制-rw-r--r-- 1 test1 group1 ..... 1.txt
-rwxr-xr-- 1 test2 group1 ..... 2.txt
drwxr-xr-- 1 test3 group3 ..... test_dir
通过对第1栏权限部分的分析可以得出以下结论:
1、文件1.txt,拥有者为test1,用户组为group1,则表示用户test1拥有rw权限,用户组group1拥有r权限,其他人拥有r权限。
用户test1:可读、可写、不可执行(rw-) 用户组group1的成员test2:可读、不可写、不可执行(r--) 其他人test3:可读、不可写、不可执行(r--)
2、文件2.txt,拥有者为test2,用户组为group1,则表示用户test2拥有rwx权限,用户组group1拥有rx权限,其他人拥有r权限。
用户test2:可读、可写、可执行(rwx) 用户组group1的成员test1:可读、不可写、可执行(r-x) 其他人test3:可读、不可写、不可执行(r--)
3、目录test_dir,拥有者为test3,用户组为group3,则表示用户test3拥有rwx权限,用户组group3拥有rx权限,其他人拥有r权限。
用户test3:可读、可写、可执行(rwx) 用户组group3:可读、不可写、可执行(r-x) 其他人test1、test2:可读、不可写、不可执行(r--) 注意,因为没有目录的x权限,所以其他人不能进入此目录
权限对文件与目录的作用
对文件的作用
r:读取文件内容 w:修改文件内容,但不具备删除文件权限 x:文件可被系统执行
对目录的作用
r:读取目录结构列表 w:新建文件或目录、删除文件或目录(不论文件的权限是什么)、重命名文件或目录、移动该目录内的文件或目录 x:用户可以进入目录成为工作目录
用户与用户组信息存储文件
默认情况下,用户与用户组的信息存储于以下文件,不可随意删除。
账号信息存储于 /etc/passwd 文件
密码存储于 /etc/shadow 文件
用户组存储于 /etc/group 文件