Linux用户和用户组管理命令

您所在的位置:网站首页 举例说明如何创建一个用户账号 Linux用户和用户组管理命令

Linux用户和用户组管理命令

2024-07-15 05:23| 来源: 网络整理| 查看: 265

如何来管理用户和用户组。

相关的管理命令汇总

用户管理相关命令useradd        添加用户adduser        添加用户userdel         删除用户passwd         为用户设置密码usermod       修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

 

用户组管理相关命令groupadd     添加用户组groupdel      删除用户组groupmod    修改用户组信息groups         显示用户所属的用户组newgrp        切换到相应用用户组

大家看了这么多的命令,可能会很头晕,其实在日常使用和维护中,我们常用的并不是很多,下面我们就把他们重新拆分组合,让学习变的很容易。

 

命令的具体使用 

1、增加新用户、编辑用户与删除用户

相关命令:useradd, passwd, usermod, userdel

新增用户useradd/adduser

语法:useradd [options] LOGINoptions有很多(可以用useradd –hlep 或者man useradd查看),我们简单介绍几个。

-d 目录       指定用户主目录,(默认是在/home目录下创建和用户名一样的目录)-g 用户组    指定用户所属的用户组(主组)-G 用户组   指定用户所属的附加组(这些组必需事先已经增加过了或者是系统中已经存在)-s Shell      指定用户的登录Shell-u UID        指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号-c 描述        指定一段注释性描述-m              使用者目录若不存在则自动建立(默认选项)

我们来看几个实例实例1,最简单的新增用户[root@yufei ~]# useradd opser_1[root@yufei ~]# passwd opser_1Changing password for user opser_1.New password:BAD PASSWORD: it is too simplistic/systematicBAD PASSWORD: is too simpleRetype new password:passwd: all authentication tokens updated successfully.

注:如果设置的密码过于简单的话,系统会给出上面的提示,其实密码已经设定了。这只是针对root来说的,如果是用户自己设置了过于简单的密码,系统是不会接收的。

[root@yufei ~]# grep opser_1 /etc/passwdopser_1:x:501:501::/home/opser_1:/bin/bash

用户和组的ID都是501,家目录和使用的SHELL都给出来了。注意,这两个ID可以是不同的。

[root@yufei ~]# grep opser_1 /etc/shadowopser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::用户的密码和关于密码的一些限制也很明白(不明白看上面的例子)

[root@yufei ~]# grep opser_1 /etc/group /etc/gshadow/etc/group:opser_1:x:501:/etc/gshadow:opser_1:!::

我们可以看到,在建立用户的同时,也建立了一个和用户同名的用户组

[root@yufei ~]# ls -a /home/opser_1/.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla

 

用户家目录下的内容[root@yufei ~]# ls -ld /home/opser_1/drwx——. 4 opser_1 opser_1 4096 Jan  7 14:41 /home/opser_1/ 

实例2,新增用户,并设置UID、组以及附加组并指定一个不可登陆的SHELL[root@yufei ~]# groupadd -g 600 opser.org[root@yufei ~]# groupadd user_group[root@yufei ~]# tail -n 4 /etc/groupyufei:x:500:opser_1:x:501:opser.org:x:600:user_group:x:601:

我们看到,增加的第一个opser.org用户组的时候,我限制了他的GID是600,而第二个没有限制就变成了601了。[root@yufei ~]# useradd -g user_group -G opser.org -u 580 -s /sbin/nologin opser_2[root@yufei ~]# passwd opser_2Changing password for user opser_2.New password:BAD PASSWORD: it is too simplistic/systematicBAD PASSWORD: is too simpleRetype new password:passwd: all authentication tokens updated successfully.

我对增加的用户opser_2做了一些限制,而且也对他设置了与opser_1一样的密码(其实这个密码设置了也没有什么用,因为我后面限制了他所使用的SHELL是/sbin/nologin,同样是无法登陆系统),我们来对比opser_1与opser_2这两个用户的相关文件

[root@yufei ~]# tail -n 2 /etc/passwdopser_1:x:501:501::/home/opser_1:/bin/bashopser_2:x:580:601::/home/opser_2:/sbin/nologin[root@yufei ~]# tail -n 2 /etc/shadowopser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::opser_2:$6$VZTnZmFj$hayn6ycBCy9Mnfpwi13pAUOquwOVTmC/NiUuBViMnCp4PhowNBeYuFsYZGe3flfYhH2GVJhimbDF5o9pn6E5h0:14981:0:99999:7:::[root@yufei ~]# tail -n 2 /etc/groupopser.org:x:600:opser_2user_group:x:601:

