LINUX-用户和用户组管理

用户和用户组管理

用户相关文件

1/etc/passwd       用户信息文件

root:x:0:0:root:/root:/bin/bash

 第一列:用户名

 第二列:密码位

 第三列:用户ID

超级用户UID。用户UID0,代表这个帐号是管理员帐号。Linux把普通用户升级成为管理员只需要把用户的UID修改成为0就可了,这点和windows是不同的。建议建立多个管理员帐号。

1-499        系统用户(伪用户)UID1-499范围内的用户是不能登录系统的,而是用来运行系统或服务的。其中1-99是系统保留的帐号,系统自动创建。100-499是预留给用户创建系统帐号的。

500-65535        普通用户UID。建立的普通用户UID500开始,最大到65535。这些用户足够用了,但是如果不够也不用害怕,2.6.x内核以后的Linux系统用户UID已经可以支持232这么多了。

第四列:         ID         GID添加用户时,如果不指定用户所属的初始组,那么会建立和用户相同的组

第五列:         用户说明

第六列:         用户家目录

第七列:         登录shell         /bin/bash

         2/etc/shadow      影子文件

root:$6$QO0RNjGP$S2mJn9MlDI85lGmHykavrRN6uWjT4qZf/vzW.IuyE7VB5G41PhrB8iT7NkzdQrcOJshqkYr9FUlgBGZJZXcKH0:16566:0:99999:7:::

 第一列:         用户名

第二列:    加密密码(可以在密码位前加“!”或者“*”改变加密值让密码暂时失效

使用户无法登录,达到暂时禁止用户登录的效果。注伪用户的密码都

“!!”“*”,代表没有密码是不能登录的)

第三列:         密码最近更改时间,197011日是作为标准时间

         时间戳转日期

[root@localhost ~]# date -d "1970-01-01 15775 days"

2013 03 11星期一 00:00:00 CST

         日期转时间戳

[root@localhost ~]# echo $(($(date--date="2013/03/11" +%s)/86400+1))

15775

第四列:         两次密码修改时间间隔(和第3字段相比)

第五列:         密码有效期(和第3字段相比)

第六列:         密码修改到期前的警告天数(和第5字段相比)

第七列:         密码失效时间(这里同样要写时间戳,也就是197011日进行时间换算。如果时间超过了失效时间,就算密码没有失效也不能使用)

 第九列:         保留

         3/etc/gshadow    组信息文件

root:::root

第一列:         组名

第二列:         组密码位

第三列:         GID

第四列:         此组中支持的其他用户,附加组是此组的用户

初始组:         每个用户初始组只能有一个,一般都是和用户名相同的组作为初始组

附加组:         每个用户可以属于多个附加组。要把用户加入组,都是加附加组

         4、组密码文件

         如果给用户组设定了组管理员,并给该用户组设定了组密码,组密码就保存在这个文件当中。组管理员就可以利用这个密码管理这个用户了。

         5、用户的家目录

[root@localhost ~]# cd /home/

         6、用户邮箱目录

         这个邮箱在/var/spool/mail/目录当中,例如:user用户的邮箱就是/var/spool/mail/user文件

         7、用户模板目录

/etc/skel/

用户管理命令

添加用户

[root@localhost ~]# useradd 用户名(user

手工删除用户

手工删除用户实验:手工删除,如果可以正常建立用户,证明用户删除干净。

[root@localhost ~]# vi /etc/passwd     #找到user列删除整列

[root@localhost ~]# vi /etc/shadow    #找到user列删除整列

[root@localhost ~]# vi /etc/group       #找到user列删除整列

[root@localhost ~]# vi /etc/gshadow    #找到user列删除整列

[root@localhost ~]#cd /home /             #home目录下删除user目录

[root@localhost ~]# cd /var/spool/mail/  #mail目录下删除user目录

手工指定选项添加用户

[root@localhost ~]# groupadd wulaoer

#先手工添加wulaoer用户组,因为一会要把wulaoer用户的初始组指定过来,如果不事先建立,会报错用户不存在。

[root@localhost ~]# useradd -u 550 -g wulaoer -G root -d /home/wulaoer-c "test user" -s /bin/bash wulaoer

#建立用户wulaoer的同时指定了UID(550),初始组(wulaoer),附加组(root),家目录(/home/wulaoer,用户说明(test user)和用户登录shell/bin/bash

[root@localhost ~]# grep "wulaoer" /etc/passwd /etc/shadow/etc/group

#同时查看三个文件

/etc/passwd:wulaoer:x:550:500:test user:/home/wulaoer:/bin/bash

#用户的UID、初始组、用户说明、家目录、登录shell都和命令手工指定的一样

/etc/shadow:wulaoer:!!:16554:0:99999:7:::

#wulaoer用户还没有设定密码

/etc/group:root:x:0:wulaoer

#wulaoer用户加入了root组,root组是wulaoer用户发附加组

/etc/group:wulaoer:x:500:

#GID500的组是wulaoer

[root@localhost ~]# ll -d /home/wulaoer/

drwx------. 3 wulaoer wulaoer 4096 4  29 18:52 /home/wulaoer/

#家目录也建立了,不需要手工添加家目录

useradd命令

useradd   选项         用户名

