权限管理
read,write,execute
r,w,x 读写执行
文件
r:对于文件来将可以使用内容查看类的命令来显示其相关内容
w: 可以使用编辑器修改其内容
x: 可以将其发起一个进程
目录
r 对于目录而言读可以使用ls查看目录内部的文件信息,包括子目录
w 可以创建删除文件
x 可以使用ls -l命令查看目录内部内容的信息,并且可以使用cd命令切换到此目录
如果用户的不拥有某位权限,则使用-占位符,表示不存在
r-x 仅有则是可读可执行
r-- 仅有只读权限
rw- 仅有可读可写
[root@docker-node1 ~]# ls -l
total 8
-rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh
-rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh
属主为读写执行,属组写和执行,其他用户则为执行权限
这种变化可以用数字来表示,如果有则用1表示,如果没有则为0,没有用-占位:
000:--- 0 没有权限
001:--x 1 执行权限
010: -w- 2 可写全系
011: -wx 3 可写执行权限
100: r-- 4 只读权限
101: r-x 5 可读可执行
110: rw- 6 可读可写权限
111: rwx 7 可读可写可执行
可读可写可执行则为:rwxrwxrwx 777
可读可写权限则为:rw-rw-rw- 666
只读则为:r--r--r-- 444
读执行则为:r-xr-xr-x 555
依次类推
修改文件的属主属组只有管理员才有权限:chow,chgrp
改文件权限:chmod
操作三类用户的权限,使用八进制形式,操作指定类别用户的权限,使用u,g,o,a来授权也可以,并且可以基于=或+/-来进行,更可以参照其他文件权限为当前文件授权
[root@docker-node1 ~]# ll
-rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh
[root@docker-node1 ~]# chmod 754 in.sh
[root@docker-node1 ~]# ll in.sh
-rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh
如果给的权限八进制不够三位,则只会给最右权限位的权限,这样的方式其实是不理想的。如下:
[root@docker-node1 ~]# chmod 6 test/
[root@docker-node1 ~]# ll -ld test/
d------rw-. 2 shutdown root 6 Jul 17 08:05 test/
[root@docker-node1 ~]#
目录:当我们修改一个目录的权限是并不会修改其目录内的权限,如果修改其内部权限则-R,但是对符号链接文件无效
操作指定类型用户权限:
u: 属主
g:属组
o: 其他
a:所有
=:操作指定类别用户的权限
+/-:操作指定类别用户的单个权限
操作u属主
[root@docker-node1 ~]# chmod u=rwx test/
[root@docker-node1 ~]# ll -ld test/
drwx---rw-. 2 shutdown root 6 Jul 17 08:05 test/
[root@docker-node1 ~]#
当然,也可以一起使用:
[root@docker-node1 ~]# chmod ug=rwx test/
[root@docker-node1 ~]# ll -ld test/
drwxrwxrw-. 2 shutdown root 6 Jul 17 08:05 test/
[root@docker-node1 ~]#
如果属主属组权限不一致,也可分开写
[root@docker-node1 ~]# chmod u=rwx,g=r,o= test/ o= 如果没有权限,则不写即可,也可以-R递归修改
[root@docker-node1 ~]# ll -ld test/
drwxr-----. 2 shutdown root 6 Jul 17 08:05 test/
[root@docker-node1 ~]#
+/-号用法:u-x,g+r,o-x,+x
修改单个权限。如下+rw
u=,ug=,o=,g=
[root@docker-node1 ~]# chmod -R g+rw,o= docker/
[root@docker-node1 ~]# ll -ld docker/
drwxrw----. 2 root root 21 Jul 17 08:12 docker/
-a所有
[root@docker-node1 ~]#
如果要对属主属组添加x权限,则可如下(请注意,一旦-a则所有都会变成-a所指的权限,原本的将会被覆盖):
[root@docker-node1 ~]# chmod -R a=x docker/
[root@docker-node1 ~]# ll -ld docker/
d--x--x--x. 2 root root 21 Jul 17 08:12 docker/
[root@docker-node1 ~]#
+x,通常+x会变成可执行文件,颜色会绿色
[root@docker-node1 ~]# chmod +x anaconda-ks.cfg
[root@docker-node1 ~]# ll -ld anaconda-ks.cfg
-rwx--x--x. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg
[root@docker-node1 ~]#
参照权限,引用性修改
[root@docker-node1 ~]# ll -l
total 8
-rwx--x--x. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg
d--x--x--x. 2 root root 21 Jul 17 08:12 docker
-rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh
-r-xr-xr-x. 1 root root 0 Jul 12 14:23 linuxea
drwxr-----. 2 shutdown root 6 Jul 17 08:05 test
[root@docker-node1 ~]# chmod --reference=/root/in.sh /root/anaconda-ks.cfg
[root@docker-node1 ~]# ll -ld in.sh anaconda-ks.cfg
-rwxr-xr--. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg
-rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh
[root@docker-node1 ~]#