Linux笔记 (4)

Linux笔记 4

标签(空格分隔): Linux


使用者与群组

1.在Linux里面,每个档案都有【Users,Group,Others】三种身份的权限。
a. 档案拥有者
b. 群组(每个账号可以在多个群组中;)
c. 其他人

2.预设情况下,

  • 系统上所有账户与一般身份使用者及root的相关资讯,都记录在/etc/passwd;
  • 个人密码记录在/etc/shadow;
  • Linux所有群组名称记录在/etc/group。

档案属性

例:drwxr-xr-x 3 root root 18 Nov 28 20:10 .config
按顺序:

  • drwxr-xr-x:档案类型权限
  • 1:连结数
  • root:档案拥有者
  • root:档案所属群组
  • 18:档案容量
  • Nov 28 20:10:档案最后被修改的时间
  • .config:档案名

1.第一栏代表档案的类型与权限:

  • [d]档案类型、[rwx]档案拥有者的权限、[r-x]档案所属群组的权限、[r-x]其他人的权限
  • [r]可读、[w]可写、[x]可执行、[-]没有权限

(1)第一个字元代表这个档案是目录、档案或连结档等等:

  • 【d】:目录,如.config;
  • 【-】:档案;
  • 【l】:连结档(link file);
  • 【b】:装置档里可供存储的周边设备(可随机存取装置);
  • 【c】:装置档里的USB设备,如键鼠;

(2)接下来的字元3个为一组。rwx所在位置不会改变,有权限就显示字元,没有权限就是减号[-]。

2.第二栏表示有多少档名连结到此节点(i-node):

  • 每个档案都会将它的权限与属性记录到档案系统的i-node中,不过,如果是使用目录树结构却是使用档名来记录,因此每个档名就会连结到一个i-node。

3.第三栏表示这个档案(或目录)的拥有者账号;
4.第四栏表示这个档案的所属群组;
5.第五栏为这个档案的容量大小,预设单位是Bytes;
6.第六栏为这个档案的建档日期或者是最近修改日期:

  • 如果这个档案被修改的时间距离现在太久了,那么时间只会显示年份。
  • 如果要显示完整的年月日时,可以利用[ls -l --full-time]。

7.第七栏为这个档案的档名;

Tips:

  • 如果others的权限是r--。档案是只可以读;目录是不能进入。
  • 无论档案权限为何,预设root都是可以存取的。

改变档案属性与权限

1.改变所属群组:chgrp

  • 要被改变的名称必须要在/etc/group档案内存在才行,否则会显示错误。
  • 语法:
    [chgrp [-R] dirname/filename..]
    (连同次目录下的所有档案、目录都更新为这个群组,用在变更某一目录内所有的档案的情况。)
  • 例如:#chgrp users anaconda-ks.cfg,则anaconda-ks.cfg转到了users的群组下。

2.改变档案拥有者:chown

  • 使用者必须是已经存在系统的账号,也就是在/etc/passwd这个档案中有记录的使用者名称才能改变。
  • 既可以改变拥有者,也可以改变所属群组。
  • 语法:
    [chown [-R]账号名称 档案或目录];(要改的目标账号)
    [chown [-R]账号名称:群组名称 档案或目录];(要改的目标账号/档案本来所在的账号:要改的目标群组)
    [chown user.group file]但是如果账号含小数点,会造成系统误判。
  • 例如:
    chown ylt anaconda-ks.cfg,则原本属于root的anaconda-ks.cfg现在属于ylt这个账号。
    chown root:root anaconda-ks.cfg,将anaconda-ks.cfg的拥有者和群组改为root。
    chown .users anaconda-ks.cfg,将anaconda-ks.cfg的群组改为users。

用途:
[cp 来源档案 目的档案],复制档案,但是复制行为会复制执行者的属性与权限,所以,复制给其他人时需要改变档案拥有者。

例如,cp .cache .cache_test ,则.cache和.cache_test均属于root。改变拥有者才能复制给其他账号。

3.改变权限,chmod
法一:
(1)Linux的基本权限有9个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
(2)可以用数字来代表各个权限,各权限的分数对照如下:r:4,w:2,x:1。
(3)每种身份(owner/group/others)各自的三个权限(read/write/execute)分数需要累加。

  • 语法:
    [chmod [-R]xyz] 档案或目录;xyz值为rwx属性值相加。

  • 例如:
    chmod 777 .config,则.config这个档案的所有权限都设定为启用。
    chmod 755 .config,则users可读可写可执行,group可读可执行,others可读可执行。

法二:
(1)用u代表users,g代表group,o代表others,a代表all。

chmod [u,g,o,a] [+(加入),-(除去),=(设定)] [r,w,x] 档案或目录
  • 例如:
    要设定一个档案的权限为[-rwxr-xr-x]:chmod u=rwx,go=rx .config。
    要设定一个档案的权限为[-rwxr-xr--]:chmod u=rwx,g=rx,o=r filename。
    原本不知道档案属性,要增加.config每个人都可写入的权限:chmod a+w .config。
    要将权限去掉而不更改其他已存在权限,如要去掉所有人可执行的权限:chmod a-x .config。
  • +、-、=的不同点
    • +和-的状态下,只要是没指定的项目,则改权限不会被变动。

目录与档案的权限意义

1. 权限相对文件

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

Tips:在Windows下一个文件是否具有执行的能力是由文件后缀名决定的,例如.exe,.bat,.com等等。但在Linux下,文件能否被执行,是由x这个权限来决定的,和文件名没有关系。rwx都是针对文件的内容而言,与文件名称无关,。

2. 权限相对目录

  • r(read contents indirectory):可读取目录结构清单的权限,课查询该目录下的文件资料;

  • w(modify contents of directory):具有改动该目录结构的权限;即

    • 建立新的文件与目录;
    • 删除已经存在的文件与目录(不论该文件的权限为何);
    • 将已存在的文件或目录进行更名;
    • 移动该目录内的文件、目录位置。
  • x(access directory):目录不可拿来执行,代表的是使用者能否进入该目录成为工作目录。变换目录的指令是cd(change directory)。

|元件|内容|叠代物件|r|w|x|
|---|---|---|---|---|
|档案|详细资料data|文件资料夹|读取文件内容|修改文件内容|执行文件内容|
|目录|文件名|可分类抽屉|读取文件名|删除文件、修改文件名|进入该目录的权限(key)|

例:
(1)目录权限为drwxr--r--,则其他人有r的权限,可查询此目录下的文件名列表。因为不具有执行的权限,因此其他人不能切换到这个目录。

  • 如果在某个目录下不具有x的权限,那么就无法切换到这个目录,也无法执行该目录下的任何指令,即使具有该目录的r或w权限。
  • 要给任何人浏览时,应该至少给r和x的权限,但是w的权限不能随便给。

(2)ylt的家目录在/home/ylt,ylt对此目录有rwx的权限。若在此目录下一个文件的权限为-rwx------ 1 root root...。ylt相对该文件就是其他人,因此这个文件ylt无法读、不能编辑也不可执行。但是,这个文件在ylt的家目录下,ylt可以删除这个文件名。综上,ylt能够删除这个文件。

posted @ 2018-04-24 23:23  Y_momo  阅读(37)  评论(0)    收藏  举报