• Linux 权限


    Linux 是多用户的操作系统,同一时间可以有多个用户同时操作同一台计算机。为了让用户和用户之间不相互影响,必须要有一种机制来保障每一个用户的行为不会越界对其他用户造成不必要的影响。

    用户和用户组

    了解 Linux 的权限管理首先要了解用户和组的概念。Linux 引入了用户和用户组的概念,一个用户可以拥有多个文件和目录, 用户对这个文件或目录的访问权限拥有控制权。同时用户可以属于一个或者多个用户组,用户组中的用户拥有同属于这个组的对文件的访问控制权。

    Linux 会给每个用户分配一个 uid(标识用户) 和 gid (标识用户组),在创建用户的时候默认就会创建一个和用户名同名的用户组,我可以用id命令来查看:

    id
    uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    这些信息都是配置在配置文件中的,我们有必要了解这些信息在哪些配置文件中,他们主要配置在三个文件中/etc/shadow,/etc/passwd/etc/group

    用户帐户 定义在/etc/passwd 文件里面,用户组定义在/etc/group 文件里面。当用户帐户和用户组创建以后, 这些文件随着文件/etc/shadow 的变动而修改,文件/etc/shadow 包含了关于用户密码的信息。 对于每个用户帐号,文件/etc/passwd 定义了用户(登录)名、uid、gid、帐号的真实姓名、家目录 和登录 shell。如果你查看一下文件/etc/passwd 和文件/etc/group 的内容,你会注意到除了普通 用户帐号之外,还有超级用户(uid 0)帐号,和各种各样的系统用户。

    基本的用户管理

    创建一个普通用户

    添加用户

    useradd shui

    设置密码

    passwd shui 按提示输入密码即可

    这样就会创建一个新的用户,我们可以在/etc/group中看到新建的默认用户组的信息shui:x:1000:也可以再/etc/shadow,/etc/passwd看到相关信息。

    为用户配置sudo权限

    配置sudo权限就是将永不加入到sudoers用户组中,这是一个特殊的用户组,在这个用户组中的用户可以通过在命令前面添加sudo临时获取root的权限。

    用root编辑 vi /etc/sudoers

    在文件的如下位置,为hadoop添加一行即可

    root ALL=(ALL) ALL
    shui ALL=(ALL) ALL

    或者使用如下语句也是相同效果

    echo ‘shui ALL=(ALL) ALL’>> /etc/sudoers

    然后,hadoop用户就可以用sudo来执行系统级别的指令

    文件权限的操作

    前面说过用户具有对文件的的访问控制权,访问控制权具有可读、可写、可操作三种,我们来具体看一下

    linux 文件权限的描述格式解读

    ll命令来看一下根目录下的文件信息,我们复制其中的一部分:

    1
    2
    3
    4
    
    dr-xr-xr-x.   5 root root 4096 11月  2 10:34 boot
    drwxr-xr-x.  20 root root 3140 11月  2 10:36 dev
    drwxr-xr-x.  74 root root 8192 11月  2 20:48 etc
    drwxr-xr-x.   3 root root   18 11月  2 19:03 home
    

    每个文件的信息大同小异,关注最前面的十个字符,他就表示文件的操作权限。

    以/etc目录的信息为例drwxr-xr-x. 74 root root 8192 11月 2 20:48 etc

    第一位表示文件类型,d 表示这是一个文件夹,文件属性还有以下内容

    文件类型

    后面的九位分别代表用户权限、用户组权限和其他用户权限

    权限属性

    • r:表示可读 read
    • w:表示可惜 write
    • x:表示可执行 excute

    /etc 目录的权限 rwxr-xr-x 就表示,root 用户具有可读可写可操作的权限,文件所有者的组成员可以访问该目录,但是不能新建、重命名、删除文件,其他成员可以访问该目录,但是不能新建、重命名、删除文件。

    权限表

    chmod 更改权限

    只有root和文件的所有者才能更改文件的权限,更改文件的权限有两种方式,一种是使用符号,另一种是使用八进制数字。

    符号方式修改文件权限

    符号即前面rwx对应的含义,ugoa则分别表示用户(user)、用户组(group)、其他人(other)和所有(all),一组示例来演示:

    1
    2
    3
    
    chmod g-rw haha.dat    表示将haha.dat对所属组的rw权限取消
    chmod o-rw haha.dat 	表示将haha.dat对其他人的rw权限取消
    chmod u+x haha.dat      表示将haha.dat对所属用户的权限增加x
    

    八进制的方式来修改权限

    一个八进制数字可以表示三个二进制数,二进制的 111 对应八进制的 7,而 111 正好可以表示 rwx 的含义,1 则代表有权限 0 则代表没有权限。

    八进制 二进制 符号
    0 000
    1 001 —-x
    2 010 -w-
    3 011 -wx
    4 100 r–
    5 101 r-x
    6 110 rw-
    7 111 rwx

    例如:

    chmod 664 haha.dat
    修改成 rw-rw-r–

    一些人喜欢使用八进制表示法,而另一些人则非常喜欢符号表示法。符号表示法的优点是, 允许你设置文件模式的某个属性,而不影响其他的属性。

  • 相关阅读:
    阿里云容器服务多项重磅发布:高效智能、安全无界的新一代平台
    400倍加速, PolarDB HTAP实时数据分析技术解密
    先行一步,7大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了
    一图看懂云栖大会「云原生」重磅发布
    云栖发布|企业级互联网架构全新升级 ,助力数字创新
    3000份限量款云小宝手办全网首发,等你带回家!
    基于Delta lake、Hudi格式的湖仓一体方案
    git的clone和github的fork
    对vue的solt的理解
    对云信SDK的研究1
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185213.html
Copyright © 2020-2023  润新知