注:1、opser_1和opser_2这两个用户虽然密码都是一样,但经过加密后,在shadow中显示的依然是不同的。2、opser_2这个用户的UID和GID不再是用系统默认的,而是我们指定的。3、opser_2他的主组的GID是601,也就是user_gruop,同时在opser.org这个组中,也有opser_2这个成员。4、opser_2这个用户虽然指定了SHELL,但这个SHELL是个特殊的SHELL,是不能登陆系统的。这个(/sbin/nologin)SHELL一般是在增加系统帐户的时候常用。5、在建立用户的时候会以最后建立的用户UID为参考。如opser_2的UID是580,那么再建立一个用户的时候,就变成581了,而502~579这些就没有用户在使用,那么我想从503开始的话,要怎么来实现?可以通过加上-r参数或者是自己指定。关于其他的参数,请各位看官自己看帮助来研究。

和用户相关的其他调用文件

通过上面的两个例子,有没有朋友会有这样的疑问,在增加用户的时候,家目录里面的文件是从哪里来的?UID和GID参考了什么?还有shell是根据什么来的?

想知道这些问题,可以用man useradd来查看,你会发现,在这个帮助文件中,会有FILES那一段,除了我们上一节讲的四个文件外,还有

/etc/default/useradd           Default values for account creation.

/etc/skel/           Directory containing default files.

/etc/login.defs           Shadow password suite configuration.

看到了上面的这三个文件的说明,上面的问题是不是已经找到答案了!

想看看是如何规划的,那么就打开文件看看吧。/etc/default/useradd 通过useradd 添加用户时的规则文件[root@yufei ~]# vim /etc/default/useradd# useradd defaults file

GROUP=100                 #主组的GID也是从100开始的HOME=/home               #把用户的家目录建在/home中,这个目录也可以自己设定INACTIVE=-1                #是否启用密码过期后是否会失效,-1表示密码永远不会失效。如10,则代表过期10天后才失效。EXPIRE=                       #帐号终止日期,不设置表示不启用SHELL=/bin/bash          #所用SHELL的类型SKEL=/etc/skel              #用户家目录里面文件的参照位置。也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;CREATE_MAIL_SPOOL=yes    #创建用户的邮件池。相当于一个用户的邮箱

/etc/skel/ 增加用户时候,用户家目录下的文件来源。此目录下的文件都是隐藏文件。[root@yufei ~]# ls -la /etc/skel/total 36drwxr-xr-x.  4 root root  4096 Dec 15 22:41 .drwxr-xr-x. 96 root root 12288 Jan  7 13:40 ..-rw-r–r–.  1 root root    18 Jun 22  2010 .bash_logout-rw-r–r–.  1 root root   176 Jun 22  2010 .bash_profile-rw-r–r–.  1 root root   124 Jun 22  2010 .bashrcdrwxr-xr-x.  2 root root  4096 Jul 14 23:55 .gnome2drwxr-xr-x.  4 root root  4096 Dec 15 22:35 .mozilla

/etc/login.defs 创建用户时的一些规划。比如创建用户时,是否需要家目录,UID和GID的范围,用户的期限等等。[root@yufei ~]# vim /etc/login.defsMAIL_DIR        /var/spool/mail #创建用户时,要在目录/var/spool/mail中创建一个用户mail文件

PASS_MAX_DAYS   99999        #用户的密码不过期最多的天数PASS_MIN_DAYS   0            #密码修改之间最小的天数PASS_MIN_LEN    5            #密码最小长度PASS_WARN_AGE   7            #警告时间

UID_MIN                   500    #UID从500开始UID_MAX                 60000    #最大UID为60000

GID_MIN                   500    #GID从500开始GID_MAX                 60000    #最大GID为60000

CREATE_HOME     yes            #是否创用户家目录

UMASK           077            #创建用户家目录时候的默认权限限制

USERGROUPS_ENAB yes            #用userdel删除用户的时候,如果这个主组中没有其他用户,那么也把这个组给删除ENCRYPT_METHOD SHA512        #用户密码的加密方式为SHA512

 

通过上面的讲解,我想你已经深入了解了在linux系统中增加用户的过程了吧,这个过程就是:

在 /etc/passwd 里面建立一行与账号相关的数据,包括建立 UID/GID/家目录等;在 /etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码;在 /etc/group 里面加入一个与账号名称一模一样的组名;在 /home 底下建立一个与账号同名的目录作为用户家目录,且权限为 700从/etc/skel/中COPY相应的文件到用户的家目录最后通过passwd命令,把密码加密后写到/etc/shadow中

 

用户密码设置

 

