20 April 2014

在linux系统中,对用户和组的管理是通过id来实现的。用户的ID为UID,组ID为GID。root账户的UID=0,1-499之间的id被系统所保留,我们创建的普通账户,ID从500开始。

linux的组有基本组和附加组之分,一个账户只能加入一个基本组,但可以同时加入多个附加组,创建账户时,系统默认会创建 同名的基本组,并设置账户加入这个基本基本组。

创建账户


格式 : useradd [选项] 用户名称

选项:
    -c      设置账户的描述信息,一般为全称。
    -d      设置账户的家目录。
    -e      设置账户的失效时间。
    -g      设置账户的基本组。
    -G      设置账户的附加组。多个附加组使用逗号分隔。
    -u      指定账户的UID。
    -s      设置账户的登录shell。默认为bash。
    -M      不创建账户的家目录。

demo:
    useradd mark        //创建一个普通账户mark
    useradd -d  /home/dnzhu -g root -e 2013-12-29 -G bin,mark
    //创建一个dnzhu账户,所属root组,有效期到2013-12-29,附加组有bin,mark
    useradd -s /sbin/nologin -M nobody  
    //创建了一个不能登录的账户nobody

创建组


格式:groupadd [选项] 组名

    -g      设置组的GID.

demo:
    groupadd mark               //创建mark组
    groupadd -g 1000 dnzhu      //创建dnzhu组,并设置组id为1000

修改密码


格式:passwd [选项] 账户

选项:
    -a      报告所有账户的密码状态
    -d      情况账户密码。
    -l      锁定账户,root可用。
    -u      解锁账户。
    --stdin 从文件或管道读取密码。

demo:
    passwd          给当前账户设置新密码
    passwd root     给root设置密码。
    echo "dnzhu" | passwd --stdin dnzhu  从管道中读取密码给账户dnzhu。
    passwd -d dnzhu 清空账户密码 

修改账户信息


格式:usermod [选项] 账户名

选项:
    -d      修改账户家目录。
    -e      修改账户过期时间。
    -g      修改账户所属基本组。
    -G      修改账户所属附加组。
    -u      修改账户的uid。

demo:
    usermod -d /home/mark dnzhu
    usermod -e 2013-10-01 mark
    usermod -s /bin/bash nobody -d /home/nobody
    usermod -u 1001 mark

删除账户,组


格式:userdel [选项] 账户名

格式:groupdel [选项] 组名

选项:
    -r      删除账户以及家目录下的文件。
    
demo:
    userdel  mark    
    userdel  -r  mark 

    groupdel dnzhu

显示账户和组信息

格式:id 账户

id  dnzhu
id  root    

设置组密码

gpasswd  dnzhu      //设置dnzhu组的密码
gpasswd -A  dnzhu mark  //将dnzhu账户设置为mark组的管理员

账户信息文件位置

    /etc/passwd     保存账户信息
    /etc/shadow     保存账户密码的文件
    /etc/group      保存组信息
    /etc/gshadow    保存组密码的文件