您的位置:首页 > 运维架构 > Linux

浅谈Linux用户权限管理之二(用户管理工具)

2011-03-31 14:58 579 查看
一.添加、切换、删除用户组命令groupadd/newgrp/groupdel

1.groupadd命令

用来新建一个用户组。语法格式为:

groupadd [-g -o] gid group

各个选项具体含义如下:

-g:指定新建用户组的GID号,该GID号必须唯一,不能和其它用户组的GID号重复。

-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例如:

创建一个linuxfans的用户组和一个fanslinux用户组,GID分别为1020和1030

[root@localhost ~]# groupadd -g 1020 linuxfans

[root@localhost ~]# groupadd -g 1030 fanslinux

[root@localhost ~]# more /etc/group|grep linuxfans

linuxfans:x:1020:

[root@localhost ~]# more /etc/group|grep fanslinux

fanslinux:x:1030:

2.newgrp命令

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限,newgrp主要用于在多个用户组之间进行切换,语法格式为:

newgrp <用户组>

例子:下面通过实例讲述newgrp的用法:

首先建立了3个用户组group1、group2和group3.

[root@localhost ~]# groupadd group1

[root@localhost ~]# groupadd group2

[root@localhost ~]# groupadd group3

下面创建了一个用户user1,同时指定user1的主用户组为group1,附加用户组为group2和group3

[root@localhost ~]# useradd -g group1 -G group2,group3 user1

[root@localhost ~]# more /etc/group|grep user1

group2:x:501:user1

group3:x:502:user1

下面是对用户user1设置密码

[root@localhost ~]# passwd user1

Changing password for user user1.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

下面是切换到user1用户下,通过newgrp切换用户组进行的一系列操作,从中可以看出newgrp的作用。

[root@localhost ~]# su - user1

[user1@localhost ~]$ whoami

user1

[user1@localhost ~]$ mkdir user1_doc

[user1@localhost ~]$ newgrp group2

[user1@localhost ~]$ mkdir user2_doc

[user1@localhost ~]$ newgrp group3

[user1@localhost ~]$ mkdir user3_doc

[user1@localhost ~]$ ll

total 12

drwxr-xr-x 2 user1 group1 4096 Oct 24 01:18 user1_doc

drwxr-xr-x 2 user1 group2 4096 Oct 24 01:18 user2_doc

drwxr-xr-x 2 user1 group3 4096 Oct 24 01:19 user3_doc

[user1@localhost ~]$

3.groupdel命令

表示删除用户组,语法格式为:

groupdel [群组名称]

当需要从系统上删除用户组时,可用groupdel指令来完成这项工作。如果该用户组中仍包括某些用户,则必须先删除这些用户后,然后才能删除用户组。

例如:删除linuxfans这个用户组

[root@localhost ~]# groupdel linuxfans

二. 添加、修改和删除用户命令useradd/usermod/userdel

1.useradd建立用户的过程

useradd不加任何参数创建用户时,系统首先读取添加用户配置文件/etc/login.defs和/etc/default/useradd,根据这两个配置文件中定义的规则添加用户,然后会向/etc/passwd和/etc/group文件添加用户和用户组记录,同时/etc/passwd和/etc/group对应的加密文件也会自动生成记录,接着系统会自动在/etc/default/useradd文件设定的目录下建立用户主目录,最后复制/etc/skel目录中的所有文件到新用户的主目录中,这样一个新的用户就建立完成了。

2.useradd的使用语法

useradd语法的一般格式为:

useradd [-u uid [-o]] [-g group] [-G group,...]

[-d home] [-s shell] [-c comment]

[-f inactive] [-e expire ] name

各个选项具体含义如下:

 -u uid:即用户标识号,此标识号必须唯一。

 -g group:指定新建用户登录时所属的默认组,或者叫主组。此群组必须已经存在。

 -G group:指定新建用户的附加组,此群组必须已经存在。附加组是相对与主组而言的,当一个用户同时是多个组中的成员时,登录时的默认组成为主组,而其它组称为附加组。

 -d home:指定新建用户的默认主目录,如果不指定,系统会在/etc/default/useradd文件指定的目录下创建用户主目录。

 -s shell:指定新建用户使用的默认shell,如果不指定,系统以/etc/default/useradd文件中定义的shell作为新建用户的默认shell。

 -c comment:对新建用户的说明信息。

 -f inactive:指定帐号过期多长时间后永久停用。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1

 -e expire:指定用户的帐号过期时间,日期的指定格式为MM/DD/YY。

 name:指定需要创建的用户名。

3.usermod的使用语法

usermod用来修改用户的账户属性信息,使用语法如下:

usermod [-u uid [-o]] [-g group] [-G group,...]

[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]

[-f 失效日期] [-e 过期日期][-L|-U] Name

