• linux用户管理、su和sudo、文件权限、SUID/SGID/SBIT


    Linux的多用户概念是指多个用户同时可以使用这个系统。每个用户一般在/home下的都有自己的用户目录,root的家目录在/root。用户执行任务的时候一般在自己的家目录中执行,用户之间互相不影响。

    查看当前登录用户

    查看所有用户信息

    cat /etc/passwd

    查看所有用户组信息

    cat /etc/group 

    查看用户的属组

    查看当前用户的属组:groups

    查看指定用户的属组:groups 用户名

    添加新用户

    useradd 用户名   (需获得超级权限)

    -c 备注  加上备注文字,会存在/ect/passwd的备注栏位中。

    -d 登入目录  指定用户登入时的起始目录。

    -m 登入目录  当指定目录不存在时,自动创建目录

    -e 过期日期  格式为YYYY-MM-DD

    -f 缓冲天数  指定在密码过期后多少天即关闭该帐号。

    -g 群组  指定用户所属的组。

    -u uid  指定用户ID。(centos7普通用户要1000+)

    -s 指定用户登录后使用的shell,默认为 /bin/bash,创建虚拟用户可以使用-s /sbin/nologin

    -M 不创建主目录

    设置密码

    passwd 用户名

    -d 删除密码

    -x 指定口令最长存活期,天数

    -i 口令过期多少天停用账户

    注:用户密码保存在 /etc/shadow

    创建用户组

    groupadd 组名

    删除用户

    userdel 用户名

    一般加 -r 代表将其主目录一同删除

    注意:如果将要删除的用户,其同名用户组没有其他用户,那么这个同名用户组也会被删除。

    删除用户组

    groupdel 组名

    su和sudo

    su 切换用户  从root切换到普通用户不需要密码,从普通用户切换到root需要密码

    su 用户名  切换用户后,当前路径不会改变,shell也不会改变

    su - 用户名 或  su -l 用户名   切换用户后,会切换到该用户的登入路径,shell也会切换至其设定shell

    su 用户名 -c "命令"  使用指定用户执行双引号内的命令(用户不会切换过去)

    logout  返回原来的用户使用这个命令

    sudo 在/etc/sudoers授权用户一部分权限,使用户可以在自己账户执行一些root命令。

    找到这一行:root  ALL=(ALL)  ALL

    在其下一行添加:用户名  ALL=(ALL)  NOPASSWD:ALL

    可以添加4中类型:

    用户名     ALL=(ALL)                ALL        赋予该用户所有root权限,执行sudo时需输入密码
    %组名           ALL=(ALL)                ALL        赋予该组内的用户所有root权限,执行sudo时需输入密码
    用户名          ALL=(ALL)                NOPASSWD: ALL 赋予该用户所有root权限,执行sudo时不用输入密码
    %组名           ALL=(ALL)                NOPASSWD: ALL 赋予该组内的用户所有root权限,执行sudo时不用输入密码
    注:

    ALL=(ALL:ALL)   ALL

    括号内第一个ALL代表用户能登录的主机,第二个代表这个主机所在群组,最后一个ALL代表能执行的命令。

    使用ALL的话,就代表能登录所有主机,执行所有命令。

     sudo日志记录

    记录普通用户使用sudo时的操作命令,步骤:

    第2步visudo,在最后添加3行:

    测试:

    文件权限

    注:第一列为文件权限,第一位是文件类型,-代表文件,随后三位rw-是属主(user/owner)权限,再随后三位r--是属组(group)权限,最后三位r--是其他(other)权限。

    进程对文件的访问权限应用模型:

    如上图,当我们调用ls命令时,开启了一个进程

    当进程的属主与文件的属主相同时,则应用属主权限。

    否则,当进程的属主属于文件的属组时,应用属组权限。

    否则,只能应用其他权限。

    权限组合机制

    三位权限  对应2进制  8进制

       ---       000       0

       --x       001      1

       -w-      010      2

       -wx      011      3

       r--       100      4

       r-x       101     5

       rw-      110      6

       rwx     111      7

    权限管理命令

    chmod命令(change mode)

    -R 递归修改(recursive)同时修改目录下的子文件的权限,一般在授权表示法中使用。

    注:用户仅能修改那些属于自己的文件的权限。

    ①mode表示法

    赋权表示法:

    属主权限u=  属组权限g=  其他权限o=  所有权限a=

    可以只更改一个:chmod u=rx 1.txt

    若两个权限一样:chmod ug=rx 1.txt

    若三个都一样:chmod a=r 1.txt

    授权表示法:

    u+ u-  g+ g-  o+ o-  a+ a-

    也可以同时操作两个:chmod ug+x 1.txt

    ②8进制表示法

    每三位对应前面的权限组合机制

    ③参考表示法

    将文件2.txt的权限复制给1.txt。

    从属关系管理命令

    注:仅管理员可修改文件的属主和属组

    chown (change owner)  

    -R 递归

    注:也可以用冒号 chown pm:pm 1.txt

    如果只写一个的话,更改的是属主:chown pm 1.txt

    chgrp(change group)

    只能更改属组 chgrp pm 1.txt

    umask 文件权限的反向掩码、遮罩码

    第1位是特殊权限,后3位是普通权限

    创建的目录时的默认权限是777,创建文件的默认权限是666,为了使文件更加安全、不出错,

    新建文件的权限=默认权限-反向掩码

    即777-022=755

    特殊权限SUID、SGID、SBIT

    SUID:Set User ID

    当属主权限的x位为s或S时,说明其为SUID权限。(s同时具有x权限,S没有x权限)大S这里不太懂

    作用:使执行者获得该程序的属主的所有权限(仅在执行程序时)。

    SUID仅对二进制程序有效;调用过程中执行者获得属主对该文件的权限;

    执行者必须拥有可执行(x)权限;程序运行为进程时,进程的属主是文件的属主,而不是执行者。

    SGID:Set Group ID

    SGID与SUID类似,不过它对二进制程序和目录都有效。

    当二进制程序设置SGID权限时,执行者获得文件属组的权限。

    当为目录设置SGID权限时,如果执行者对该目录有写和执行的权限,这在该目录下新建的文件都是属于这个目录所属的组。

    SBIT:Sticky Bit

    这个就是针对others来设置的了,和上面两个一样,只是功能不同而已。
    SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
    最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。

    注:这个SBIT对文件不起作用。

    SUID SGID SBIT权限设置

    4代表SUID  2代表SGID  1代表SBIT  例:

    chmod 4755 t   那么t的权限为 rwsr-xr-x

    chmod 6755 t   那么t的权限为 rwsr-sr-x

    chmod 4655 t   那么t的权限为 rwSr-xr-x

    注:当目录有s权限时,目录下的新创建的内容会继承父目录的对应的属主或属组。

  • 相关阅读:
    配置python库源为清华源
    ubuntu下安装使用jupyter
    《在下雪天气里和女朋友在一起就会有种很特别的氛围,我很喜欢》梗图
    ubuntu安装cuda、cudnn和nvidia-docker
    jreg视频内容整理
    【北邮人论坛帖子备份】给考公同学的建议。如今我流的泪都是当年脑子进的水
    拉取docker容器后启动容器的脚本
    多个git账户ssh密钥配置
    【北邮人论坛帖子备份】【FAQ】给今年国企求职学弟学妹的一点建议
    nui-app记录不明白的属性
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/12880069.html
Copyright © 2020-2023  润新知