Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
Linux下权限的粒度有
拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组,
如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
在装Linux下的oracle我们就会进行这种设置,因为这样更安全。我们会创建一个oracle账号,然后让他属于一个组给他丢过去
其实你会发现我们Linux下进程都能细分得厉害,而且还告诉你了。windows下你可能看到的就是Administrator或者system在用,然后进程ID和CPU使用情况
mysql 4171 0.0 5.2 1209972 98288 ? Sl Jun27 23:46 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
我在mac os下使用mkdir函数,你必须指定权限,而且不是755,而是mkdir(tmp,0755) 是我想去仔细了解这个问题的原因
更改权限我们要给定权限,我们使用chmod命令,如果你使用过Linux服务器,相信你一定用过。因为图形界面你是无法设置权限的,其实图形界面也是Linux下插件,是附加品
chmod [可选项](具体请man)
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
设置当前目录下的所有档案与子目录皆设为任何人可读写
chmod -R a+rw *
-R表示递归,和rm -r一样的
我们常用的是用数字区修改
我们规定 数字 4 、2 和 1表示读、写、执行权限,即 r=4,w=2,x=1
如果这一位要都有就加起来,其实很好理解,其实一个长度为3的二进制数
[root@BobHuang opt]# ls -l
total 12
drwxr-xr-x 5 root root 4096 Jun 27 14:52 blog
drwxr-xr-x 3 root root 4096 Jun 9 09:16 HexGame
drwxr-xr-x 5 root root 4096 Jul 22 20:19 www
你能算出这个权限是什么数字吗,就是731,非常简单
表示所有者可读可写可执行,同组用户可读可执行,其他用户可执行,这个文件是root组下root拥有的
这个比较简单,那么第一位代表什么呢,也就是这个dr
这个叫做Linxu附加权限。包括 SET位权限(suid,sgid)和粘滞位权限(sticky)。
SUID相关说明:
- 启动为进程之后,其进程的属主为原程序文件的属主;
- 只能作用在二进制程序上,不能作用在脚本上,且设置在目录上无意义 ;
- 执行suid权限的程序时,此用户将继承此程序的所有者权限;
SGID相关说明:
作用在二进制程序上时:执行sgid权限的程序时,此用户将继承此程序的所属组权限作用于目录上时:此文件夹下所有用户新建文件都自动继承此目录的用户组.
粘滞位权限:
粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。
suid 的八进制数字是4
sgid 的代表数字是 2
sticky 位代表数字是1
但是不需要就不设置了,不是很安全。但是Linux运维肯定会用到这些东西吧,因为你往往有很多用户,而且有些程序是要所有用户都要可以用的,但是有些东西又要分权限