• linux学习三————用户与权限管理


    用户管理常用命令

    useradd  新建用户(root权限)

    userdel   删除用户(家目录保留)

    参数-r(家目录删除)

    passwd  修改用户密码

    usermod 修改用户属性

    参数-d 修改

    usermod -d /home/w1 w(将家目录w改为w1)

    -g 修改用户组

    chage  修改用户属性

    id+用户名 查看用户

    家目录:/home/用户名

    /root  root管理

    /etc/passwd  用户被记录在该目录

    /etc/shadow  用户密码相关的目录

    组管理命令

    groupadd 新建用户组

    1.groupadd group1

    useradd user1

    usermod -g group1 user1

    2.useradd -g group1 user2

    groupdel 删除用户组

    临时切换用户

    su - +用户(root切换到普通不需要密码;反之需要)

    su-------切换用户

    su - username 使用login shell方式切换用户

    sudo  以其他用户身份执行命令(以自己的身份执行其他用户身份的命令)

    visudo  设置需要sudo的用户(组)

    用户和用户组的配置文件

    /root                        root用户的家目录

    /home/username    普通用户的默认家目录位置

    /etc/shadow            用户密码相关配置文件

    用户名称:加密的密码

    /etc/passwd             用户配置文件

    用户名:是否需要密码验证:uid:gid:家目录:用户登陆的命令解释器

    user1:x:1003:1003::/home/user3:/bin/bash

    /etc/group                用户组配置文件

    组的名称:组是否密码验证:组的gid:其他组设置


    用户信息文件:      /etc/passwd
    密码文件:            /etc/shadow
    用户组文件:        /etc/group
    用户组密码文件: /etc/gshadow
    用户配置文件:
       /etc/login.defs
       /etc/default/useradd
    新用户信息文件:/etc/skel
    登录信息:          /etc/motd
     
    ========================用户信息文件详解============================================
    我们先看一下用户信息文件里都放的什么
     
    [root@localhost ~]#  vi   /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    news:x:9:13:news:/etc/news:/sbin/nologin
    ........
    每一行内容存放一个用户的信息,每个用户信息有7部分组成
    root:x:0:0:root:/root:/bin/bash
    root        用户名         用户登录系统时使用的用户名
    x             密码            密码位
    2             UID            用户标识号
    2             GID            缺省组标识
    root     注释性描述      例如存放用户全名等信息
    /root         宿主目录       用户登录系统后的缺省目录
    /bin/bash   命令解释器    用户使用的Shell ,默认为bash
     
    UID ?
         关于上面的UID这里细说一下,其实决定用户是什么权限,是由UID号决定的。
         linux用户分为三种:
    超级用户:(root   UID=0)
    普通用户: (UID 500~60000)
    伪用户:  (UID  1~499)
        所以,我们可以修改用户的UID号来修改用户的类型,如果把root的UID号为500,那么root就变成了普通用户,如果把fnngj用户的UID改为0,那么它就拥有了root用户的超能力。
    [root@localhost ~]#  vi   /etc/passwd   进入之后修改,完了保存退出就OK了。
     
    伪用户?
         说到用户种类,又牵扯到一个伪用户,那么伪用户是干什么用的?
    1.伪用户与系统和程序服务相关
        bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户。
        mail、news、games、apache、ftp、mysql及sshd等,与linux系统的进程相关。
    2. 伪用户通常不需要或无法登录系统
    3. 可以没有宿主目录
     
    ==========================密码文件详解========================================
           用户密码文件,用户信息文件中留有密码位,为什么没密码了呢? 其实,最早的linux这个位置真的是放密码的,因为不全安,所以,就将密码单独存放了,现在只是用x表示这里有存放密码的位置。
        为什么要把密码放在/etc/shadow中
     
    [root@bogon /]# ls -l /etc/shadow    
    -r--------  1 root root 1021  2月 27 21:31 /etc/shadow          我可以看到这个文件只有管理员root有权限查看修改
     
    现在我们来看密码文件都放了什么?
    [root@bogon /]# more /etc/shadow
    root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7:::
    bin:*:15391:0:99999:7:::
    daemon:*:15391:0:99999:7:::
    adm:*:15391:0:99999:7:::
    lp:*:15391:0:99999:7:::
    sync:*:15391:0:99999:7:::
    shutdown:*:15391:0:99999:7:::
    halt:*:15391:0:99999:7:::
    mail:*:15391:0:99999:7:::
    news:*:15391:0:99999:7:::
    uucp:*:15391:0:99999:7:::
    operator:*:15391:0:99999:7:::
    games:*:15391:0:99999:7:::
    ..........................
     
    我们还以第一行为例进行分解。
    root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7:::
    root              用户名       用户登录系统时使用的用户名
    $1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.    密码     加密密码   MD5
    15391     最后一次修改时间    linux这里以1970年1月1日作为1,1971年1月1日就是366,依次类推到我修改密码的日期表示为15391了。
    0         最小时间间隔           这个字段代表要经过多久才可以更改密码。如果是“0”表密码可以随时更改。
    99999         最大时间间隔           于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。上面的99999,表示密码不需要重新输入,最好设定一段时间修改密码。确保系统安全
    7         密码变更期期限快到前的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。
    帐号失效期:     如果用户过了警告期没有重新输入密码,使得密码失效,而该用户在这个字段限定的时间内又没有向管理员反映,让帐号重新启用,那么这个帐号将暂时失效。
    帐号取消日期:  这个日期跟第三个字段一样,都是使用1970年以来的日期设定方法。这个字段表示:这个帐号在此字段规定的日期之后将无法再使用。这个字段通常用于收费服务系统中,可以规定一个日期让该帐号不能再使用。
    保留:     最后一个字段是保留的,看以后有没有新功能加入。
     
    疑问既然shadow文件保存了密码,而passwd文件中没有保存密码,为什么不把passwd文件中的密码位取消掉呢?
     
       其实,密码在存放之前,是先放在passwd文件中的,然后再转换到shadow文件中的。下面来验证下
    [root@bogon /]# grep root /etc/passwd  /etc/shadow
    /etc/passwd:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15391:0:99999:7:::
     
    [root@bogon /]# pwunconv      将密码回写
    [root@bogon /]# grep root /etc/passwd  /etc/shadow
    /etc/passwd:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:0:0:root:/root:/bin/bash
    /etc/passwd:operator:*:11:0:operator:/root:/sbin/nologin
    grep: /etc/shadow: 没有那个文件或目录
     
    [root@bogon /]# pwconv     转换到shdow文件中,只不过平时这个动作平时由linux自动完成。
    [root@bogon /]# grep root /etc/passwd  /etc/shadow
    /etc/passwd:root:x:0:0:root:/root:/bin/bash
    /etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
    /etc/shadow:root:$1$5DlBd7m8$tF.az6hWi27oaaFw7OpFs.:15456:0:99999:7:::
     
           linux对用户登录的验证就是通passwod文件来验证用户名是否存在,然后通过shadow文件来验证用户名对应的密码是否正确,那么理解了底层东西很有必要,我们可以不需要去学习创建用户命令,真接通过vim命令在两个文件中添加用户。这就是linux的魅力噢。不像windows一样,我们不但知其然,还知其所以然。
     

    查看文件权限的方法

    1.查看文件权限

        -rw-------1 root root 1523 sep 28 12:05 anaconda-ks.cfg

    类型       权限                所属用户和组                                                         文件名

    rw-------

    前三个rw-:用户对文件的权限

    中间三个---:组对文件的权限

    最后三个---:其他人对文件的权限

    类型

    - 普通文件

    d 目录文件

    b 块特殊文件

    c 字符特殊文件

    l 符号链接(小写L)

    f 命名管道

    s 套接字文件(小写S)

    权限

    1.普通文件:   

    字符 权限表示法:

    r 读

    w 写

    x 执行

    数字权限表示法:(8进制)

    r=4

    w=2

    x=1

    2.目录文件:

    x:进入目录

    rx:显示目录内的文件名(进入文件并查看文件名)

    wx:修改目录内的文件名(进入文件并修改文件名)

    3.文件权限的表示方法:

    -rw-r-xr-- 1 username groupname mtime filename

    -:普通文件

    rw-:文件属主的权限(u)

    r-x:文件属组的权限(g)

    r--:其他用户的权限(o)

    创建新文件有默认的权限,根据umask值计算,属主和属组更久当前进程的用户来设定

    4.修改权限的命令

    chmod:修改文件,目录权限

    chmod u+x /tmp/testfile

    chmod 755 /tmp/testfile

    chown:更改属主、属组

    chown 用户名:组名 文件名

    chown [-R] 账号名称      文件/目录

    chown [-R] 账号名称:组群  文件/目录

    chgrp:可以单独更改属组,不常用   chgrp  组群  文件名/目录 

    echo:显示信息,显示在终端

    echo 123 > afile(>输出重定向),将123输入到afile文件中

    linux下分三类用户:

    u  修改第一部分所有者

    g 修改第二部分所属组

    o  修改第三部分其他人

    a 修改所有部分

    修改权限符号:

    +  加权限

    -  减权限

    = 等于什么权限(设置权限)

    ls -ld +单个文件,查看单个文件的权限id

    ctrl+r 搜索之前写过的命令

    5.特殊权限

    SUID:用于二进制可执行文件,执行命令时取得文件属主权限su

    SGID:用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属主

    SBIT:用于目录,该目录下新建的文件和目录,仅root和自己可以删除

  • 相关阅读:
    PAT甲级1060 Are They Equal【模拟】
    PAT甲级1131 Subway Map【dfs】【输出方案】
    PAT甲级1052 Linked List Sorting
    Dev的GridControl控件选择框的使用
    关于MongoDB数据库中文件唯一性的问题
    docker-学习笔记5-存储卷
    docker-学习笔记4-网络
    docker-学习笔记3-镜像基础
    docker-学习笔记2-基础用法
    docker-学习笔记1-基础入门
  • 原文地址:https://www.cnblogs.com/anniedaniel/p/12445482.html
Copyright © 2020-2023  润新知