用户和组管理类命令

用户和组管理类命令

useradd

useradd命令用于Linux中创建的新的系统用户

语法

    useradd(选项)(参数)

选项

    -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
    -d<登入目录>:指定用户登入时的启始目录;
    -D:变更预设值;
    -e<有效期限>:指定帐号的有效期限;
    -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
    -g<群组>:指定用户所属的群组;
    -G<群组>:指定用户所属的附加群组;
    -m:自动建立用户的登入目录;
    -M:不要自动建立用户的登入目录;
    -n:取消建立以用户名称为名的群组;
    -r:建立系统帐号;
    -s<shell>:指定用户登入后所使用的shell;
    -u<uid>:指定用户id。

参数

用户名:要创建的用户名

实例

  • 新建用户
    [root@localhost ~]#useradd centos
    [root@localhost ~]# id centos
    uid=1000(centos) gid=1000(centos) groups=1000(centos)
    
  • 新建用户加入组
    [root@localhost ~]# useradd test1 -g centos -G test,testuser //-g:加入主要组、-G:加入次要组
    [root@localhost ~]# id test1
    uid=1004(test1) gid=1000(centos) groups=1000(centos),1001(test),1002(testuser)
    
  • 新建用户,并制定设置ID
    [root@localhost ~]# useradd test2 -u 567
    [root@localhost ~]# id test2
    uid=567(test2) gid=1004(test2) groups=1004(test2)
    

    设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。


userdel

userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

语法 userdel(选项)(参数)

选项

    -f:强制删除用户,即使用户当前已登录;
    -r:删除用户的同时,删除与用户相关的所有文件。

参数

用户名:要删除的用户名。

实例

    userdel test1  //删除用户test1,但不删除其家目录及文件;
    userdel -r test2 //删除用户test2,其家目录及文件一并删除;

usermod

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。

语法

    usermod(选项)(参数)

选项

    -a:仅和-G一起使用,将用户增加到附属群组
    -c<备注>:修改用户帐号的备注文字;
    -d<登入目录>:修改用户登入时的目录;
    -e<有效期限>:修改帐号的有效期限;
    -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
    -g<群组>:修改用户所属的群组;
    -G<群组>;修改用户所属的附加群组;
    -l<帐号名称>:修改用户帐号名称;
    -L:锁定用户密码,使密码无效;
    -s<shell>:修改用户登入后所使用的shell;
    -u<uid>:修改用户ID;
    -U:解除密码锁定。

参数

登录名:指定要修改信息的用户登录名。

实例

  • 将test1 的附属群组改为linux
    [root@localhost ~]# usermod -G linux test1
    [root@localhost ~]# id test1
    uid=1004(test1) gid=1000(centos) groups=1000(centos),1003(linux)
    
  • 将test1 增加附属群组testuser
    [root@localhost ~]# usermod -aG testuser test1
    [root@localhost ~]# id test1
    uid=1004(test1) gid=1000(centos) groups=1000(centos),1002(testuser),1003(linux)
    
  • 将test1 所属群组改为 test
    [root@localhost ~]# usermod -g test test1
    [root@localhost ~]# id test1
    uid=1004(test1) gid=1001(test) groups=1001(test),1002(testuser),1003(linux)
    
  • 将test1 用户名改为testusers
    [root@localhost ~]# usermod -l testusers test1      
    [root@localhost ~]# id testusers
    uid=1004(testusers) gid=1001(test) groups=1001(test),1002(testuser),1003(linux)
    [root@localhost ~]# 
    
  • 锁定账号,使其密码无效
    usermod -L testusers
    
  • 解锁账号
    usermod -U testusers
    

groupadd

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法

    groupadd(选项)(参数)

选项

    -g:指定新建工作组的id;
    -r:创建系统工作组,系统工作组的组ID小于500;
    -K:覆盖配置文件“/ect/login.defs”;
    -o:允许添加组ID号不唯一的工作组。

参数

组名:指定新建工作组的组名。

实例

