Linux 的档案权限与目录配置--1
角色的概念
- root ———— 超级管理员,相当于天神的存在,普通用户用
su
命令输入密码可切换至 root 权限去执行特定任务。 - 普通用户 ———— 我们经常使用的账户
- 其他人 ———— 在 linux 中,除了我们自己的账户和root外,其他的都是其他人喽
1、 拥有者 ———— 就是拥有这个档案的人喽
2、 群组 ———— 在linux中一个用户至少有一个组,可以同时加入多个组。
3、 其他人 ———— 上面解释了,这里写呢,就是为了明白权限的概念喽
Tips:
- 所有的用户信息都在 /etc/passwd 文件里
- 所有的用户密码都在 /etc/shadow 文件里
- 所有的用户组名都在 /etc/group 文件里
ls -al 所显示的信息如下
档案所属组 档案最后修改日期
-rw-r--r-- 1 root root 1864 May 4 18:01 install-setup-cfg
档案类型权限 链接数 档案所有者 档案大小 档案名称
1、档案权限
合计 10 个字符
- rwx rwx rwx
- 第一个是代表档案类型
- d ———— 目录
- - ———— 档案
- l ———— 链接档
- b ———— 表示为装置档案里面的可供存储的周边设备(可随机存取装置)
- c ———— 表示装置档里面的序列埠设备,如:键盘、鼠标等一次性读取装置
- 后面三个一组
- 每一组分别代表 : 拥有者权限、所属组权限、其他人权限
- 每一组中的 rwx 分别代表: r=read 、 w=write 、x=execute(读写执行)
2、链接数:即表示有多少档案连接到此结点(i-node)
3、这个档案或目录的拥有者
4、这个档案所属于的群组
5、这个档案的大小,预设值显示单位为 bytes,
-如果想要显示可读性比较高的可以 `ls -lh` 这里的 h 是 human
6、文档被修改的时间
- 如果文档被修改的时间久了可能显示不全,可以使用 `ls -l --full-time`
7、档案的名称
- 如果档案的名称前面多一个点`.`,则代表这是一个隐藏文档,用 `ls -a` 可以查看隐藏文档
改变档案属性与权限
chgrp 改变所属组
被改变的群组名称必须要在 /etc/group
档案内才可以。
chgrp [-R] dirname/filename ...
-R 选项便是递归
例如:chgrp users 1.txt
这里的 users 是组名
1.txt 是文件名
chown 改变所有者
被改变的搜有着必须是在 /etc/passwd
档案内有的才可以
chown [-R] 账号名称 档案或目录名称
chown [-R] 账号名称:群组名称 档案名称或目录名称
这里的 -R 表示递归 (recursive)
用 `:` 可以同时改变所有者和所属组
例如:
chown root:root 1.txt
Tips:事实上,chown 也可以使用【chown user.group file】来同时改变所有者和所属组,不过因为有人在设置账号的时候喜欢在账号中加入小数点,所以,为了避免系统误判,建议使用冒号 :
什么时候用到改变所属组和所有者的呢?例如:
当我们用 cp 复制文档的时候:
cp 来源档案 目的档案
因为cp命令会复制操作者的属性与权限,所以如果是你把自己的 rc 文档复制给别人,那别人可能无法使用,所以需要改变所有者和所属组
chmod 改变权限
上面讲到了,linux 档案的基本权限有 9 个,分别是 owner/group/others 三种身份各自的 read/write/execute 权限【-rwxrwxrwx】第一个 - 代表档案,后面每三个一组,对应三种身份的 rwx
数字改变权限
我们可以使用数字代表各个权限,对照表如下:
r 4
w 2
x 1
owner/group/others = rwx = 4+2+1 = 7
[-rwxrwxrwx] = 777
使用与案例如下:
chmod [-R] xyz 档案或目录
xyz 代表三个数组
-R 表示递归
例如:
chmod 777 1.txt
符号改变权限
u
chmod g + r 档案或目录
o - w
a = x
u=owner
/g=group
/o=others
/a=all
+
(加入); -
(减去); =
(设定)
元件 | 内容 | 迭代物件 | r | w | x |
---|---|---|---|---|---|
档案 | 详细资料data | 文件资料夹 | 读到文档内容 | 修改文件内容 | 执行文件内容 |
目录 | 档名 | 可分类抽屉 | 读到档名 | 修改档名 | 进入该目录的权限(key) |
如果你在某目录下不具有 x 的权限,那么你就无法切换到该目录,也无法执行该目录下的任何指令,即使你有该目录的 r 或 w 的权限也不行。
要开放目录给别人浏览的时候,应该至少也要给予 r 及 x 的权限,但是 w 的权限不可随便给
假设有:
- /dir1/file1
- /dir2
操作动作 | /dir1 | /dir1/file1 | /dir2 | 重点 |
---|---|---|---|---|
读取 file1 内容 | x | r | - | 要能够进入 /dir1 才能读到里面的文件资料 |
修改 file1 内容 | x | rw | - | 能够进入 /dir1 且修改 file1 才行 |
执行 file1 内容 | x | rx | - | 能够进入 /dir1 且 file1 能够运行才行 |
删除 file1 档案 | wx | - | - | 能够进入 /dir1 具有目录修改的权限即可 |
将 file1 复制到 /dir2 | x | r | wx | 要能够读 file1 且能够修改 /dir2 内的资料 |
- Tips:很多时候 /dir1 都不必有 r 权限,为啥?
- dir 相当于一个抽屉,r 代表抽屉里面的灯光,你都能够看到抽屉里的所有东西了,有没有灯光也就无所谓了,你抹黑也可以从抽屉拿东西不是?
- r 是非必备的,但是如果没有 r 的话,在使用 [tab] 时,无法自动帮你补全名字。
hare
2020.2.23