美文网首页Linux
Linux —— 用户管理、文件权限管理

Linux —— 用户管理、文件权限管理

作者: lframe | 来源:发表于2020-06-27 19:20 被阅读0次

周末在家学习 MySQL,自己通过 Mac 的 Terminal 的查看 MySQL 各个存储引擎底层数据文件的存储格式,发现当前登陆的用户没有查看 data 文件的权限,因此查了下资料,复制了网上命令,结果稀里糊涂的把 data 文件的拥有者改为了当前登陆用户,后来由于需要修改本地 MySQL 某个表的数据,被告知没权限,又是折腾了半天,导致浪费了很多学习时间,因此索性停下来,把 Linux 的权限设置重新梳理一下

在学习文件权限设置之前,我们需要先了解下 用户用户组的概念;在 Linux 系统中,是有用户、用户组的概念的,我们操作一个系统的时候必须要以 用户 的身份来操作一个系统,日常工作、生活中,无论是使用苹果、window 系统都需要以用户的身份进入系统,而 用户组就是一些用户的集合,因此我们可以通过管理用户组进而管理用户
我们之前使用的QQ,其中的好友列表就允许我们对好友进行分组,两者是一个道理

用户及用户组

系统的密码文件存储在 /etc/passwd文件下,用户组存储在/etc/group文件下

查看所有用户

cut -d':' -f 1 /etc/passwd

结果

root
daemon
_uucp
_taskgated
_networkd
_installassistant
···

查看所有用户组

cut -d':' -f 1 /etc/group

结果

nobody
nogroup
wheel
daemon
kmem
sys
tty
operator
mail
bin
procview
····

添加用户

sudo adduser <用户的命名>

添加组

sudo groupadd <组的命名>

将用户加入到组中

sudo adduser <用户> <待加入的组>

文件权限介绍

接下来我们看一下文件权限相关的内容,既然是学习 MySQL 遇到的这个问题,那我这里就以 MySQL 的目录学习文件权限相关的管理

1. 首先使用 ls -l查看我们 MySQL的目录

total 872
-rw-r--r--   1 root    wheel   335809  4 13  2019 LICENSE
-rw-r--r--   1 root    wheel   101807  4 13  2019 LICENSE.router
-rw-r--r--   1 root    wheel      687  4 13  2019 README
-rw-r--r--   1 root    wheel      700  4 13  2019 README.router
drwxr-xr-x  35 root    wheel     1120  4 13  2019 bin
drwxr-xr-x  74 _mysql  _mysql    2368  6 26 09:39 data
drwxr-xr-x   6 root    wheel      192  4 13  2019 docs
drwxr-xr-x  15 root    wheel      480  4 13  2019 include
drwxr-x---   3 _mysql  _mysql      96  6 24 18:03 keyring
drwxr-xr-x  21 root    wheel      672  7  2  2019 lib
drwxr-xr-x   4 root    wheel      128  4 13  2019 man
drwxrwxr-x   2 root    wheel       64  4 13  2019 run
drwxr-xr-x  33 root    wheel     1056  4 13  2019 share
drwxr-xr-x   5 root    wheel      160  4 13  2019 support-files
drwxr-xr-x   3 root    wheel       96  4 13  2019 var

上图中每一行都有7列
1. 第一列. 文件的权限信息
2. 第二列. 文件的连接数
3. 第三列. 文件所属用户
4. 第四列. 文件所属用户组
5. 第五列. 文件大小(字节)
6. 第六列. 文件的最后修改日期
7. 第七列. 文件名

接下来详细介绍下我们的主题【文件权限】,即第一列所代表的含义.

第一种权限【字母表示】

这里我们摘出 data目录来看

drwxr-xr-x  74 _mysql  _mysql    2368  6 26 09:39 data

1)第一个字符代表了文件类型,这里的 data 是一个目录;通常文件类型有三种,-代表文件,d代表文件夹,I 代表链接【链接的含义大家自行搜索】

2)接下来三个字符串是文件所有者对该文件的权限,而且这三个字符的顺序是不变的,依次是r、w、xr代表读权限,w代表写权限,x代表可执行权限【如果是文件夹,只有有x权限,才可以进入当前文件夹下】,如果没有相应的权限,相应的位置会使用-占位

3)接下来三个字符串是文件所属用户组对该文件的权限,相应的含义同上

4)接下来三个字符串是其他用户对该文件的权限【这里的其他用户是指非文件所有者、非文件所属组的其他用户】,相应的含义同上

第二种权限【数字表示】

字母 r、w、x 分别用一个数字代替,r是4,w是2,x是1,【本质应该分别是二进制的前三位,r是第一位,w是第二位,x是第三位,所以转化位十进制的时候,会变为 4,2,1】,4,2,1 这三个值加起来就代表了当前用户拥有的权限了,例如 777 就代表了 rwxrwxrwx,即相应的文件拥有者、文件所属用户组、其他拥有了对当前文件的读、写、执行权限

权限管理

授权权限

sudo chmod <权限> <文件名>

如果我们熟悉数字的表示方法,则数字是最简单的方式

sudo chmod -R 777 data

当然,为了更直观,我们可以使用基于字母的形式

sudo chmod -R u+rwx  data

其中 -R 代表了对文件夹进行递归授权【对当前文件夹及文件夹所有子文件都进行了相应权限的授权】,其后的u代表了当前文件拥有者,其他还有g、o、a,分别代表用户组权限、其他用户权限、所有用户权限,后面的+代表权限授予,还有-代表了移除权限,最后是文件名

修改文件的所属用户

假设我们当前用户是test,目标文件是 data,修改data文件的当前所属用户为test

sudo chown test data

修改文件的所属用户组

假设我们当前用户是testgroup,目标文件是 data,修改data文件的当前所属用户为test

sudo chgrp testgroup data
到目前为止我们就可以更安全的去修改我们的文件的权限了

相关文章

网友评论

    本文标题:Linux —— 用户管理、文件权限管理

    本文链接:https://www.haomeiwen.com/subject/tarvfktx.html