上面我们着重讲了用户创建,没有太多的讲用户的密码设置。其实在Linux系统中,命令的作用就是改配置文件,而这个passwd命令就是把密码加密后写入/etc/shadow(二栏)中,我们也知道这个文件中的栏位有9栏,那么其它栏要如何通过passwd这个命令来改呢?看帮助吧

passwd –help格式:passwd [OPTION...] -l  :是Lock的意思,会将 /etc/shadow 第二栏最前面加上”!”使密码失效-u :与-l相对,是Unlock的意思-S :列出密码相关参数,即shadow文件的大部分信息-n :后面接天数,shadow的第4字段,不可修改密码天数-x :后面接天数,shadow的第5字段,多长时间内必须要修改密码-w :后面接天数,shadow的第6字段,密码过期前的警告天数-i  :后面接日期,shadow 的第7字段,密码失效日期

这些大家自己来实验吧,我除了密码用passwd设置外,其它的相关限制,我更习惯直接在/etc/shadow中修改。还有一个和passwd相似的命令,那就是chage大家也是自己研究吧!

在这里顺便也说一个技巧,就是我们常常会遇到这样一种情况:比如我下载了某个应用,但这个应该是人家集成好的,这时候别人会给你一个默认的用户和密码,第一次登陆的时候,只有重新设置密码后才登陆。其实这个功能的实现,就是改我们shadow中的第三栏,把这个数值改成0就OK了!有兴趣的朋友可以试试。

 

编辑用户usermod

新增用户已经搞定,但要是对用户的相关信息进行一下修改,除了通过改文件外,还有没有其他的方法了?当然有啊,命令啊,命令的最终目的也是改配置文件。那么下面就来看看如何通过usermod来修改用户的相关0信息。[root@yufei ~]# usermod -hUsage: usermod [options] LOGIN

-c :后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明-d :后面接账号的家目录,即修改/etc/passwd的第六栏-e :后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八栏-f  :后面接天数,修改shadow的第七栏-g :后面接主群组,修改/etc/passwd的第四个字段,即是GID的字段-G:后面接附加群组,修改这个使用者能够支持的群组,修改的是/etc/group-a :与 -G 合用,可增加附加群组的支持而非设定-l  :后面接账号名称。修改账号名称,/etc/passwd的第一栏-s :后面接Shell的文件,例如/bin/bash或/bin/csh等等-u :后面接 UID 数字,修改用户的UID /etc/passwd第三栏-L :暂时将用户的密码冻结,让他无法登入。其实就是在/etc/shadow的密码栏前面加上了“!”-U:将/etc/shadow 密码栏的“!”去掉

其实,这个usermod和useradd的用法非常相似,只是增加了用户锁定与解锁。我们看几个例子

修改用户的说明信息[root@yufei ~]# grep opser_1 /etc/passwdopser_1:x:501:501::/home/opser_1:/bin/bash[root@yufei ~]# usermod -c “opser.org exmple” opser_1[root@yufei ~]# grep opser_1 /etc/passwdopser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash

设置用户的过期日期[root@yufei ~]# grep opser_1 /etc/shadowopser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::[root@yufei ~]# usermod -e “2011-02-01″ opser_1[root@yufei ~]# grep opser_1 /etc/shadowopser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:我们就简单的给大家介绍这两个参数,其他的自己研究吧!

 

删除用户userdel

这个命令很简单,[root@yufei ~]# userdel -hUsage: userdel [options] LOGIN-f :强制删除,包括用户的一切相关内容,这个参数是危险的参数,不建议大家使用。详细说明看MAN-r :删除用户的家目录和用户的邮件池其实这个-r参数就是删除用户的相关配置文件中的信息用户账号/密码相关参数:/etc/passwd, /etc/shadow用户相关参数:/etc/group, /etc/gshadow用户个人文件数据: /home/username, /var/spool/mail/username

不给大家演示了,自己动手实践吧!

 

注:1、userdel -r 这个命令使用的时候,一定要确认这个用户的所有数据真的不再使用了。2、建议在使用这个命令之前,查找出这个帐户的所有数据(find / -user username),确认后再进行操作。

 

2、用户组管理

这也和上面的用户管理差不多,只是修改的文件(/etc/group, /etc/gshadow)不同

增加用户组groupadd

[root@yufei ~]# groupadd -hUsage: groupadd [options] GROUP-g gid :设置用户组,并指定相应的GID-r :这个参数和我们的useradd -r 是一样的道理这个命令的使用,我们前面已经涉及到了,也很简单。[root@yufei ~]# tail -n 4 /etc/group /etc/gshadow==> /etc/group /etc/gshadow /etc/group /etc/gshadow /etc/group /etc/gshadow /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/group /etc/gshadow /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/group /etc/gshadow



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3