新建一个组,并设置组ID

    [root@localhost ~]# groupadd -g 1234 testgroup
    [root@localhost ~]# cat /etc/group | grep "testgroup"
    testgroup:x:1234:

groupdel

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法

groupdel(参数)

参数

组:要删除的工作组名。

实例

    root@localhost ~]# groupdel testgroup
    [root@localhost ~]# cat /etc/group | grep "testgroup"

groupmod

语法

    groupmod(选项)(参数)

选项

    -g<群组识别码>:设置欲使用的群组识别码;
    -o:重复使用群组识别码;
    -n<新群组名称>:设置欲使用的群组名称。

参数

组名:指定要修改的工作的组名。


综合实例

  • 创建组distro,其GID为2016;
    [root@localhost ~]# groupadd distro -g 2016
    [root@localhost ~]# cat /etc/group  | grep "distro"
    distro:x:2016:
    
  • 创建用户mandriva, 其ID号为1005;基本组为distro;
    [root@localhost ~]# useradd mandriva -u 1005 -g distro
    [root@localhost ~]# id mandriva
    uid=1005(mandriva) gid=2016(distro) groups=2016(distro)
    
  • 创建用户mageia,其ID号为1100,家目录为/home/linux;
    [root@localhost ~]# useradd mageia -u 1100 -d /home/linux
    [root@localhost ~]# cat /etc/passwd | grep "mageia"
    mageia:x:1100:1100::/home/linux:/bin/bash
    
  • 给用户mageia添加密码,密码为mageedu;
    [root@localhost ~]# echo "mageedu" | passwd --stdin mageia
    Changing password for user mageia.
    passwd: all authentication tokens updated successfully.
    
  • 删除mandriva,但保留其家目录;
    [root@localhost ~]# userdel mandriva
    
  • 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    [root@localhost ~]# useradd slackware -u 2002 -g distro -G peguin
    [root@localhost ~]# id slackware
    uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin)
    
  • 修改slackware的默认shell为/bin/tcsh;
    [root@localhost ~]# usermod slackware -s /bin/tcsh
    [root@localhost ~]# cat /etc/passwd | grep "slackware"
    slackware:x:2002:2016::/home/slackware:/bin/tcsh
    
  • 为用户slackware新增附加组admins;
    [root@localhost ~]# usermod slackware -aG admins
    [root@localhost ~]# id slackware
    uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin),2018(admins)

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92650

赞 (0)
eighteenxueighteenxu
上一篇 2018-03-18 18:37
下一篇 2018-03-18 19:55

相关推荐

  • 第六周 N21 总有刁民想害朕

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    %s/\(^[[:space:]]\)/#\1/ 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.…

    Linux干货 2016-08-08
  • Linux第三周学习博客作业

    对第三周学习的内容进行总结

    Linux干货 2017-12-17
  • 文件查找命令之find

    文件查找命令一共有两种,locate 和find ,那么他们在用法和功能上面有什么区别呢?     locate:查找速度快,模糊查找,遍历整个文件系统的目录到数据库中,然后在去数据库中查找,依赖于事先创建好的索引库,该数据库属于系统自动创建,定期自动更新,也可手动跟新,更新命令updatedb,更新数据库需要遍历整个根文件系统…

    Linux干货 2016-08-16
  • 正则表达式的概念和用法

    概念 正则表达式是对字符串操作的一种逻辑表达方式,很多情况下我们需要在茫众多的文件中找到我们需要的文件时,就需要用到正则表达式了 正则表达式就如同一个过滤器,能够筛选出希望得到的字符串。它可以检索、替换符合我们自己规定格式的所有文本。 正则表达式分两类: 基本正则表达式 扩展正则表达式 正则表达式的用法和选项 在Linux中,正则表达式通常会配合文本过滤工具…

    2017-06-10
  • 设计模式(八)装饰器模式Decorator(结构型)

    1. 概述        若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。       通过继…

    Linux干货 2015-07-03
  • 一个“蝇量级” C 语言协程库

    协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以…

    Linux干货 2016-08-15