• 【Linux】linux用户系统管理


      Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须拥有一个账号,然后以这个账号的身份进入系统。

      用户:使用linux系统的人。

      用户组:具有相同权限的一组用户。

      linux中的用户分为root用户和非root用户。非root用户即普通用户。当然也可以分三种用户身份,系统用户、 普通用户和根用户。

        1.根用户(超级用户):根用户权限最大,UID默认为0。
        2.系统用户: 系统运行时的一些特 殊用户,这类用户默认被限制登陆系统,但是一些进程需要使用这类用户运行,比如系统中的httpd进程就是使用用户apache运行的。这样是为了系统中系统服务由这些用户运行,更加安全。 它们的UID为1-999。
        3.普通用户:和系统用户不一样通常普通用户通过用户名和密码登录到系统,即管理员创建的用于日常工作而不能管理系统的普通用户,UID一般大于500。

    查看更用户和用户组相关的文件

    /etc/group:存储当前系统所有用户组的信息。每一行对应一个用户组信息。每一行用多个冒号:连接,作用也不同。

    [root@localhost data]# cat /etc/group
    root:x:0:
    bin:x:1:
    daemon:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    mem:x:8:
    kmem:x:9:
    wheel:x:10:xyy

    分别代表

    组名称  组命名占位符 组编号 组中用户名列表。

    我们看有些组中用户名列表是空的,说明这个用户组可能没有用户,当这个用户组只有一个用户且用户名和组名相同时候,可以省略。

      1. root用户组,组号一定是0。

      2. 组号1-499是系统预留的组号,比如给一些软件服务用的,mysql,httpd。

      3. 用户手动创建的组号是从500开始的。

      4. 组密码占位符都是用x来表示的。

    /etc/gshadow: 存储系统用户组的密码信息。

    [root@localhost data]# cat /etc/gshadow
    root:::
    bin:::
    daemon:::
    sys:::
    adm:::
    tty:::
    disk:::
    lp:::
    mem:::
    kmem:::
    wheel:::xyy
    cdrom:::
    mail:::postfix

    /etc/group文件有多少行 /etc/gshadow就有多少行,每一行都一一对应。

    [root@localhost data]# wc -l  /etc/group
    77 /etc/group
    [root@localhost data]# wc -l  /etc/gshadow
    77 /etc/gshadow

    组名称  组密码  组管理者 组中用户列表

    组密码为 * 代表组没有密码。组管理者尾款那么组里用户都可以管理这个用户组。组中用户列表和/etc/group里的组中用户列表一样。

    /etc/passwd:存储系统中所有用户的信息。

    [root@localhost data]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    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
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

     用户名  :  密码占位符  :  用户编号 :用户组编号 : 用户注释信息 :  用户主目录 : shell类型 (用来执行用户输入指令硬件接口,通常是/bin/bash)

     /etc/shadow : 存储系统所有用户密码信息。

    [root@localhost data]# cat /etc/shadow
    root:$6$xlxl/3ch$XPvzGYnvC.jk5y7NvQcbNO/8RZ6pLCFvFi79ceS7fXbffKEHG1tfRwbB/9UzApx6uTbM2B5T3I.PK9Aw3bBLr1:17350:0:99999:7:::
    bin:*:16372:0:99999:7:::
    daemon:*:16372:0:99999:7:::
    adm:*:16372:0:99999:7:::
    lp:*:16372:0:99999:7:::
    sync:*:16372:0:99999:7:::
    shutdown:*:16372:0:99999:7:::
    halt:*:16372:0:99999:7:::
    mail:*:16372:0:99999:7:::
    operator:*:16372:0:99999:7:::
    games:*:16372:0:99999:7:::
    ftp:*:16372:0:99999:7:::
    nobody:*:16372:0:99999:7:::

    添加修改组和用户


    批量添加用户

    https://www.cnblogs.com/webnote/p/5936250.html

    groupmod命令用于更改群组识别码或名称。

    语法:

         groupmod [-g <群组识别码> <-o>] [-n <新群组名称>][群组名称]

    参数

    • -g    <群组识别码>  设置欲使用的群组识别码。
    • -o  重复使用群组识别码。
    • -n   <新群组名称>  设置欲使用的群组名称。
    [root@localhost ~]# groupadd group_test
    [root@localhost ~]# tail -n 2 /etc/group
    song:x:1007:
    group_test:x:1008:
    [root@localhost ~]# groupmod -n group_test_new group_test
    您在 /var/spool/mail/root 中有新邮件
    [root@localhost ~]# tail -n 2 /etc/group
    song:x:1007:
    group_test_new:x:1008:

    Linux用户身份切换命令

    su(switch user)命令可以用来切换用户的。

    在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

    [song@localhost root]$ su - song
    密码:
    上一次登录:日 5月 27 18:58:30 CST 2018pts/0 上
    [song@localhost ~]$ whoami
    song

    切换到root用户

    [song@localhost ~]$ su -
    密码:
    上一次登录:日 5月 27 18:53:05 CST 2018从 192.168.199.192pts/0 上
    [root@localhost ~]# whoami
    root

    也可以使用exit

    [song@localhost ~]$ exit
    登出

     passwd命令后面不能加用户名

    [song@localhost ~]$ passwd song
    passwd:只有根用户才能指定用户名。

    禁止用户登录


     进入/etc/passwd文件将用户song后面改成/sbin/nologin,这样用户song就被禁止登陆了。

     

    也可以命令来修改这个文件

    [root@localhost dirIn]# usermod -s /sbin/nologin song
    [root@localhost dirIn]# tail -n 1 /etc/passwd    查看发现已经修改了
    song:x:1007:1007::/home/song:/sbin/nologin

     也可以用命令usermod来禁止用户。

    [root@localhost dirIn]# usermod  -L song

    song用户登录提示

    login as: song
    song@192.168.199.190's password:
    Access denied

    解锁用户

    [root@localhost dirIn]# usermod  -U  song

    删除用户

    userdel命令可以用于删除用户帐号及相关档案。
    语法:userdel [-r] 用户名
    参数:-r 用于彻底删除,用户HOME目录下的档案会被移除,在其他位置上的档案也将一一找出并删除,比如路径/var/mail/用户名 下的邮件。
    警告:userdel不允许你移除正在线上的使用者帐号。你必须kill此帐号现在在系统上执行的程序才能进行帐号删除。
    用法示例:
    彻底删除名为zhidao的用户:
    $ userdel -r zhidao

     查看当前用户及系统用户信息的一些命令


     who命令看当前正在登录的用户

    [root@localhost ~]# whoami
    root

     who命令查看当前系统登录了哪些用户

    [root@localhost ~]# who
    root     pts/0        2018-05-31 17:43 (192.168.199.192)
    song     pts/1        2018-05-31 17:45 (192.168.199.192)

    w命令用于显示目前登入系统的用户信息,以及他们正在执行的命令,下面最后列信息。

    [root@localhost ~]# w
     17:45:56 up  6:01,  2 users,  load average: 0.01, 0.02, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.199.192  17:43    4.00s  0.70s  0.42s w
    song     pts/1    192.168.199.192  17:45   55.00s  0.09s  0.09s -bash

     last命令用于显示用户最近登录信息。不加参数的last命令会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。

    [root@localhost ~]# last
    song     pts/1        192.168.199.192  Thu May 31 17:45   still logged in
    root     pts/0        192.168.199.192  Thu May 31 17:43   still logged in
    song     pts/2        192.168.199.192  Thu May 31 16:57 - 17:40  (00:43)
    song     pts/2        192.168.199.192  Thu May 31 16:57 - 16:57  (00:00)
    .........

     lastlog命令用于显示系统中所有用户最近一次登录信息,并格式化输出上次登录日志/var/log/lastlog的内容。

    [root@localhost ~]# lastlog
    用户名           端口     来自             最后登陆时间
    root             pts/0    192.168.199.192  四 5月 31 17:43:25 +0800 2018
    bin                                        **从未登录过**
    daemon                                     **从未登录过**
    adm                                        **从未登录过**
    lp                                         **从未登录过**
    sync                                       **从未登录过**
    shutdown                                   **从未登录过**
    halt                                       **从未登录过**
    mail                                       **从未登录过**
    operator                                   **从未登录过**
    games                                      **从未登录过**

    参数u可以指定某个用户

    [root@localhost ~]# lastlog -u song
    用户名           端口     来自             最后登陆时间
    song             pts/1    192.168.199.192  四 5月 31 17:45:02 +0800 2018
    您在 /var/spool/mail/root 中有邮件
    [root@localhost ~]# lastlog -u root
    用户名           端口     来自             最后登陆时间
    root             pts/0    192.168.199.192  四 5月 31 17:43:25 +0800 2018

    显示当前用户信息

    # id //显示当前用户ID
    uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t

    显示用户群组的ID

    # id -g
    0

    显示所有群组的ID

    # id -g
    0 1 2 3 4 5 6 10

    显示指定用户信息

    # id hnlinux

    http://man.linuxde.net/id

  • 相关阅读:
    批处理判断操作系统32位或64位,并注册服务
    VS 2008 快捷键
    VisualSVN Server导入Repository
    C++函数CString类常用函数
    委托和事件
    弄清楚类的访问符
    47-礼物的最大价值
    46-把数字翻译成字符串
    Github使用
    Hash算法相关
  • 原文地址:https://www.cnblogs.com/songgj/p/8867686.html
Copyright © 2020-2023  润新知