Linux-基本权限
Linux-基本权限
1. 权限介绍
ll
ls -l
# 文件类型 所有者 所属组 其他人
- 文件类型
- “-”:普通文件。
- “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1 就是这种文件。
- “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘 等。
- “d”:目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
- “l”:软链接文件。 - “p”:管道符文件。这是一种非常少见的特殊设备文件。
- “s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样 的文件
- 所有者权限/所有组权限/其他人权限
-
r:代表 read,是读取权限。
-
w:代表 write,是写权限。
-
x:代表 execute,是执行权限。 如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。
- 注意
- 如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
- d s 文件误删会产生很大的影响
- 三者的权限限制取决于使用用户
2. 基本权限命令
2.1 命令赋予权限
chmod [选项] 权限模式 文件名
chmod g+w file
chmod g+w,o+w file # 同时赋予权限
chmod g-w,o-w file # 同时删除权限
chmod g=rwx,o-w file # 使用等号来同时赋予三个权限,也可以
- 权限设置的规则是前者是用户类型,后者是权限类型,这是中间项
- 后面则是需要处理的文件
例如在上面的例子中,给组添加了写权限
- +-权限需要先查看之前的权限,=可以设置成目标权限
2.2 数字表示权限
chmod 644 file # 给文件赋予基本权限
- 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
- 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组 和其他人拥有读和执行权限。
- 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这 会造成一定的安全隐患。
注意:
- 777权限赋予很危险
3. 所有者所属组命令
3.1chown命令
chown [选项] 所有者:所属组 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限
# 使用该命令可以实现用户和组的同时修改
3.2chgrp命令
chgrp [选项] 所有者:所属组 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限
3.3 chmod/chown注意事项
- 普通用户可以修改自己的权限
- 普通用户无法修改自己的所属组和所有者
4. 权限的基本作用
4.1权限的含义
权限对文件的作用
-
读权限
cat、more、less、head、tail 等文件查看命令
-
写权限
vim、echo 等修改文件数据的命令。 对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。 如果要想删除文件,则需要对文件的上级目录拥有写权限。 对文件有写权限是无法删除文件的,需要对上级目录有写权限才可以实现对该文件实现删除操作
-
执行权限
对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。 在 Linux 中,只要文件有执行(x)权限,这个文件就是执行文件了。 只是这个文件到底能不能正确执行,不仅需要执行(x)权限, 还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。
权限对目录的作用
- 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。
- 如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可 以在目录下执行
ls 命令
,查看目录下的内容了。 - 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中
新建、 删除、复制、剪切子文件或子目录
。 - 如果把权限对应到命令上,那么一旦对目录拥有了写(w) 权限,就可以在目录下执行
touch、rm、cp、mv 命令
。对目录来说,写(w)权限是最高 权限。 - 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果 把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行
cd 命令
,进入 目录。
4.2目录的可用权限
目录的可用权限其实只有以下几个。
- 0:任何权限都不赋予。
- 5:基本的目录浏览和进入权限。
- 7:完全权限。
4.3文件的常用权限
- 4:只读权限
- 5:读和执行
- 6:读写权限,不执行
- 7:完全权限
4.4实验测试
创建一个目录,目录中创建一个文本文件,将权限更改为最小,04567逐渐放大权限
- u1匹配
所有者
权限,所以只用修改所有者权限 - 使用其他用户操作
- 所有者可以更改权限
注意
- 需要先修改文件再修改目录,否则无法实现权限修改
正式开始
- 首先新建,查看文件和目录权限,默认情况下是
664-文件
和775目录
- 更改为无权限
- 目录赋权限测试,发现目录只有赋予权限
0 5 7
才可以正常使用- 0 无权限 5 进入和浏览 7 进入浏览和文件操作
- 文件赋权操作
- 对文件操作的话,需要有读写才可以修改内容
- 对上级目录给写权限,才可以对文件进行新建和删除操作
5. umask默认权限
默认权限就是新建文件的时候存在的权限
umask
umask 数字 # 临时修改文件新建的权限
- 新建文件的默认最大权限是666,没有执行权限
- 新建目录的默认最大权限是777,没有风险
umask是先逻辑与运算,再加上逻辑非运算;默认人理解如下
[root@localhost ~]# umask
0022
#用八进制数值显示 umask 权限
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
#用字母表示文件和目录的初始权限
修改umask的默认值
这里,系统用户root的uid是0,其他用户的uid是>=500,所以这里的判断可以实现不同初始权限赋值
其他状况
新建用户 命令行异常&家目录缺失
- 这里的命令行缺失是在查看root和新增用户的命令行操作不同,新用户是
/bin/sh
,root用户是/bin/bash
,使用第三行命令修改sh
为bash
解决第一个问题。
- 修改
/etc/login.defs
文件,来设置新增用户默认产生家目录文件。
vim /etc/passwd # 查看下默认root用户的密码信息
useradd -D # 查看下默认用户添加命令
vim /etc/default/useradd # 用户默认设置的配置文件,如果上面看见的需要修改,在这其中修改
vim /etc/login.defs # 末尾添加默认创建用户家目录选项,否则登录的话会报错