美文网首页linux
Bash编程016——用户与组(二)

Bash编程016——用户与组(二)

作者: 若梦儿 | 来源:发表于2019-01-08 17:25 被阅读18次

    Bash编程016——用户与组(二)

    用户与组的管理

    管理用户与组的命令工具

    1. useradd,添加新的用户
    2. usermod,修改已经存在的指定用户
    3. userdel,删除已经存在的指定用户
    4. groupadd,添加新的组
    5. groupmod,修改已经存在的组
    6. groupdel,删除已经存在的组

    这里给出一些简单的使用帮助,详细信息请参阅man手册。

    # 查看当前已经存在的所有用户
    cat /etc/passwd | cut -f 1 -d :
    # 输出如下:
    root
    daemon
    bin
    sys
    sync
    games
    man
    lp
    mail
    news
    uucp
    proxy
    www-data
    backup
    list
    irc
    gnats
    nobody
    systemd-timesync
    systemd-network
    systemd-resolve
    systemd-bus-proxy
    syslog
    _apt
    messagebus
    uuidd
    whoopsie
    avahi-autoipd
    avahi
    colord
    dnsmasq
    geoclue
    speech-dispatcher
    hplip
    kernoops
    pulse
    rtkit
    saned
    usbmux
    gdm
    ruo
    sshd
    

    16.1 useradd

    useradd是一个用于创建新用户的低级使用程序,为了添加新的用户,useradd命令必须编辑/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件,因此需要管理员权限。

    简单演示添加用户,添加用户后需使用passwd username来设置用户密码后才可以登录:

    # 添加用户
    sudo useradd tom
    # 查看新添加的用户和默认的私有组
    cat /etc/passwd | grep tom
    # 输出为:tom:x:1001:1001::/home/tom:
    cat /etc/group | grep tom
    # 输出如下:tom:x:1001:
    
    # 设置密码
    sudo passwd tom
    # 切换用户可以使用su username
    

    注意在上面的passwd中我们可以看到tom的主目录为/home/tom,但是在/home目录下我们找不到tom的子目录,这里需要手动创建或者使用useradd -m 选项自动创建。

    命令格式:

    • useradd [options] LOGIN
    • useradd -D
    • useradd -D [options]

    选项介绍(详细信息,请参阅man useradd):

    • -b,--base-dir BASE_DIR 若未使用 -d HOME_DIR,则使用默认的基目录。BASE_DIR 加上账户名就是主目录。如果没有使用 -m 选项,BASE_DIR 必须已经存在。 如果选项没有指定,useradd 将使用 /etc/default/useradd 中的 HOME 变量,或者默认的 /home。
    • -c,--comment COMMENT。任何字符串,通常是用户全名
    • -d,--home-dir HOME_DIR 将创建新用户,并使用 HOME_DIR 作为用户登陆目录的值。默认值是将 LOGIN 名附加到 BASE_DIR后面,并使用这作为登陆目录。目录不一定必须已经存在 HOME_DIR,但是会在需要时创建。
    • -D, --defaults 更改默认值
    • -g,--gid GROUP 设置用户的主组,GROUP为组名或GID,必须是已经存在的。
    • -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]用户还属于的附加组列表。每个组都用逗号隔开,没有中间的空格。这里的组受到了 -g 选项给定的组同样的限制。默认上,用户只属于初始组。
    • -m, --create-home 如果不存在,则创建用户主目录。

    16.2 usermod

    修改一个已经存在的用户账户。

    格式:usermod [选项] 用户名

    • -a,--append 将用户添加到附加组,只能和-G选项一起使用
    • -d,--home HOME_DIR 设置用户的主目录。如果加上 -m 选项,当前主目录的内容将会移动到新主目录中,如果不存在,则创建。
    • -m, --move-home 将用户的主目录移动到新位置。这个选项只有和 -d (或 --home) 选项组合使用时才有效。
    • -G, --groups GROUP1[,GROUP2,...[,GROUPN]]] 用户还属于的附加组列表。组之间使用逗号分隔,没有空格。这些组需要遵守和 -g 选项中给的组同样的限制。如果用户当前是一个组的成员,而这个组没有列在这里,用户将被从那个组里便删除。这个行为可以通过 -a选项修改,这使用户追加到给出的附加组列表中。

    16.3 userdel

    删除指定的用户账户和相关文件。

    格式:userdel [选项] 用户名

    选项介绍:

    • -r, --remove 用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。
    • -h,--help 显示帮助信息。

    16.4 groupadd

    groupadd命令用于创建一个新的用户组。

    命令格式:groupadd [选项] group

    选项:

    • -g,--gid GID 指定添加组的gid,GID是一个非负整数并且不能和已有组号重复,默认gid为当前最大gid+1
    • -r, --system 创建一个系统组。

    16.5 groupmod

    groupmod用于修改一个已经存在的组的相关信息。

    格式:groupmod [选项] GROUP

    选项:

    • -g,--gid GID 将原有的gid修改为新的GID
    • -n,--new-name 将原有的组名修改为新的组名

    16.6 groupdel

    groupdel删除一个已经存在的组。

    格式:groupdel [选项] group

    注:给出的组名必须存在。

    相关文章

      网友评论

        本文标题:Bash编程016——用户与组(二)

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