第6章 Linux的档案权限与目录管理

发布时间 2023-03-29 11:55:52作者: 夏蝉沐雪

一、使用者与群组

1、档案拥有者

  由于Linux是个多人多任务的系统,常常可能有多人同时使用这部主机来进行工作,为了考虑每个人的隐私以及每个人喜好的工作环境而建立档案拥有者。

2、群组概念

  群组用于团队管理,同一团队共享同一份资源并共同管理资源。

3、Linux用户身份与群组记录的档案

  在Linux系统中,默认情况下所有系统上的账户与root的相关信息都记录在/etc/passwd这个档案内。个人密码记录在/etc/shadow这个档案内。所有组名记录在/etc/group内。

二、档案权限概念

1、Linux文件属性

  以root身份登录,输入 ls -al 会看见该列表下所有的文件,文件列表含义如下

  • 第一栏代表这个档案的类型与权限;
  • 第一个字符代表这个的档案的属性,如下:
    • 当为[ d ]则是目录;
    • 当为[ - ]则为档案;
    • 当为[ l ]则为连接档(link file);
    • 当为[ b ]则为装置文件里面的可供存储的接口设备;
    • 当为[ c ]则为装置文件里面的串行端口设备,例如键盘、鼠标等;
  • 接下来的字符三个一组且都是[ rwx ],分别代表可读、可写、可执行,如果没有相应的权限则为[ - ];
    • 第一组为档案拥有者的权限;
    • 第二组为同群组的权限;
    • 第三组为其他非本群组的权限;
  • 第二栏表示有多少档名连接到此节点;
  • 第三栏表示这个档案的拥有者;
  • 第四栏表示这个档案的所属群组;
  • 第五栏表示这个档案的容量大小;
  • 第六栏表示这个档案的创建时间或最近修改时间,显示完整的时间用[ls -l --full-time];
  • 第七栏表示这个档案名称;

2、改变文件属性和权限

  • 改变所属群组:‘chgrp 组名 档案名’,这是change group的简写,要改变的组名必须在/etc/group中存在;
  • 改变档案拥有者:chown,change owner的简写,要改变的用户必须在/etc/passwd中存在。‘chown [-R] 账号名称 档案或目录’,其中-R用于连接目录下所有次目录或档案同时改变权限。‘chown [-R] 账号名称:组名 档案或目录’,用于同时改变组名;
  • 复制文件:‘cp 来源档案 目标文件’,cp会同时复制使用者的权限,所有复制后必须更改权限;
  • 改变权限:chmod,权限设定的方案有两种,分别是数字、符号。
    • 数字类型改变权限:Linux档案基本权限有九个,分别是 owner/group/others 三种身份各有自己的read/write/execute 权限,档案的权限字符[rwxrwxrwx],这九个权限是三个三个一组的,数字对照为r:4,w:2,x:1,每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---] 分数则是:owner = rwx = 4+2+1 = 7group = rwx = 4+2+1 = 7others= --- = 0+0+0 = 0 ,所以设定权限变更时指令为:'chmod [-R] xyz 档案或目录’;
    • 符号类型改变权限:九个权限分别是(1)user(2)group (3)others 三种身份由 u, g, o 来代表三种身份的权限。此外,a 则代表 all 亦即全部的身份!那举读写的权限就可以写成 r, w, x 也就是可以使用底下的方式来看:

      eg:chmod u=rwx,go=rx .bashrc