Linux用户权限管理基础

Linux下的用户分类

Linux下有两种用户:超级用户(root)和普通用户

  • 超级用户(root):可以在linux系统下做任何事情,不受限制
  • 普通用户:在linux系统下做事情受到权限限制
  • 超级用户的命令提示符是"#",普通用户的命令提示符是"$".

用户切换

**命令:**su [用户名]

**功能:**切换用户

**举例:**要从root用户切换到普通用户user,则使用su user;要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的口令。

Linux权限管理

文件访问者的分类

  • 文件和文件目录的所有者:u --- user
  • 文件和文件目录的所有者所在的组的用户:g --- group
  • 其他用户:o --- others

文件类型和访问权限(事物属性)

文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接
  • b:块设备
  • p:管道文件
  • c:字符设备文件
  • s:套接口文件

基本权限:

  • 读(r/4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • "-":表示不具有该项权限

文件权限值的表示方法:

  • 字符表示方法,如 r-x,rwx,r-- 等等
  • 8进制数值表示方法,如4表示只有读权限,7表示具有读写执行权限,5表示具有读和执行权限等

文件访问权限的相关设置方法

chmod

功能:设置文件的访问权限

**格式:**chmod [参数] 权限文件名

常用选项:

  • -R :递归修改目录文件的权限
  • 说明:只有文件的拥有者和 root 才可以改变文件的权限

chmod命令权限值的格式:

  • 用户标识符 +/-/= 权限字符
    • +: 向权限范围增加权限代号所表示的权限
    • -:向权限范围取消权限代号所表示的权限
    • =:向权限范围赋予权限代号所表示的权限
    • 用户符号:
      • u:拥有者
      • g:与拥有者同组的用户
      • o:其他用户
      • a:所有用户
    • 实例:
      • chmod u+w /home/abc.txt
      • chmod o-x /home/abc.txt
      • chmod a=x /home/abc.txt
  • 三位8进制数字
    • 实例:
      • chmod 664 /home/abc.txt
      • chmod 640 /home/abc.txt

chown

功能:修改文件的所有者

**格式:**chown [参数] 用户名 文件名

实例:

  • chown user1 f1 把 f1 的所有者变为user1
  • chown -R user1 filegroup1 把 filegroup1 目录下所有文件的所有者变为user1

chgrp

**功能:**修改文件或目录的所属组

**格式:**chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录所属组

**实例:**chgrp users /abc/f2

umask

功能:

  • 查看或修改文件掩码
  • 新建文件夹默认权限 = 0666
  • 新建目录默认权限 = 0777
  • 但实际上所创建的文件和目录的权限往往不是上面这个值。原因是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建出来的文件权限是:mask & ~umask

格式:umask 权限值

**说明:**将现有的存取权限减去权限掩码后,即可产⽣建⽴⽂件时预设权限。超级⽤⼾默认掩码值为 0022,普通⽤⼾默认为0002。(第一位是特殊权限位(粘滞位),只需关注后三位)

实例:

  • umask 755
  • umask //查看

file指令

功能:辨认文件类型

语法:file [选项] 文件或目录

常用选项:

  • -c:详细显示指令执行过程,便于排错或分析程序执行的清醒
  • -z:尝试去解读压缩文件的内容

使用sudo分配权限

(1)修改 /etc/sudoers 文件

复制代码
# chmod 740 /etc/sudoers
# vi /etc/sudoer

格式:接受权限的用户登录的主机 = (执行命令的用户)命令

(2)使用 sudo 调用授权的命令

复制代码
sudo --u ⽤⼾名 命令

实例:

复制代码
sudo -u root /usr/sbin/useradd u2

目录的权限

  • 可执行权限:如果目录没有可执行权限,则无法 cd 到目录中
  • 可读权限:如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容
  • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

粘滞位

换句话来讲,就是只要⽤⼾具有⽬录的写权限,⽤⼾就可以删除⽬录中的⽂件,⽽不论这个⽤⼾是否有这个⽂件的写权限。为了解决 a 创建的文件,b可以删除的问题,所以有了粘滞位的概念

复制代码
[root@localhost ~]$ chmod +t /home/  # 加上粘滞位
[root@localhost ~]$ ls -ld /home/
drwxrwxrwt. 3 root root 4096 9⽉ 19 16:00 /home/
[root@localhost ~]$ su - a
[a@localhost ~]$ rm /home/abc.c  #a不能删除别⼈的⽂件
rm:是否删除有写保护的普通空⽂件 "/home/abc.c"?y
rm: ⽆法删除"/home/abc.c": 不允许的操作

当⼀个⽬录被设置为"粘滞位"(⽤chmod+t),则该⽬录下的⽂件只能由

  • root 删除
  • 该目录的所有者删除
  • 该文件的所有者删除
相关推荐
遇见火星2 小时前
Linux 命令篇:df、du、fdisk 磁盘管理
linux·运维·服务器·df·du·fdisk
凌~风2 小时前
013-计算机操作系统实验报告之Linux命令!
linux·计算机操作系统·实验报告
牛奶咖啡132 小时前
shell脚本编程(七)
linux·shell脚本编程·列表for循环·列表for循环的多种示例·for循环的break用法·for循环continue用法·c语言型for循环
南烟斋..3 小时前
Linux系统编程核心知识指南
linux·算法
森旺电子3 小时前
Linux指令快速记忆
linux·运维·服务器
weixin_516023074 小时前
电子阻止本领 electronic stopping power
linux
开开心心就好4 小时前
免费无广告卸载工具,轻便安全适配全用户
linux·运维·服务器·网络·安全·启发式算法·1024程序员节
硬核子牙4 小时前
ebpf检测Linux系统要来了
linux
↘"LYong4 小时前
Centos升级Redis(7.4.1 ---> 7.4.6)
linux·redis