在linux中管理用户和组的命令经常用的有:useradd、usermod、passwd、userdel、groupadd、groupmod、gpasswd、groupdel
今天我给大家介绍下这些命令的基本用法,大牛不要喷我,我是小白。
useradd:创建登录用户
语法 useradd [options] LOGIN 下面是参数的介绍:
-D 变更预设值。
-r: 创建系统用户
-u UID: 指定UID;
-g GID: 指定用户所属基本组,此组必须事先存在
-c 'COMMENT': 描述
-d 指定用户的主目录路径;此位置不能事先存在,否则,其用户相关配置文件将被复制/etc/skel
-s SHELL:设定用户的默认登录shell;
-G GID,...:指定所属的附加组多个用“,”分开;
-M: 不给用户创建家目录;
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
示例: 创建用户oracle1,所属附加组database和sql,ID号为3000, 家目录为/home/database.
[root@ocp ~]# groupadd database
[root@ocp ~]# groupadd sql
[root@ocp ~]# useradd oracle1 -G database,sql -u 3000 -d /home/database1 -m
[root@ocp ~]# tail -1 /etc/passwd
oracle1:x:3000:3000::/home/database1:/bin/bash
[root@ocp ~]# id oracle1
uid=3000(oracle1) gid=3000(oracle1) 组=3000(oracle1),503(database),504(sql)
usermod:用户属性修改
语法是 usermod [OPTION]... LOGIN
下面是参数的介绍:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录,修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
例子:
将aa添加到组11中: usermod -G 11 aa
修改aa的用户名为bb: usermod -l bb aa
锁定账号bb: usermod -L bb
解除对bb的锁定: usermod -U bb
passwd:给用户添加密码
语法:passwd [OPTION] [UserName]
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码; -s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
--stdin:从标准输出接收用户密码;例如:echo 'centospasswd' | passwd --stdin centos //设置centos用户的密码是centospasswd
知识点:用户的信息放在文件/etc/passwd 而密码放在文件 /etc/shadow中 用户和组文件里面都是每项用“:”隔开
/etc/passwd里面的介绍:oracle1:x:3000:3000::/home/database1:/bin/bash
oracle1 //用户名
X //口令、密码 占位密码在shadow
3000 //用户id(0代表root、普通新建用户6是从500开始,7是从1000开始)
3000 //所在组ID
:: //描述信息,备注。
/home/database1/ //用户主目录,家目录。
/bin/bash //用户缺省Shell
/etc/shadow里面的介绍:oracle1:!!:16673:0:99999:7:::
oracle1 //组名
$!$ //被加密的口令 !! 表示空密码,不能登录。
13801 //创建日期与1970.1.1 相对于Unix元年
0 //口令最短位数,0表示不限制
99999 //用户口令过期 99999表示没有限制
7 //到7天时提醒 过期提醒日期
* //禁用天数
* //过期天数
例子
[root@ocp ~]# passwd oracle1 //更改或者创建oracle1用户的密码
更改用户 oracle1 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 是回文
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。 //成功修改
[root@ocp ~]# passwd -d oracle1 //清空用户的密码
清除用户的密码 oracle1。
passwd: 操作成功
[root@ocp ~]# passwd -S oracle1 //查看用户的密码信息
oracle1 NP 2015-08-26 0 99999 7 -1 (密码为空。)
userdel 删除用户
语法:userdel [-r] USERNAME
参数:-r:删除用户的同时删除其家目录;
例子:
[root@ocp ~]# ls /home/aa -d /home/aa [root@ocp ~]# userdel -r aa [root@ocp ~]# ls /home/aa -d ls: 无法访问/home/aa: 没有那个文件或目录
groupadd 命令用于创建一个新的组
语法 groupadd(选项)(参数) 选项
-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500,7是小于1000;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。 参数 组名:指定新建工作组的组名。
实例 建立一个新组,并设置组ID:
groupadd -g 8000 tao
/etc/group文件中产生一个组ID(GID)是8000的组用户。
tao:x:8000:
groupmod命令更改群组GID或名称。
语法 groupmod(选项)(参数)
选项
-g<群组识别码>,修改使用的群组GID;
-o:重复使用群组识别码;
-n<新群组名称>:设置新的组名称。
[root@ocp ~]# groupmod -n tao1 tao
/etc/group 文件显示变为:
tao1:x:8000:
gpasswd命令是对组信息的修改工具,组文件信息在/etc/group和/etc/gshadow
语法 gpasswd(选项)(参数) 选项
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
实例 如系统有个orcle1账户, 把这个用户加入组tao1
[root@ocp ~]# gpasswd -a oracle1 tao1
Adding user oracle1 to group tao1
注意:添加用户到某一个组
可以使用usermod -G group_name user_name这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。
所以想要添加一个用户到一个组,同时保留以前添加的组时,
请使用gpasswd这个命令来添加操作用户:
gpasswd -a user_name group_name
groupdel命令用于删除指定的组
若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法 groupdel(参数) 参数 组:要删除的工作组名。
实例 groupadd aa //创建damon工作组
groupdel aa //删除这个工作组