作者:吟伶逸慧喜靖 | 来源:互联网 | 2023-05-17 12:17
Linux笔记4标签(空格分隔):Linux使用者与群组1.在Linux里面,每个档案都有【Users,Group,Others】三种身份的权限。a.档案拥有者
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)分数需要累加。
法二:
(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 |
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能够删除这个文件。