美文网首页
day8-用户与组(1)

day8-用户与组(1)

作者: 恩楠 | 来源:发表于2019-08-05 16:39 被阅读0次

    Linux下的用户有什么用,或者说我们为什么要创建用户?

    • 1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行
    • 2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。

    用户存在哪儿?

      1. /etc/passwd:纪录用户信息,但是不记录密码
    [root@node2~]# head -1 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    

    /etc/passwd以:为分隔符,共可分为7列。

    第一列 第二列 第三列 第四列 第五列 第六列 第七列
    root x 0 0 root /root /bin/bash
    用户名 密码占位符 用户UID 组GID 注释信息 用户家目录 用户登陆shell
      1. /etc/shadow:密码信息。


        shadow解释
      1. 系统对用户的约定
    用户UID 系统中约定的含义
    0 超级管理员,最高权限,有着极强的破坏能力
    1~200 系统用户,用来运行系统自带的进程,默认已创建
    201~999 系统用户,用来运行用户安装的程序,所以此类用户无需登陆系统
    1000+ 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

    在CentOS7系统之前,UID1-499用于系统用户,而500+则用于普通用户。


    用户相关命令

    useradd:用于新增用户
    useradd常用选项及说明

    选项 解释
    -u 指定用户的UID
    -g 指定用户的默认组,只能有一个
    -G 指定用户的附加组,逗号隔开可以添加多个
    -d 指定要创建的用户的家目录
    -s 指定要创建用户的bash shell
    -c 指定要创建用户的注释信息
    -M 给创建的用户不创建家目录
    -r 创建系统账户,默认无家目录
    • 例1:创建ennan用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
    # 用groupadd添加相关的用户组
    [root@node2~]# groupadd students
    [root@node2~]# groupadd sa
    [root@node2~]# useradd ennan -u 5001 -g students -G sa -c "20190805" -s /bin/bash
    
    # 用id命令和查看/etc/passwd文件来确认用户是否创建成功
    [root@node2~]# id ennan
    uid=5001(ennan) gid=6669(students) groups=6669(students),6670(sa)
    [root@node2~]# grep "ennan" /etc/passwd
    ennan:x:5001:6669:20190805:/home/ennan:/bin/bash
    
    • 例2:创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统。
    # 使用-r可创建系统用户,默认不创建家目录
    [root@node2~]# useradd mysql -r -s /sbin/nologin
    [root@node2~]# id mysql
    uid=995(mysql) gid=995(mysql) groups=995(mysql)
    [root@node2~]# grep "mysql" /etc/passwd
    mysql:x:995:995::/home/mysql:/sbin/nologin
    

    usermod:用于更改用户信息
    usermod常用选项及说明

    选项 解释
    -a 更改用户组的时候,保存原有组不变,直接追加
    -m 保持原有的家目录配置
    -l 指定要修改的用户的登录名
    -u 指定用户的UID
    -g 指定用户的默认组,只能有一个
    -G 指定用户的附加组,逗号隔开可以添加多个
    -d 指定要创建的用户的家目录
    -s 指定要创建用户的bash shell
    -c 指定要创建用户的注释信息
    • 例1:将用户恩楠的UID改为9999,并添加附属组dba
    # 查看用户ennan的信息
    [root@node2~]# id ennan
    uid=5001(ennan) gid=6669(students) groups=6669(students),6670(sa)
    # 添加用户组dba
    [root@node2~]# groupadd dba
    [root@node2~]# usermod ennan -u 9999 -aG dba
    # 若不加-a选项,附属组不会保留原先设置的组,会直接变更为dba
    [root@node2~]# id ennan
    uid=9999(ennan) gid=6669(students) groups=6669(students),6670(sa),6671(dba)
    
    • 例2:将用户ennan的用户名修改为wu,家目录修改问/tmp/wu
    [root@node2~]# usermod ennan -md /tmp/ennan -l wu
    # 更改用户家目录时应加上-m选项,否者,原来的家目录配置不会生效
    [root@node2~]# id wu
    uid=9999(wu) gid=6669(students) groups=6669(students),6670(sa),6671(dba)
    # 更改用户家目录加了-m选项
    [root@node2~]# su - wu
    Last login: Mon Aug  5 15:43:49 CST 2019 on pts/1
    [wu@node2 ~]$ 
    [wu@node2 ~]$ 
    # 更改用户家目录,没加-m选项
    [root@node2~]# su - wu
    Last login: Mon Aug  5 15:45:28 CST 2019 on pts/1
    su: warning: cannot change directory to /tmp/liu: No such file or directory
    -bash-4.2$ 
    -bash-4.2$ 
    

    userdel:用于删除用户
    userdel常用选项及说明

    选项 解释
    -r 删除用户的同时删除他的家目录
    • 例1:删除用户user1,不删除用户家目录、mail和spool
    [root@node2~]# userdel user1
    
    • 例2:删除用户user1及其家目录
    [root@node2~]# userdel -r user1
    

    用户数据可能会放置于家目录内,-r选项删除用户时,会删除其家目录,慎用!!!


    用户相关其他命令

    who:目前登录系统的用户信息。

    [root@node2~]# who
    root     tty1         2019-08-05 08:26
    root     pts/0        2019-08-05 08:27 (192.168.16.44)
    

    whoami:当前登陆系统的用户是

    [root@node2~]# whoami
    root
    

    w:用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。

    [root@node2~]# w
     16:31:29 up  7:20,  3 users,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1                      08:26    8:04m  0.05s  0.05s -bash
    root     pts/0    192.168.16.44    08:27    3:01m  0.92s  0.92s -bash
    root     pts/1    192.168.16.44    14:42    1.00s  0.90s  0.03s w
    

    16:31:29 当前系统时间
    up 7:20当前系统运行的时长
    3 users有多少用户登陆了系统
    load average: 0.00, 0.01, 0.05当前系统负载状态。
    0.00:1分钟内平均负载
    0.01:5分钟内平均负载
    0.05:15分钟内平均负载
    JCPU指的是与该tty终端连接的所由进程占用的时间,不包括过去的后台作业时间
    PCPU指的是当前进程(即w项中显示的)所占用的时间。

    相关文章

      网友评论

          本文标题:day8-用户与组(1)

          本文链接:https://www.haomeiwen.com/subject/aoipdctx.html