各个选项具体含义如下:

 -u uid:指定用户新的UID值,此值必须为唯一的ID值,除非用-o选项。

 -g group:修改用户所属的组名为新的用户组名,此用户组名必须已经存在。

 -G group:修改用户所属的附加组。

 -d 主目录:修改用户登录时的主目录。

 -s shell:修改用户登录系统后默认使用的shell

 -c 注释:修改用户的注释信息。

 -l 新名称:修改用户帐号为新的名称。

 -f 失效日:帐号过期多少天后永久禁用。

 -e 过期日:增加或修改用户账户的过期时间。

 -L:锁定用户密码,使密码无效。

 -U:解除密码锁定。

 Name:要修改属性的系统用户。

4.userdel的使用语法

Userdel用来删除一个用户,若指定“-r”参数不但删除用户,同时删除用户的主目录以及目录下的所有文件。语法格式为:

userdel [-r][用户帐号]

5.应用举例

1)添加一个用户mylinux,指定所属的主用户组为fanslinux,附加用户组为linuxfans,同时指定用户的默认主目录为/opt/mylinux

[root@localhost ~]# useradd -g fanslinux -G linuxfans -d /opt/mylinux mylinux

[root@localhost ~]# more /etc/passwd|grep mylinux

mylinux:x:523:1030::/opt/mylinux:/bin/bash

[root@localhost ~]# more /etc/group|grep mylinux

linuxfans:x:1020:mylinux

2)添加一个用户test_user,指定UID为686,默认的shell为/bin/csh,让其归属为用户组linuxfans和fanslinux,同时添加对此用户的描述,

[root@localhost ~]# useradd -u 686 -s /bin/csh -G linuxfans,fanslinux -c "This is test user" test_user

[root@localhost ~]# more /etc/passwd|grep test_user

test_user:x:686:686:This is test user:/home/test_user:/bin/csh

[root@localhost ~]# more /etc/group|grep test_user

fanslinux:x:1030:test_user

linuxfans:x:1020:mylinux,test_user

test_user:x:686:

3)修改用户test_user的主用户组为新建的组test_group1,同时修改test_user的附加组为linuxfans和root,最后修改test_user的默认登录shell为/bin/bash

[root@localhost ~]# groupadd test_group1 #添加一个新的用户组

[root@localhost ~]# more /etc/group|grep test_group1 #显示新增用户组的信息

test_group1:x:1031:

[root@localhost ~]# usermod -g test_group1 -G linuxfans,root -s /bin/bash test_user

[root@localhost ~]# more /etc/passwd|grep test_user #从输出可知,用户的属性已经更改

test_user:x:686:1031:This is test user:/home/test_user:/bin/bash

[root@localhost ~]# more /etc/group|grep test_user #从输出可知,用户组的属性也同步更改

root:x:0:root,test_user

linuxfans:x:1020:mylinux,test_user

test_user:x:686:

4)如何锁定、解除用户密码

下面首先对test_user和mylinux用户设置密码

[root@localhost ~]# passwd test_user

Changing password for user test_user.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@localhost ~]# passwd mylinux

Changing password for user mylinux.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

下面的操作是通过su命令切换到mylinux用户下,然后在mylinux下再次切换到test_user用户下,这里的切换用户是为了说明一个问题:从超级用户root切换到普通用户下,是不需要输入普通用户密码的,系统也不会去验证密码。但普通用户之间切换是需要密码验证的。

[root@localhost ~]# su – mylinux #通过su命令切换到mylinux用户下

[mylinux@localhost ~]$ whoami #用whoami命令查看当前用户

mylinux

[mylinux@localhost ~]$ su - test_user #这里是从mylinux用户下切换到test_user用户下,需要输入密码

Password:

[mylinux@localhost ~]$ whoami #成功切换到test_user用户下

test_user

接下来,在root用户下执行usermod锁定test_user的密码,测试test_user是否还能登录,从下面可以看出,密码锁定后,出现登录失败。

[root@localhost ~]# usermod -L test_user #锁定test_user用户的密码

[root@localhost ~]# su - mylinux

[mylinux@localhost ~]$ whoami

mylinux

[mylinux@localhost ~]$ su - test_user #这里输入的密码是正确的,但是提示密码错误,因为密码被锁定了

Password:

su: incorrect password

[mylinux@localhost ~]$ whoami

mylinux

最后对test_user解除密码锁定,登录正常。

[root@localhost ~]# usermod -U test_user #解除密码锁定

[root@localhost ~]# su – mylinux

[mylinux@localhost ~]$ whoami

mylinux

[mylinux@localhost ~]$ su - test_user

Password:

[test_user@localhost ~]$ whoami #密码锁定解除后,test_user用户可以登录系统

test_user
本文出自 “爱维Linux” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/531793
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: