• Linux用户及权限管理--总结


    1、Linux操作系统用户及用户组

    Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,Linux操作系统的用户就是让我们登录到Linux的权限;每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。

    1.1 Linux操作系统用户

    在Linux中,用户分为两大类;管理员和普通用户,其中普通用户有分为系统用户和登录用户;

    系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从来不用登录系统。

    登录用户:就是我们一般使用登录Linux的用户

    用户标识:user id,UID

    通常使用16bits二进制数字表示(0-65535)

    管理员的用户标识:0

    普通用户:1-65535

    系统用户:1-499(centos6)、1-999(centos7)

    登录用户:500-60000(centos6)、1000-60000(centos7)

    Linux通过名称解析库 "/etc/passwd" 文件解析用户名与用户ID之间的对应关系。

    /etc/passwd:用户信息库

    name:password:UID:GID:GECOS:home directory:shell

    1.2Linux操作系统用户组

    在Linux中,用户组分类方式有三种:

    1、管理员组、普通用户组(系统用户组、登录用户组)

    2、用户的基本组、用户附加组

    3、私有组、公共组

    用户组标识:group id,GID

    通常使用16bits二进制数字表示(0-65535)

    管理员的用户组标识:0

    普通用户组:1-65535

    系统用户组:1-499(centos6)、1-999(centos7)

    登录用户组:500-60000(centos6)、1000-60000(centos7)

    Linux通过名称解析库“/etc/group”文件解析用户名与用户ID之间的对应关系。

    /etc/group:组的信息库

    group_name:passwd:GID:user_list

    user_list:该组用户的成员;以此组为附加组的用户的用户列表

    1.3Linux操作系统密码

    用户在登录Linux系统时,会对比passwd与之前保存在"/etc/shadow"、"/etc/gshadow"文件中的密码是否一致。

    加密算法:

    对称加密:加密和解密使用同一个密码

    非对称加密:加密和解密使用的一对密钥

    密钥对:公钥、私钥

    单向加密:只能加密,不能解密;提取数据特征码

    定长输出:

    雪崩效应:密码中某一个字符改变,那么整个加密后的密钥都会改变

    Linux的密码加密方式使用单项加密算法,并且添加随机数(salt)计算得出的。

    系统识别算法ID 算法名称
    1

    MD5:message digest,128bits

    2 sha:secure hash algorithm,160bits
    3 sha224
    4 sha256
    5 sha384
    6 sha512

    /etc/shadow:用户密码

    用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最常使用期限:警告期段:非活动期限:过期期限:保留字段

     1 [root@localhost ~]# head -1 /etc/shadow

    2 root:$6$mNeLUb3TE/L9utIA$nVgYyR6KkPDFRYrZC2Q9hPRNgz8z3mDKsQKraE1Fy8.LBMQoldhK4Ne1ZZlolZg2362JgdrwmTRmSbI5PTe.j0::0:99999:7::: 

    加密密码:使用$分隔,第一个段表示使用的加密算法,第二个段表示添加的salt(随机数),第三段表示加密后的密码

    2、权限管理

    Linux的文件管理权限分为读、写和执行

     1 [root@localhost ~]# ls -l /bin/bash

    2 -rwxr-xr-x. 1 root root 960392 8月 3 2016 /bin/bash 

    文件权限:

    -rwxr-xr-x

    共分为五个部分:-表示文件类型、rwx用户属主的权限、r-x用户属组的权限、r-x其他用户的权限、.是否启用facl

    权限:

    r:readable,读

    w:wirteable,写

    x:excuteable,执行

    权限对文件的作用:

    r:可获取文件的数据

    w:可修改文件的数据

    x:可将此文件运行为进程

    权限对目录的作用:

    r:可使用ls命令获取其下的所有文件列表或其子目录。

    w:可修改此目录下的文件列表即创建或删除文件,包括子目录。

    x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息

    权限组合 二进制数 十进制数
    --- 000 0
    --x 001 1
    -w- 010 2
    -wx 011 3
    r-- 100 4
    r-x 101 5
    rw- 110 6
    rwx 111 7

    练习:

    rw-rw-r--     664

    rwxrwxr-x    775

    rwxr-x---     750

    rw-------      600

    rwxr-xr-x     755

    3、相关命令

    3.1用户管理命令

    useradd命令:创建用户

    useradd [选项] 用户名

    -u,--uid UID:指定UID,默认是上一个用户的UID+1

    -g,--gid GID:指定基本组ID,此组得事先存在

    -G,--groups GROUP1[,GROUP2,.....][,GROUPSN]:指明用户所属的附加组,多个组之间用逗号分隔

    -c,--comment COMMENT:指明注释信息

    -d,-home HOME_DIR:以指定路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件

    -s,--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中

    -r,--system:创建系统用户

    -M:不为用户创建主目录

    -f,--incatice INACTIVE:在密码过期后,账户被彻底禁用之前的天数,0表示立即禁用,-1表示禁用该功能

    注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

    useradd -D:显示创建用户的默认选项配置

    useradd -D 选项:修改默认选项的值

    修改的结果保存于/etc/default/useradd文件中;可以直接修改此文件来实现

    usermod命令:修改用户属性

    usermod [选项] 用户名

    -u,--uid UID:修改用户的ID为此处指定的新UID

    -g,--group GROUP:修改用户所属的基本组;此组得事先存在

    -G,--groups GROUP1[,GROUP2,GROUP3,....]:修改用户所属的附加组,原来的附加组会被覆盖

    -a,-append:与-G一同使用,用于用户追加新的附加组

    -c,--comment COMMENT:修改注释信息

    -d,--home HOME_DIR:修改用户的家目录;用户原来的文件不会被转移至新位置

    -m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录

    -l,--login NEW_LOGING:修改用户名

    -s,--shell SHELL:修改用户的默认shell

    -L,--lock:锁定用户密码;即在用户原来的密码字符串之前添加一个“!”

    -U,--unlock:解锁用户密码

    userdel命令:删除用户

    userdel [选项] 用户名

    -r:删除用户时一并删除其家目录和用户邮箱

    id命令:显示用户的真实和有效的UID和GID

    id [option]... [username]

    -u:仅显示有效的UID

    -g:仅显示用户的基本组的ID

    -G:仅显示用户所属的所有组的ID

    -n:显示名字而非ID;一般与g一起使用:-ng

    su命令

    登录式切换:会通过重新读取目标用户的配置文件来重新初始化

    su - USERNAME

    非登录式切换:不会读取目标用户的配置文件进行初始化

    su USERNAME

    注意:管理员可无密码切换至其他任何用户;其他用户在切换用户时必须输入密码

    -c “COMMAND”:仅以指定用户的身份运行此处指定的命令

    例如:su - USERNAME -c “whoami”

    3.2用户组管理命令

    groupadd命令:添加组

    groupadd [选项] GROUP_NAME

    -g GID:指定GID,默认是上一个组的GID+1

    -r:创建系统组

    groupmod命令:修改组属性

    groupmod [选项] GROUP_NAME

    -g GID:修改GID

    -n NEW_NAME:修改组名

    groupdel命令:删除组

    groupdel [选项] GROUP

    3.3用户及用户组练习

    练习:1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和penguin(GID为5001);

    练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tsch;

    练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件人仍能被用户访问;

    练习4:为gentoo新增附加组netadmin

    3.4密码管理命令

    passwd命令:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] 

    [-S] [-stdin] [username]

    (1)passwd:修改用户自己的密码

    (2)passwd USERNAME:修改指定用户的密码,但仅root有此权限

    -l:锁定用户

    -u:解锁用户

    -d:清除用户密码

    -e:过期期限,日期

    -i:非活动期限,时间范围

    -n:密码的最短使用期限

    -x:密码的最长使用期限

    -w:警告期限

    --stdin:echo “PASSWORD” | passwd --stdin USERNAME

     1 [root@localhost ~]# echo "ceshimima" | passwd --stdin ceshi

    2 更改用户 root 的密码 。

    3 passwd:所有的身份验证令牌已经成功更新。 

    gpasswd命令:

    用户组密码文件:/etc/gshadow

    gpasswd [选项] group_name

    -a USERNAME:向组中添加用户,作为附加组

    -d USERNAME:从组中删除用户

    newgrp命令:临时切换指定的组为基本组

    newgrp [-] [group_name]

    -:会模拟用户重新登录以实现重新初始化其工作环境

    注意:

    若指定组设定了密码:

    (1)如果用户的附加组是要切换到的组名,那么不需要密码可以直接切换到指定组

    (2)如果用户的附加组不包含要切换的组名,那么需要输入密码才能切换到指定组

    若指定组没有设定密码,所有用户都不可以直接切换到指定组,root用户除外

    3.5权限管理命令

    chmod命令:

    chmod [OPTION]... MODE[,MODE]... FILE...
    chmod [OPTION]... OCTAL-MODE FILE...
    chmod [OPTION]... --reference=RFILE FILE...

    三类用户:

    u:属主

    g:属组

    o:其他

    a:所有

    (1)chmod [OPTION]... MODE[,MODE]... FILE...

    MODE表示法:

    赋权表示法:直接操作一类用户打的所有权限位;

    在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权

    u=

    g=

    o=

    a=

    授权表示法:直接操作一类用户的所有权限位r,w,x

    在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权

    u+,u-

    g+,g-

    o+,o-

    a+,a-

    (2)chmod [OPTION]... OCTAL-MODE FILE...

    使用十进制的数字进行授权

    (3)chmod [OPTION]... --reference=RFILE FILE...

    参考其他文件权限授权

    选项:

    -R:递归修改,对目录下的所有文件(包括子目录)都有效。

    注意:用户仅能修改属主为自己的文件的权限

    从属关系管理命令:chown,chgrp

    chown命令:

    chown [OPTION]... [OWNER][:[GROUP]] FILE...
    chown [OPTION]... --reference=RFILE FILE...

    选项:

    -R:递归修改,对目录下的所有文件(包括子目录)都有效

    --reference:参考其他文件属主属组进行修改属主和属组

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

    chgrp命令:

    chgrp [OPTION]... GROUP FILE...
    chgrp [OPTION]... --reference=RFILE FILE...

    思考一:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?

    不能修改此文件内容,但是能够删除此文件

    思考二:用户对目录有什么权限时,可以使用mv命令?

    x,执行权限

    umask命令:文件的权限反向掩码,遮罩码

    文件:

    666-umask

    目录:

    777-umask

    注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

    umask命令:

    umask:查看当前umask

    umask MASK:设置umask

    注意:此类设定仅对当前shell进程有效

  • 相关阅读:
    android -- eclipse 环境搭建
    android AVD坑(1) -- no images system installed for this target
    android AVD坑(1) -- no images system installed for this target
    简单的轮播
    C# 使用NPOI 处理Excel(Datable与Excel相互转换)
    C盘突然爆满
    IIS中 flv、swf 文件无法播放
    webservice 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下运行,将出现此问题
    window server 2008 安装Oracle10g
    ora-01033 oracle initialization or
  • 原文地址:https://www.cnblogs.com/self-discipline-xxc/p/10260542.html
Copyright © 2020-2023  润新知