选项:

         -u      550          指定UID

        -g      组名         指定初始组 不要手工指定

        -G     组名         指定附加组,把用户加入组,使用附加组

        -c      说明         添加说明

        -d      目录         手工指定家目录,目录不需要事先建立

        -s      shell          /bin/bash

useradd  –G  user1  aa 添加用户aa,指定附加组为user1

4)useradd默认值

useradd 添加用户时参考的默认值文件主要有两个,分别是/etc/default/useradd

/etc/login.defs

/etc/default/useradd

[root@localhost ~]# vi /etc/default/useradd

  1 #useradd defaults file

  2GROUP=100

#这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是GID100的这个用户组。目前我们采用的机制私有用户组机制

  3HOME=/home

#用户家目录默认位置,所有所有新建用户的家目录默认都是在/home/

  4INACTIVE=-1

#密码过期后宽限天数,也就是/etc/shadow文件的第七个字段。如果是天数,比如10代表密码过期后10天后失效;如果是0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里是默认值是-1,所以所有新建用户的密码都不会失效。

  5EXPIRE=

密码失效时间,也就是/etc/shadow文件的第八个字段。也就说用户到达这个日期后直接失效。这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。

  6SHELL=/bin/bash

这个选项就是用户的默认shell的。/bin/bashLinux的标志shell,所以所有新建立的用户默认都具备shell赋予的权限。

  7SKEL=/etc/skel

这个选项是定义用户的模版目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中。

  8CREATE_MAIL_SPOOL=yes

这个选项定义是否给新建用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spool/mail/下和用户名相同。

/etc/login.defs

[root@localhost ~]# vi /etc/login.defs

#这个文件有些注释,把注释删除掉,文件内容就变成下面这个样子

MAIL_DIR        /var/spool/mail

新建用户的默认邮箱位置。

PASS_MAX_DAYS   99999

密码的有效期,也就是/etc/shadow文件的第五个字段。代表多少天之后必须修改密码,默认是99999

PASS_MIN_DAYS   0

两次密码的修改间隔时间,也就是/etc/shadow文件的第四个字段。代表第一次修改密码之后,几天后才能再次修改密码。默认值是0

PASS_MIN_LEN    5

代表密码的最小长度,默认不小于5位。但是用户登录时已经被PAM模块取代,所以这个选项并不生效。

PASS_WARN_AGE   7

密码修改到期前的警告天数,也就是/etc/shadow文件的第六个字段。代表密码到底有效期前多少天开始进行报警提醒,默认值是7天。

UID_MIN                   500

UID_MAX                 60000

代表创建用户时,最小UID和最大UID的范围。从2.6.x内核开始,Linux用户的UID最大支持232这么多,但是真正最大使用时最大范围是60000。还要注意如果手工指定了一个用户的UID550,那么下一个创建的用户的UID就会从551开始,哪怕500-549之间的UID没有使用(小于500UID是给伪用户预留的)。

GID_MIN                   500

GID_MAX                 60000

GID的最大值和最小值之间的范围。

CREATE_HOME     yes

建立用户时是否自动建立用户的家目录,默认是建立

UMASK           077

建立是用户家目录的默认权限,因为umask值是077,所以新建的用户的家目录的权限是700umask的具体作用和修改方法可以参考权限设定。

USERGROUPS_ENAB yes

使用userdel删除用户时,是否删除用户的初始组,默认是删除。

ENCRYPT_METHOD SHA512

指定Linux用户的密码使用SHA512散列模式加密,这是新的密码加密模式,原先是Linux只能用DESMD5方式加密

设定密码

passwd    用户名

passwd    改变root密码

passwd    root           改变root密码

passwd    选项         用户名

选项:

  --stdin             允许管道符入密码         echo “123456” | passwd –stdin user2

  -l                     锁定用户密码,用户不允许登录

  -u                    解锁

      3、用户信息修改              修改已经存在的用户信息

           usermod   -u   -G     -c      -d      -s      用户名

            注意:不要修改已经存在的用户的初始组

               usermod           -L()        用户名     锁定用户

               usermod           -U()       解锁

               usermod           -l       新名         旧名         用户改名

4、删除用户

 usermod         -r      用户名

 -r    连带家目录一起删除

 5、添加组

      groupadd          组名

 6、删除组

      groupdel           组名         注:必须是空组

7、把已经存在的用户加入组

      usermod    -G     组名         用户名

       gpasswd   -a      用户名     组名                   用户加入组

       gpasswd   -d      用户名     组名                   把用户从组中删除

用户相关命令

Id      用户名              显示用户发UID,初始组,和附加组

Su     -        用户名     切换用户身份

连带环境变量一起切换

改变有效组的命令

假设aa用户即属于aa组,也属于group1组,如果有效组是aa组,那么aa用户建立文件时,文件默认属组是aa组。如果有效组是group1组,那么aa用户建立文件时,文件默认属组是group1

 

aa身份登录:

newgrp    group1     aa必须属于group1组,改变aa的有效组为group1  aa创建的新文件,默认属组是group1,而不再是aa

用户权限赋予

/test                   目录,要求aabbcc用户对此目录有rwx。其他人没有权限

groupaddtestgrp              建立组

gpasswd    -a      aa     testgrp              aabbcc加入组

                            bb

                           cc

chmod      770      /test                   修改组权限

chgrp        testgrp     /test                   修改属组


本文出自 “吴老二” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。