码迷,mamicode.com
首页 > 系统相关 > 详细

Linux用户和用户组以及相关命令(下)

时间:2015-08-28 02:30:57      阅读:357      评论:0      收藏:0      [点我收藏+]

标签:default   update   create   linux   用户组   

用户和组管理的相关命令介绍以及使用:

大体上涉及到的命令有:useradd,usermod,passwd,userdel,groupadd,groupmod,gpasswd,groupdel,chage,chsh,chfn,id,w, who,whoami,su,finger


1、useradd:create a new user or update default new user information.

    用法:

       useradd [options] LOGIN

         useradd -D

         useradd -D [options]

    参数:

        -r:创建系统用户 

[root@ST_server ~]# useradd -r tom   
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:497:497::/home/tom:/bin/bash
[root@ST_server ~]#

创建了一个tom的用户,在centos6环境下,系统用户范围是1-499,tom的userID为497,所以能看出这个tom属于系统用户


        -u:指定用户UID号码,这个号码是唯一的

[root@ST_server ~]# useradd -u8000 tom
Creating mailbox file: File exists
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:8000:8000::/home/tom:/bin/bash

通过-u指定为8000创建了用户tom,我们能发现创建之后的tom的userID为8000


        -g:指定用户所属基本组,并且这个组必须预先存在

[root@ST_server ~]# useradd -g huangyisan tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:506:502::/home/tom:/bin/bash
[root@ST_server ~]# cat /etc/group | grep 502
huangyisan:x:502:huangyisan1,huangyisan3

通过-g参数将tom指定为huangyisan这个组为主组,cat信息能发现tom的GID为502,而502对应的组是huangyisan这个组,说明-g生效。同时需要注意,在group文件中,huangyisan这个组内,第四段内并不存在tom。


        -G:指定用户所属的附属组,并且这个组必须预先存在

[root@ST_server ~]# useradd -G huangyisan tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:506:506::/home/tom:/bin/bash
[root@ST_server ~]# cat /etc/group | grep huangyisan
huangyisan:x:502:huangyisan1,huangyisan3,tom

通过-G对 tom用户指定了附属组为huangyisan,然后我们通过passwd查看,发现tom的GID并没变成502,说明tom的主组还是保留为tom;查看group信息,huangyisan组的末尾部分,多了tom,说明tom成为了huangyisan组中的附属成员


-g和-G还是存在区别的,通过上面两个例子比较可以得到答案。一个用户会同时拥有主组权限和附属组的权限,但一个用户只能属于一个主组,可以属于多个附属组。


        -c:给添加的用户指定别名,该别名可以是注释信息

[root@ST_server ~]# useradd -c "mage jiaoyu" tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:506:506:mage jiaoyu:/home/tom:/bin/bash

通过-c指定别名后,在passwd文件内第五部分信息内多出了mage jiaoyu的commit。


        -d:指定用户的家目录

[root@ST_server ~]# useradd -d /home/tom1 tom
[root@ST_server ~]# ls /home/tom1/ 
[root@ST_server ~]# ls /home/tom1/ -a
.  ..  .bash_logout  .bash_profile  .bashrc
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:506:506::/home/tom1:/bin/bash

通过-d将tom用户的家目录指定为/home/tom1下面,查看passwd文件,发现tom的家目录是/home/tom1,;同时进入家目录ls -a我们能够发现tom用户的环境变量已经被添加进来了。这些环境变量是从/etc/skel下面复制到用户的家目录内的。有效的利用/etc/skel可以在创建用户的时候节约大把时间,比如定制化用户的环境变量


        -s:指定用户使用的shell环境

[root@ST_server ~]# useradd -s /bin/csh tom
[root@ST_server ~]# !cat
cat /etc/passwd | grep tom
tom:x:506:506::/home/tom:/bin/csh

通过-s指定了tom用户的shell环境为csh,通过passwd的最后一个部分能看到是csh了,默认不指定则为/bin/bash。在/etc/shells下面记录了当前可用所有shell的环境。


       -M:不给用户创建家目录

[root@ST_server ~]# useradd -M tom
[root@ST_server ~]# !cat
cat /etc/passwd | grep tom
tom:x:506:506::/home/tom:/bin/bash
[root@ST_server ~]# ls /home/tom
ls: cannot access /home/tom: No such file or directory

