• 【Linux】 - Linux中的权限机制


    从文件属性看权限

    在这里插入图片描述
    列在输出结果中的前10个字符表示的是文件属性,其中第一个字符表示文件类型,其余9个字符称为文件模式,分别表示文件所有者、文件所属群组以及其他所有用户对该文件的读取、写入和执行权限。
    在这里插入图片描述

    文件类型

    标示符类型
    -普通文件
    d目录文件
    l符号链接。注意对于符号链接文件,剩下的文件属性始终是rwxrwxrwx,它是个 伪属性值。符号链接指向的文件的属性才是真正的文件属性
    c字符设备文件。该文件类型表示以字节流形式处理数据的设备,如终端或调制解 调器
    b块设备文件。该文件类型表示以数据块方式处理数据的设备,如硬盘驱动或者光 盘驱动

    权限属性

    标示符文件属性目录属性
    r允许打开和读取文件如果设置了执行权限,那么允许列 出目录下的内容
    w允许写入或者截短文件;如果也设置了执行 权限,那么目录中的文件允许被创建、被删 除以及被重命名但是该权限不允许重命名或者删除 文件。是否能重命名和删除文件由 目录权限决定
    x允许把文件当作程序一样来执行。用脚本语 言写的程序文件必须被设置为可读,以便能 被执行允许进入目录下
    文件属性含义
    -rwx------普通文件,文件所有者具有读取、写入和执行权限。组成员和其他所 有用户都没有任何访问权限
    -rw-------普通文件,文件所有者具有读取和写入权限。组成员和其他所有用户 都没有任何访问权限
    -rwxr-xr-x普通文件,文件所有者具有读取、写入和执行权限。其他所有用户也 可以读取和执行该文件
    Lrwxrwxrwx符号链接。所有的符号链接文件显示的都是“伪”权限属性,真正的权 限属性由符号链接指向的实际文件决定
    drwxr-x—目录文件。文件所有者可以进入该目录,而且可以创建、重命名和删 除该目录下的文件。所有者所在群组的成员可以进入该目录,但是不 能创建、重命名和删除该目录下的文件

    id(显示用户身份标识)

    在这里插入图片描述

    chmod(更改文件模式)

    chmod命令来更改文件或者目录的模式(权限)。只有文件所有者和超级用户才可以更改文件或者目录的模式。

    chmod命令支持两种不同的改变文件模式的方式——八进制数字表示法 和符号表示法。

    1. 八进制数字表示法
    在这里插入图片描述

    通过使用3位八进制数字,我们可以分别设置文件所有者、组成员和其他所有用户的文件模式。

    chmod 700 foo.txt
    
    • 1

    在这里插入图片描述
    2. 符号表示法
    chmod命令支持一种符号表示法来指定文件模式。该符号表示法分为三 部分:更改会影响谁、要执行哪个操作以及要设置哪种权限。

    可以通过字符u、g、o和a的组合来指定要影响的对象:

    符号含义
    u文件或者目录的所有者
    g文件所属群组
    o其他所有用户
    a‘u’, ‘g’和‘o’三者的组合

    可以通过字符+、-、=的组合来指定要执行哪个操作:

    符号含义
    +添加一种权 限
    -表示删除一种权限
    =表示只有指定的权限可用,其他所有的 权限都被删除

    权限由字符“r”、“w”和“x”来指定。

    chmod命令符号表示法实例

    符号含义
    u+x为文件所有者添加可执行权限
    u-x删除文件所有者的可执行权限
    +x为文件所有者、所属群组和其他所有用户添加可执行权限,等价于a+x
    o-rw除了文件所有者和所属群组之外,删除其他所有用户的读写权限
    go=rw除了文件所有者之外,设置所属群组和其他所有用户具有读写权限。
    u+x, go=rx为文件所有者添加可执行权限,同时设置所属群组和其他所有用户具有读权 限和可执行权限。

    su(以另一个用户的身份运行shell)

    su命令用来以另一个用户的身份来启动shell。

    su [-[l]] [user_name]
    
    # “-l”可缩写为“-”
    # 没有指定user_name默认为用户root
    
    • 1
    • 2
    • 3
    • 4

    在输入su命令后,系统会提示输入该超级用户的密码,开启一个新的交互命令界面。

    也可以使用su命令执行单个命令,而不需要开启一个新的交互式命令界面,操作方式如下:

    su -c "command"	# command表示待执行的命令
    
    • 1

    sudo(以另一个用户的身份执行命令)

    sudo命令类似于su命令。

    管理者可以通过配置sudo命令,使系统以一种可控的方式,允许一 个普通用户以一个不同的用户身份(通常是超级用户)执行命令。在特 定情况下,用户可能被限制为只能执行一条或者几条特定的命令,而对 其他命令没有执行权限。另一个重要的区别在于,使用sudo命令并不需 要输入超级用户的密码。使用sudo命令时,用户只需要输入自己的密码来进行认证。

    chown(更改文件的所有者)

    chown命令用来更改文件或者目录的所有者和所属群组(需要超级用户权限)。

    chown [ower][:[group]] file
    • 1

    chown命令更改的是文件所有者还是文件所属群组,或者对两者都更 改,取决于该命令的第一个参数。

    chown命令实例:

    命令结果
    chown user file把文件file所有者从当前所有者更改为用户user
    chown user:users file把文件file所有者从当前所有者更改为用户user,并把文件所属群组更改为 users组
    chown :users file把文件file所属群组更改为admins组,文件所有者不变
    chown user: file把文件所有者从当前所有者更改为用户user,并把文件所属群组更改为用户user登录系统时所属的组

    passwd(更改用户密码)

    使用passwd命令,可以设 置或者更改密码。该命令的语法格式如下。

    passwd [user_name]
    
    • 1

    如果要更改的是用户自己的密码,那么只需要输入passwd命令。接下来 shell将会提示用户输入旧密码和新密码。

  • 相关阅读:
    web网站 固定的邀请码字符 能被爬虫爬取吗?动态改变邀请码的字符是不是可以避免爬虫爬取或数据泄露
    Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)
    JavaScript数据类型BigInt实践之id数值太大,导致前后端交互异常
    【Java】线程状态
    C# WPF入门学习主线篇(三十)—— MVVM(Model-View-ViewModel)模式
    NGF ; -R : Trk NTRK
    关于用pygame来编写类满天星游戏的全记录
    进程地址空间(Linux虚拟内存机制)
    冯喜运:4.24-4.25黄金原油双双跳水、今日走势分析
    大厂FPGA的面试题
  • 原文地址:https://blog.csdn.net/weixin_43598687/article/details/126348281