Linux-基本权限

Linux-基本权限

1. 权限介绍

ll
ls -l
# 文件类型 所有者 所属组 其他人

image-20240512103831791

image-20240512104055373

  1. 文件类型
  • “-”:普通文件。
  • “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1 就是这种文件。
  • “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘 等。
  • “d”:目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
  • “l”:软链接文件。 - “p”:管道符文件。这是一种非常少见的特殊设备文件。
  • “s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样 的文件
  1. 所有者权限/所有组权限/其他人权限
  • r:代表 read,是读取权限。

  • w:代表 write,是写权限。

  • x:代表 execute,是执行权限。 如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。

  1. 注意
  • 如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
  • 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 # 使用等号来同时赋予三个权限,也可以
  • 权限设置的规则是前者是用户类型,后者是权限类型,这是中间项
  • 后面则是需要处理的文件

image-20240512123424844

例如在上面的例子中,给组添加了写权限

  • +-权限需要先查看之前的权限,=可以设置成目标权限

image-20240512105609255

2.2 数字表示权限

chmod 644 file # 给文件赋予基本权限
  • 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
  • 755:这是文件的执行权限目录的基本权限,代表所有者拥有读、写和执行权限,而所属组 和其他人拥有读和执行权限。
  • 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这 会造成一定的安全隐患

注意:

  • 777权限赋予很危险

image-20240512124835195

3. 所有者所属组命令

3.1chown命令

chown [选项] 所有者:所属组 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限
# 使用该命令可以实现用户和组的同时修改

image-20240512132844949

3.2chgrp命令

chgrp [选项] 所有者:所属组 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限

image-20240512132507952

3.3 chmod/chown注意事项

  • 普通用户可以修改自己的权限
  • 普通用户无法修改自己的所属组和所有者

image-20240512133255266

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匹配 所有者 权限,所以只用修改所有者权限
  • 使用其他用户操作
  • 所有者可以更改权限 

注意

  • 需要先修改文件再修改目录,否则无法实现权限修改

正式开始

  1. 首先新建,查看文件和目录权限,默认情况下是 664-文件775目录

image-20240513052346862

  1. 更改为无权限

image-20240513052741232

  1. 目录赋权限测试,发现目录只有赋予权限0 5 7才可以正常使用
    • 0 无权限 5 进入和浏览 7 进入浏览和文件操作

image-20240513053436978

  1. 文件赋权操作
    • 对文件操作的话,需要有读写才可以修改内容
    • 对上级目录给写权限,才可以对文件进行新建和删除操作

image-20240513054031843

5. umask默认权限

默认权限就是新建文件的时候存在的权限

umask 
umask 数字	# 临时修改文件新建的权限

image-20240513054507459

  • 新建文件的默认最大权限是666,没有执行权限
  • 新建目录的默认最大权限是777,没有风险

umask是先逻辑与运算,再加上逻辑非运算;默认人理解如下

image-20240513054905243

[root@localhost ~]# umask
0022
#用八进制数值显示 umask 权限
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
#用字母表示文件和目录的初始权限

修改umask的默认值

这里,系统用户root的uid是0,其他用户的uid是>=500,所以这里的判断可以实现不同初始权限赋值

image-20240513055333283

其他状况

新建用户 命令行异常&家目录缺失

  • 这里的命令行缺失是在查看root和新增用户的命令行操作不同,新用户是/bin/sh,root用户是/bin/bash,使用第三行命令修改shbash解决第一个问题。
  • 修改/etc/login.defs文件,来设置新增用户默认产生家目录文件。
vim /etc/passwd # 查看下默认root用户的密码信息
useradd -D # 查看下默认用户添加命令
vim /etc/default/useradd # 用户默认设置的配置文件,如果上面看见的需要修改,在这其中修改
vim /etc/login.defs # 末尾添加默认创建用户家目录选项,否则登录的话会报错

passwd文件内容

image-20240512131520985

image-20240512131641747

image-20240512131704010

posted @ 2024-05-13 06:00  何夕_DL  阅读(6)  评论(0编辑  收藏  举报