在Linux系统中,权限管理分为三个类别:文件所有者、同组用户和其他用户。
文件所有者:这是创建或拥有文件的用户。该用户可以对文件进行读取、更改和执行等操作,这些操作的权限可以由用户自己设置。
属组用户:文件所有者所在的用户组被称为属组。属组内的用户对文件拥有的权限可以由文件所有者设置。如果具有特定权限,属组用户可以对文件进行读取、更改和执行等操作。
其他用户:这包括那些既不是文件所有者,也不属于文件所在的用户组的用户。其他用户对文件的权限同样可以由文件所有者设置。具有特定权限的其他用户可以对文件进行读取、更改和执行等操作。
这三个类别的权限通常在文件的权限属性中以 rwx (读-写-执行) 格式来表示。例如,权限属性 -rwxr-xr-- 表示文件所有者具有读、写、执行权限;属组用户具有读和执行权限,但无写权限;其他用户只有读权限,无写和执行权限。
u g o 权限对象: 属主------->u 属组------->g 其他人------>o
基本权限类型: 读(read):r ---->4 写(write):w ---->2 执行(exec):x ---->1
r、w、x权限对文件和目录的意义
对文件: r ----cat w ---vi、vim x ---- bash /dir/file对目录: r ---ls w -----touch、rm x ---- cd
权限 简写 对普通文件的权限 对目录的权限 读取Read r 查看文件内容 列出目录内容(ls) 写入Write w 编辑文件内容 添加、删除、移动(重命名)目录中的文件 执行eXecute x 作为程序运行文件 进入目录(cd)
设置权限命令
chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问权限chown :chown [参数] [新的所有者].[新的所有者群组] 文件或目录...-R 或 --recursive :递归操作,将指定目录下的所有文件及子目录一并处理。 -c 或 --changes :详细显示处理过程。仅显示更改的所有者的文件。 -v 或 --verbose :详细显示处理过程。显示所有处理的文件。 例如,以下命令将文件所有者更改为username,文件名为filename: chown username filename你也可以同时更改文件的所有者和群组。只需使用冒号分隔用户名和群组名(冒号和点均可使用): chown username:groupname filename
chmod : -R或 --recursive:递归改变指定目录及其所有子目录和文件的访问权限。 -v或 --verbose:在更改权限时显示详细的处理信息。 -c或 --changes:仅在进行改动时显示详细信息。#chmod 命令的语法格式是: chmod [参数] mode 文件名 其中,mode 可以是数字或符号表示的权限。 当 mode 是数字时,它是一个 1-4 位的八进制数,表示 owner、group 和 other 三类用户的权限。每一位的取值为:4(读权限)2(写权限)1(执行权限) 例如,命令 chmod 644 filename 会给文件拥有者赋予读写权限,给文件所在群组和其他用户赋予只读权限。当 mode 是符号时,它由三部分构成: 用户类别:u(拥有者)、g(群组)、o(其他用户)或 a(所有用户) 操作符:+(添加权限)、-(删除权限)或 =(设置权限) 权限:r(读)、w(写)或 x(执行) 例如,命令 chmod u+x filename #会给文件拥有者添加执行权限。chmod a=- filename #所有人都没有权限chmod ug=rw,o=r filename #属主属组等于读写,其他人只读chmod a=rwx file1.txt #所有人等于读写执行