Linux的文件属性,简单的说,有这么几种
下面是一个文件
-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz
对应关系为
-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]
[ 权限 ][连结][拥有者][群组][文件容量][ 修改日期 ][ 文件名 ]
上述权限一栏可以3个一组,分为3组
-, rw-, r--, r--
注意到,第一个字符单独分组,这个表示文件类型。
剩下的三组主要由[rwx]组成,r-read, w-write, x-execute, [-]表示占位符,即没权限。
权限除了字母表示外还可以用数字,
r=4, w=2, x=1, -=0
关于为什么是4210,见参考[权限详解]。
所以,上述文件的权限也可以表示为644
命令
chmod [可选项] <mode> <file...>
可选项
可选项:
-c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
-f, --silent, --quiet suppress most error messages (若该档案权限无法被更改也不要显示错误讯息)
-v, --verbose output a diagnostic for every file processed(显示权限变更的详细资料)
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
--help 显示此帮助信息
--version 显示版本信息
mode
权限设定字串,详细格式如下 :
[ugoa...][[+-=][rwxX]...][,...],
其中
[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
示例,修改所属者添加可执行权限
[root@localhost es]# ls -la
-rw-r--r--. 1 es es 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz
[root@localhost es]# chmod u+x kibana-5.6.5-linux-x86_64.tar.gz
[root@localhost es]# ls -la
-rwxr--r--. 1 es es 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz
另一个比较常用的修改方式是数字法。
rwx = 4+2+1 = 7 可读可写可执行 r-x = 4 + 1 = 5 可读可执行
最常用的是755,即所属者拥有所有权限,所属组和其他人没有写权限。
chmod 755 kibana-5.6.5-linux-x86_64.tar.gz
chown :改变文件拥有者
基本用法 chown [-R] 账号名称 文件或目录 chown [-R] 账号名称:用户组名称 文件或目录
示例
[root@localhost jdata]# ls -la
drwxr-xr-x. 2 root root 4096 Jun 14 00:05 es
[root@localhost jdata]# chown -R es:es es
[root@localhost jdata]# ls -la
drwxr-xr-x. 2 es es 4096 Jun 14 00:05 es
也可以单独修改文件所属组
基本用法
chgrp [-R] 用户组名称 dirname/filename ...