一、与用户管理相关的配置文件;
1、/etc/passwd有关账户的信息,包括UID、GID、用户名、用户目录及用户SHELL;
/etc/shadow包含用户密码
/etc/groups用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组。
/etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。
2、超级权限控制 sudo 的配置文件/etc/sudoers
beinan ALL=(root) /bin/chown, /bin/chmod
如果我们把第一个实例中的那行去掉,换成这行;表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,可以切换到任何用户招执行/bin/chmod 命令,通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod
如果换成这个例子呢?表示的是beinan 可以在任何可能出现的主机名的主机中,可以切换到root下执行 /bin/chown ,不需要输入beinan用户的密码;并且可以切换到任何用户下执行/bin/chmod 命令,但执行chmod时需要beinan输入自己的密码;通过sudo -l 来查看beinan 在这台主机上允许和禁止运行的命令;
3、添加用户规则文件 /etc/login.defs 和 /etc/default/useradd
二、添加用户工具和方法
1、添加用户工具有useradd和adduser ,这两个工具所达到的目的都是一样的。
useradd 不加参数选项时,后面直接跟所添加的用户名时,系统时读取添加用户配置文件/etc/login.defs和/etc/default/useradd文件,然后读取/etc/login.defs和/etc/default/useradd中所定义的规则添加用户;并向/etc/passwd和/etc/groups文件添加用户和用户组记录;当然/etc/passwd和/etc/groups的加密资讯文件也同步生成记录;同时发生的还有系统会自动在/etc/add/default中所约定的目录中建用户的家目录,并复制/etc/skel中的文件(包括隐藏文件)到新用户的家目录中;
如:useradd beinanlinux 通过more /etc/passwd | grep beinanlinux查询是否添加成功
useradd -c ChinaCpu -d /opt/longcpu -G linuxsir,root,beinan -s /bin/tcsh longcpu 添加用户longcpu ,真实名是ChinaCpu ,家目录设置在 /opt/longcpu ,是linuxsir,root,beinan 用户组成员, SHELL是tcsh
useradd -e 11/04/2005 cooler 注:添加用户cooler,并设置其有效期为2005年11月04日;
2、还可以通过修改/etc/passwd /etc/groups的办法来实现。
在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割,比如下面是我的系统中的/etc/passwd 的两行;
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:505:502:linuxsir open,linuxsir office,13898667715:/home/linuxsir:/bin/bash
beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
linuxsir:x:501:502::/home/linuxsir:/bin/bash
第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;请参看本文的UID的解说;
第四字段:GID;请参看本文的GID的解说;
第五字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
第六字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ;
3、添加用户组命令 groupadd
groupadd -g 666 google
三、passwd 设置或修改用户密码;
1、passwd 简单说明
passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;
[root@localhost ~]# passwd 注:没有加任何用户,我是用root用户来执行的passwd 表示修改root用户的密码;下面也有提示;
Changing password for user root.
New UNIX password: 注:请输入新密码;
Retype new UNIX password: 注:验证新密码;
passwd: all authentication tokens updated successfully. 注:修改root密码成功;
如果是普通用户执行passwd 只能修改自己的密码;
如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;
[root@localhost ~]# passwd beinan 注:更改或创建beinan用户的密码;
Changing password for user beinan.
New UNIX password: 注:请输入新密码;
Retype new UNIX password: 注:再输入一次;
passwd: all authentication tokens updated successfully. 注:成功;
2、chage 修改用户密码有效期限的命令
chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户
四、删除用户和用户组的工具, userdel和 groupdel 介绍;
1、userdel
userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有两个用户bnnb和lanhaitun,其家目录都位于/home目录中,现在我们来删除这两个用户;
[root@localhost ~]# userdel bnnb 注:删除用户bnnb,但不删除其家目录及文件;
[root@localhost ~]# ls -ld /home/bnnb 注:查看其家目录是否存在;
drwxr-xr-x 14 501 501 4096 8月 29 16:33 /home/bnnb 注:存在;
[root@localhost ~]# ls -ld /home/lanhaitun 注:查看lanhaitun家目录是否存在;
drwx------ 4 lanhaitun lanhaitun 4096 11月 5 14:50 /home/lanhaitun 注:存在;
[root@localhost ~]# userdel -r lanhaitun 注:删除用户lanhaitun,其家目录及文件一并删除;
[root@localhost ~]# ls -ld /home/lanhaitun 注:查看是否在删除lanhaitun 用户的同时,也一并把其家目录和文件一同删除;
ls: /home/lanhaitun: 没有那个文件或目录 注:已经删除;
2、groupdel的用法:groupdel 用户组
五、修改用户的工具介绍;
1、chfn 修改用户信息工具
chfn 用户名
[root@localhost ~]# chfn beinanlinux 注:更改用户beinanlinux的信息;
Changing finger information for beinanlinux.
Name []: BeiNan.Linux 注:用户全名BeiNan.Linux ,随便写一个就行;
Office []: ChinaDL
Office Phone []: 66666666
Home Phone []: 99999999
Finger information changed. 注:更改完成;通过finger beinanlinux查看修改结果
2、chsh 改变用户的SHELL类型;
finger beinanlinux |grep Shell 注:查看用户beinanlinux 所用的SHELL类型;
chsh -s /bin/ksh beinanlinux 注:更改beinanlinux所用的shell 为ksh
3、usermod 用户修改工具(极其强大)
usermod 不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod 如此看来就是能做到用户帐号大转移;比如我把用户A改为新用户B;
警告: usermod 最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令;修改用户的口令最好用passwd ;
4、userinfo 图形介面的修改工具;
userinfo 系统普通用户都能调用,但都是修改当前操作用户的;还是点鼠标完成吧,多点几下就OK了。
5、id工具 查看用户、用户所归属的用户组、UID 和GID 的查看
6、finger 用户名、电话、家目录、登录SHELL类型、真实姓名、空闲时间等的查询
7、goups 查询用户组
8、su切换到超级用户:su (su - root)
切换到普通用户:su - feisky