通过-M指定创建tom,在passwd中的第六个部分是存在tom的家目录的,但是ls /home/tom发现查看并没有这个目录。


       -p:给用户设定密码,但这个密码是加密后的密码

[root@ST_server ~]# useradd -phuangyisan tom
[root@ST_server ~]# cat /etc/shadow | grep tom
tom:huangyisan:16658:0:99999:7:::

通过-p给tom用户指定了huangyisan的密码,去查看shadow文件,发现huangyisan已经是被加密后的密码了。之后通过用户名为tom,密码为huangyisan登陆,发现无法登陆。


2、usermod:usermod - modify a user account.

    用法:

        usermod [options] LOGIN

     参数:

        -u:重新指定用户UID,该UID必须唯一

[root@ST_server ~]# cat /etc/passwd| grep tom
tom:x:506:506::/home/tom:/bin/bash
[root@ST_server ~]# usermod -u 605 tom
[root@ST_server ~]# cat /etc/passwd| grep tom
tom:x:605:506::/home/tom:/bin/bash

原先tom的UID为506,通过-u将tom的UID修改成了605


        -g:重新指定用户GID,该GID必须已经存在

[root@ST_server ~]# cat /etc/passwd| grep tom
tom:x:605:506::/home/tom:/bin/bash
[root@ST_server ~]# usermod -g 502 tom
[root@ST_server ~]# cat /etc/passwd | grep tom  
tom:x:605:502::/home/tom:/bin/bash

原先tom的GID为506,通过-g将tom的GID修改成了502


        -G:重新指定用户所属组id,该所属组id必须已经存在

[root@ST_server ~]# cat /etc/group | grep huangyisan
huangyisan:x:502:huangyisan1,huangyisan3,tom
huangyisan1:x:503:
huangyisan3:x:505:
[root@ST_server ~]# usermod -G 503 tom
[root@ST_server ~]# cat /etc/group | grep huangyisan
huangyisan:x:502:huangyisan1,huangyisan3
huangyisan1:x:503:tom
huangyisan3:x:505:

原先tom存在于502的huangyisan的所属组中,通过-G指定后,将tom划分到了503的huangyisan1的所属组中。

还没完

[root@ST_server ~]# usermod -a -G 502 tom
[root@ST_server ~]# cat /etc/group | grep huangyisan
huangyisan:x:502:huangyisan1,huangyisan3,tom
huangyisan1:x:503:tom
huangyisan3:x:505:

结合-a参数,可以让tom同时存在与两个所属组中,即502和503。


        -s:重新指定用户shell模式,该shell必须存在与/etc/shells里面

[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502::/home/tom:/bin/bash
[root@ST_server ~]# usermod -s csh tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502::/home/tom:csh

原先tom的shell模式为bash,通过-s指定后,成了csh


        -c:重新指定用户commit别名

[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502::/home/tom:csh
[root@ST_server ~]# usermod -c "mage jiaoyu" tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502:mage jiaoyu:/home/tom:csh

原先tom的commit为空,通过-c指定后成了mage jiaoyu


        -d:重新指定用户家目录

[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502:mage jiaoyu:/home/tom:csh
[root@ST_server ~]# usermod -d /home/tom1 tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502:mage jiaoyu:/home/tom1:csh
[root@ST_server ~]# ls -a /home/tom1
ls: cannot access /home/tom1: No such file or directory

原先tom的家目录为/home/tom,通过-d指定后,成为了/home/tom1,但是该目录实际上并不存在

还没完

[root@ST_server ~]# !cat  
cat /etc/passwd | grep tom
tom:x:605:502:mage jiaoyu:/home/tom:csh
[root@ST_server ~]# usermod -m -d /home/tom1 tom
[root@ST_server ~]# cat /etc/passwd | grep tom
tom:x:605:502:mage jiaoyu:/home/tom1:csh
[root@ST_server ~]# ls -a /home/tom1/
.  ..  .bash_logout  .bash_profile  .bashrc

对原先命令加上-m参数,则能将原先家目录下所有问题件搬移到新的家目录,同时原先的家目录删除。

Linux用户和用户组以及相关命令(下)

标签:default   update   create   linux   用户组   

原文地址:http://huangyisan.blog.51cto.com/6925110/1689041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!