zoukankan      html  css  js  c++  java
  • linux 用户操作

    查看用户

    通过使用/etc/passwd 文件,getent命令,compgen命令这三种方法查看系统中用户的信息。

    本文以/etc/passwd为例,其他方式参考:https://www.cnblogs.com/hongsandao/p/11333725.html

    Linux 系统中用户信息存放在/etc/passwd文件中。
    这是一个包含每个用户基本信息的文本文件。当我们在系统中创建一个用户,新用户的详细信息就会被添加到这个文件中。
    /etc/passwd 文件将每个用户的基本信息记录为文件中的一行,一行中包含 7 个字段。
    /etc/passwd 文件的一行代表一个单独的用户。该文件将用户的信息分为 3 个部分。

    * 第 1 部分:`root` 用户信息
    * 第 2 部分:系统定义的账号信息
    * 第 3 部分:真实用户的账户信息

    第一部分是 root 账户,这代表管理员账户,对系统的每个方面都有完全的权力。
    第二部分是系统定义的群组和账户,这些群组和账号是正确安装和更新系统软件所必需的。
    第三部分在最后,代表一个使用系统的真实用户。

    在创建新用户时,将修改以下 4 个文件。

    * `/etc/passwd`: 用户账户的详细信息在此文件中更新。
    * `/etc/shadow`: 用户账户密码在此文件中更新。
    * `/etc/group`: 新用户群组的详细信息在此文件中更新。
    * `/etc/gshadow`: 新用户群组密码在此文件中更新。
    

    使用 /etc/passwd 文件查看用户列表

    使用任何一个像cat、more、less 等文件操作命令来打印 Linux 系统上创建的用户列表。
    /etc/passwd是一个文本文件,其中包含了登录 Linux 系统所必需的每个用户的信息。它保存用户的有用信息,如用户名、密码、用户 ID、群组 ID、用户 ID 信息、用户的家目录和 Shell 。
    /etc/passwd文件将每个用户的详细信息写为一行,其中包含七个字段,每个字段之间用冒号 : 分隔:

    [root@localhost ~]# 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
    systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
    systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:997:995:User for polkitd:/:/sbin/nologin
    abrt:x:173:173::/etc/abrt:/sbin/nologin
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    dockerroot:x:996:993:Docker User:/var/lib/docker:/sbin/nologin

    7 个字段的详细信息如下。

    **用户名 (magesh): 已创建用户的用户名,字符长度 1 个到 12 个字符。
    **密码(x):代表加密密码保存在 `/etc/shadow 文件中。
    **用户 ID(506):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 root 用户保留的,UID 号 199 是为系统用户保留的,UID 号 100-999 是为系统账户和群组保留的。
    **群组 ID (507):代表群组的 ID 号,每个群组都要有一个唯一的 GID ,保存在 /etc/group文件中。
    **用户信息(2g Admin - Magesh M):代表描述字段,可以用来描述用户的信息(LCTT 译注:此处原文疑有误)。
    **家目录(/home/mageshm):代表用户的家目录。
    **Shell(/bin/bash):代表用户使用的 shell 类型。

    你可以使用 awk 或 cut 命令仅打印出 Linux 系统中所有用户的用户名列表。显示的结果是相同的。

    # awk -F':' '{ print $1}' /etc/passwd
    or
    # cut -d: -f1 /etc/passwd
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    ftp
    postfix
    sshd
    tcpdump
    2gadmin
    apache
    zabbix
    mysql
    zend
    rpc
    2daygeek
    named
    mageshm

    新增用户

    语法:useradd 选项 用户名

    -c:加上备注文字,备注文字保存在passwd的备注栏中。 
    -d:指定用户登入时的启始目录。
    -D:变更预设值。
    -e:指定账号的有效期限,缺省表示永久有效。
    -f:指定在密码过期后多少天即关闭该账号。
    -g:指定用户所属的群组。
    -G:指定用户所属的附加群组。
    -m:自动建立用户的登入目录。
    -M:不要自动建立用户的登入目录。
    -n:取消建立以用户名称为名的群组。
    -r:建立系统账号。
    -s:指定用户登入后所使用的shell。
    -u:指定用户ID号。需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

    创建账号meng

    #useradd -d /home/meng -m meng  #创建账号
    #passwd meng #修改密码

    如果想要创建的账号获取root权限,则需要修改sudoers文件

    chomd -v u+w /etc/sudoers      #修改sudoers文件为可修改状态
    vi /etc/sudoers #在root下面添加一行

     chmod -v u-w /etc/sudoers       #保存退出后,重新把文件设置为自读状态

    删除账号:

    userdel -r meng

    常用的选项是 -r ,它的作用是把用户的主目录一起删除。

    修改账号:

    修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

    修改已有用户的信息使用usermod命令,其格式如下:

    usermod 选项 用户名

    常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

    另外,有些系统可以使用选项:-l 新用户名

    这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

    例如:

    usermod -s /bin/ksh -d /home/z -g developer sam

    解释:此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z  用户组改为developer

  • 相关阅读:
    codevs 1213 解的个数(我去年打了个表
    176. [USACO Feb07] 奶牛聚会
    codevs 1515 跳
    codevs 1994 排队 排列组合+高精度
    poj 1811 Pallor Rho +Miller Rabin
    Miller_Rabin codevs 1702 素数判定2
    Lucas
    cos改ip
    用户名 不在 sudoers文件中,此事将被报告
    continue break
  • 原文地址:https://www.cnblogs.com/mengY/p/11949058.html
Copyright © 2011-2022 走看看