Linux知识点整理(二)—— Linux的文件权限与目录配置

Linux最优秀的地方之一就是在于它的多人多任务环境。而为了让各个用户具有保密的文件数据,因此文件权限管理就变得更重要了。

一、用户与用户组

Linux每个文件都有相当多的属性与权限,其中最重要的概念就是文件的拥有者了。

1.文件拥有者

Linux有这么多用户,还分什么用户组,有什么用呢?这个“用户与用户组”的功能是相当健全而且好用的一个安全措施。由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这台主机来进行工作的情况发生,为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个文件拥有者的角色相同重要。

2. 用户组概念

用户组最有用的功能之一,就是当你在团队进行协同工作的时候。一个用户组有一个管理员,里面有多个成员,每个成员有自己的私人空间,也有每个成员共享的空间。每个账号都可以有多个用户组的支持。

3.其他人的概念

以一个用户组A为例,不在用户组A中的成员就称为其他人。

在这里插入图片描述
注:
(1)root可以到达它想去的任何地方。
(2)只要让Linux某个账号家人某个用户组,该账号就能使用该用户组能够读写的资源,每个账号可以加入的用户组个数基本没有限制。

{ / e t c / p a s s w d r o o t / e t c / s h a d o w / e c t / g r o u p \left\{ \begin{aligned} /etc/passwd && 记录所有的系统上的账号与一般身份用户,还有哪个root的相关信息\\ /etc/shadow && 记录个人的密码\\ /ect/group && 记录所有的组名 \end{aligned} \right.

二、Linux文件权限概念

1.Linux文件属性

首先在Linux命令行中执行ls -al 查看一下文件信息和相关属性:
在这里插入图片描述

首先了解每个字段的含义:
在这里插入图片描述
在这里插入图片描述
特别注意:不论是那一组权限,基本上,都是针对某些账号来设计权限的。

目录与文件的权限意义并不相同, 具体来说:
权限对文件的重要性:

  • r(read):可读取此文件的实际内容,如读取文本文件的文字内容等;
  • w(write):可以编辑、新增或是修改该文件的内容(但是不能删除文件);
  • x(execute):该文件具有可以被系统执行的权限。

权限对目录的重要性:

  • r(read contents in directory):表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据,所以你就可以使用ls这个命令将该目录的内容列表显式出来。
  • w(modify contents in directory):表示你具有改动这个目录结构列表的权限,包括:新建新的文件与目录,删除已存在的文件与目录(不论该文件的权限是什么),将已存在的文件或目录进行更名,移动该目录内的文件、目录位置
  • x(access directiry):代表的是用户能否进入该目录成为工作目录的用途。
    要开放目录给任何人浏览,应该至少也要给予r及x的权限,w权限不可随便给。

例题
假设有个帐号名称为dmtsai,他的家目录在/home/dmtsai/,dmtsai对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data
请问dmtsai对此文件的权限为何?可否删除此文件?

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
由上所示,由于dmtsai对此文件来说是『others』的身份,因此这个文件他无法读、无法编辑也无法运行, 也就是说,他无法变动这个文件的内容就是了。

但是由于这个文件在他的家目录下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个『文件名』来说,他是能够『删除』的! 结论就是,dmtsai这个用户能够删除the_root.data这个文件!
要分区目录和文件的区别

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Linux文件权限的重要性:—— 数据安全性

  • 系统保护的功能
  • 团队开发软件或数据共享的功能
  • 未将权限设置的妥当的危害

2.如何修改文件属性与权限

(1)chgrp:修改文件所属用户组
被修改的组名必须在 /etc/group文件中才行

  • 语法:
chgrp [-R] dirname/filename...
  • 实例:
chgrp user initial-setup-kg.cfg

(2)chown:修改文件拥有者
用户必须是已经存在系统中的账号,也就是子啊/etc/passwd这个文件中有记录的用户名称才能修改

  • 语法:
chown [-R] 账号名 文件或目录
chown [-R] 账号名:用户组名 文件或目录
chown.用户组名 文件或目录
  • 实例:
chown bin initial-setup-ks.cfg
chown root:root initial-setup-ks.cfg
chown.sshd initial-setup-ks.cfg

什么时候用chown或chgrp呢?最常见的就是在复制文件给其它人的时候。(cp会复制执行者的属性和权限,所有需要用上面的命令修改)

(3)chmod:修改文件的权限,SUID,SGID,SBIT等特性

  • 数字类型修改
    Linux文件的基本权限就有9个,这9个权限三个三个一组,使用数字代表各个权限
    ++++++++++++++++
    r:4
    w:2
    x:1
    ++++++++++++++++
    实例:如果修改权限为[-rwxrwx—],则
    ++++++++++++++++
    owner = rwx = 4 + 2 + 1 = 7
    group = rwx = 4 + 2 + 1 = 7
    others = — = 0
    ++++++++++++++++
    修改权限为:
  • 语法:
chmod [-R] xyz 文件或目录
  • 具体为:
chmod 770 ./bashrc

在实际的系统运行中,最常发生的一个问题就是,常常以vim编辑一个shell脚本文件,它的权限为[-rw-rw-r–],也就是664,如果要将该文件变为可执行文件,并不要其他人修改,则需要 -rwxr-xr-x,就要执行 【chmod 755 rest.sh】

  • 符号类型修改
    在这里插入图片描述
    实例:
    1)设置一个文件的权限成为『-rwxr-xr-x』:
chmod  u=rwx,go=rx  .bashrc

2)果我不知道原先的文件属性,而我只想要增加.bashrc这个文件的每个人均可写入的权限

chmod  a+w  .bashrc

3)要拿掉全部人的可运行权限

chmod  a-x  .bashrc

参考资料:
【1】鸟哥的Linux私房菜——第五章 、Linux 的文件权限与目录配置

猜你喜欢

转载自blog.csdn.net/weixin_43763859/article/details/106755671