linux的文件权限和目录配置
一、用户与用户组
1.1 概念
1、所有者 (User)
2、用户组(Group)
每个账号都可以有个多个用户组的支持
3、其他人(Others)
1.2 用户身份与用户组所记录的文件
1、用户身份(/etc/passwd)
[root@VM_0_4_centos ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
2、用户密码(/etc/shadow)
[root@VM_0_4_centos ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
3、用户组(/etc/group)
[root@VM_0_4_centos ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:centos
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
二、文件权限
2.1、文件属性
[root@VM_0_4_centos chenwei]# ll -al var.sh
d rwxr-xr-x 3 root root 4096 Jun 20 21:39 program
- rwxr-xr-x 1 root root 138 Jun 16 13:37 var.sh
[1] [ 2 ] [3] [4] [5] [6] [7] [8]
1、文件类型
- d
: 目录
- -
:文件
- l
: 连接文件
- b
: 设备文件里面的可供存储的接口设备
- c
: 设备文件里面的串行端口设备,如键盘,鼠标。
2、文件权限(permission)
- r
: 可读(read)
- w
: 可写(write)
- x
: 可执行(execute)
- -
: 没有权限
3组权限
- 文件所有者
- 用户组的权限
- 其他人
3、有多少文件名连接到到此节点(i-node)
每个文件名链接一个i-node, 这个属性记录的就是有多少不同的文件名连接了相同的一个i-node号码
4、所有者账号
5、所属用户帐户
6、文件大小,默认单位是B
7、文件的创建时间或者是最近的修改日期
默认显示(月/日 )以及时间,如果修改的太久的话,时间将会显示年。
[root@VM_0_4_centos chenwei]# ls -al --full-time
total 108
drwx------ 4 chenwei chenwei 4096 2018-06-20 21:39:42.833955055 +0800 .
8、文件名
如果文件之前有一个.
表示的是隐藏文件
2.2、修改文件属性和权限
chgrp
: 修改用户组 change groupchown
: 修改所有者 change ownerchmod
: 修改权限2.2.1、 改变用户组(chgrp)
2.2.1.1、语法
chgrp [-R] 组名 dirname/filename ...
2.2.1.2、选项
-R:递归(recursive),持续更改,连同子目录下的所有文件,目录
2.2.1.3、案例
-rwxr--r-- 1 root root 99 Jun 17 14:37 case.sh
[root@VM_0_4_centos chenwei]# chgrp chenwei case.sh
-rwxr--r-- 1 root chenwei 99 Jun 17 14:37 case.sh
2.2.1.4、 注意
用户组 必须存在, 也就是用户组必须存在/etc/group中
[root@VM_0_4_centos chenwei]# chgrp xxx case.sh
chgrp: invalid group: ‘xxx’
2.2.2、改变文件所有者(chown)
2.2.2.1、语法
chown [-R] 用户名 dirname/filename
chown [-R] 用户名:用户组 dirname/filename
chown [-R] 用户名.用户组 dirname/filename
chown [-R] .用户组 dirname/filename
2.2.2.2、选项
-R:递归(recursive),持续更改,连同子目录下的所有文件,目录
2.2.2.3、 案例
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxr--r-- 1 root root 639 Jun 17 16:05 db.sh
[root@VM_0_4_centos chenwei]# chown chenwei db.sh
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxr--r-- 1 chenwei root 639 Jun 17 16:05 db.sh
## 更改所在用户和用户组
[root@VM_0_4_centos chenwei]# chown root:chenwei db.sh
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxr--r-- 1 root chenwei 639 Jun 17 16:05 db.sh
2.2.2.4、注意
- 用户 必须存在,也就是用户必须存在/etc/passwd/中
- .
可以等同:
但是用户名中如果有.
就无效了,推荐使用:
- .
可以被用来直接刚刚用户组
2.2.3、改变文件权限(chmod)
2.2.3.1、数字类型改变文件权限
r
: 4
w
: 2
x
: 1
2.2.3.1.1、 语法
chmod [-R] xyz dirname/filename
2.2.3.1.2、 案例
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxr--r-- 1 root chenwei 639 Jun 17 16:05 db.sh
[root@VM_0_4_centos chenwei]# chmod 777 db.sh
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxrwxrwx 1 root chenwei 639 Jun 17 16:05 db.sh
2.2.3.2、字符类型改变文件权限
2.2.3.2.1、说明
u
:
g
:
o
:
a
:
+
: 加权限
-
: 减权限
=
: 设置权限
2.2.3.2.2、案例
[root@VM_0_4_centos chenwei]# chmod u=rwx,go=rx db.sh
[root@VM_0_4_centos chenwei]# chmod u=rwx, go=rx db.sh
chmod: invalid mode: ‘u=rwx,’
Try 'chmod --help' for more information.
-rwxr-xr-x 1 root chenwei 639 Jun 17 16:05 db.sh
[root@VM_0_4_centos chenwei]# chmod g+w db.sh
[root@VM_0_4_centos chenwei]# ll db.sh
-rwxrwxr-x 1 root chenwei 639 Jun 17 16:05 db.sh
2.2.3.2.3、注意
设置u g o 是不能有空格
2.3、目录和文件的权限意义
2.3.1、权限对目录的意义(目录主要的内容记录文件名的列表,文件名与目录有强烈的关系)
1. r
: 可读取目录结构列表的权限
2. w
: 可更改该目录结构列表的
- 新建新的文件和目录
- 删除已存在的文件和目录(不论文件权限如何)
- 将已存在的文件重命名
- 转移该目录内的文件、目录位置
3. x
: 代表用户是否可以进入该目录。
2.3.2、权限对文件的意义(文件记录的是文件的实际内容)
r
: 可读取此文件的实际内容w
: 可以编辑、新增或者是修改该文件的内容(不包括删除该文件,修改该文件名称)x
: 可被系统执行
2.4、Linux 文件种类与扩展名
2.4.1、文件种类
- 普通文件 (regular file)(-)
(1) 纯文本文件(ASCII)
(2) 二进制文件(binary)
(3) 数据格式文件(data):某些程序在运行的过程中会读取某些特定格式的文件。
-目录 (directory)(d)
- 连接文件(link) (l)
- 设备与设备文件(dervice)
通过这个文件在/dev/下
(1) 块(block)设备文件,就是一些存储数据,以提供系统随机访问的接口设置,如硬盘,软盘。(b)
(2) 字符(character)设备文件,一些串行端口的接口设备,如键盘,鼠标。特征就是“一次性读取”的,不能够截断输出。(c)
- 套接字(socket)(s)
通过在/var/run这个目录下
(1) 用在网络上的数据连接
- 管道(FIFO, pipe)(p)
在多个程序同时方式同一个文件时,FIFO就是first-in-first-out。
2.4.2、文件扩展名
文件名只是让我们了解该文件可能的用途而已,真正的执行与否仍然需要权限的规范才行。
- .sh
: 脚本或批处理文件(scripts),是使用shell编写的
- .Z
,.tar
,.tar.gz
, .zip
, .tgz
: 经过打包的压缩文件
- .html
, .php
2.4.3、linux文件长度限制
-Ext2/Ext3 文件系统时
(1) 文件名最长为255字符;
(2) 包括完整路径名称及目录(/)的文件名为4096个字符。
2.4.4、linux文件名限制
最好避免设置一些特殊的字符(* ? > < ; $ ! [] | \ ' " ` () {} + -)
参考
鸟哥的linux私房菜