zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux下的权限管理

Linux权限 管理
2023-09-14 09:11:37 时间

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相关说明:

    1. 启动为进程之后,其进程的属主为原程序文件的属主;
    2. 只能作用在二进制程序上,不能作用在脚本上,且设置在目录上无意义 ;
    3. 执行suid权限的程序时,此用户将继承此程序的所有者权限;  

SGID相关说明:

作用在二进制程序上时:执行sgid权限的程序时,此用户将继承此程序的所属组权限作用于目录上时:此文件夹下所有用户新建文件都自动继承此目录的用户组

 

粘滞位权限:

粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。

 

suid 的八进制数字是4

sgid 的代表数字是 2

sticky 位代表数字是1

但是不需要就不设置了,不是很安全。但是Linux运维肯定会用到这些东西吧,因为你往往有很多用户,而且有些程序是要所有用户都要可以用的,但是有些东西又要分权限