> RedHat >

RHCE学习笔记-RHEL5.4用户管理

首先,来看如何在linux中添加一个新的用户

复制代码代码如下:
#useradd  user1(username)
[root@localhost ~]#
[root@localhost ~]# useradd user1
[root@localhost ~]# id user1
uid=500(user1) gid=500(user1) groups=500(user1)
[root@localhost ~]#

User1这个用户就创建成功了,用useradd命令会自动的在/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。这四个文件中添加条目。创建用户的主目录。设定用户的权限和拥有者。

使用passwd命令来设置用户的密码

复制代码代码如下:
#passwd  user1(username)
[root@localhost ~]#
[root@localhost ~]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

密码设置成功。

接下来,我们来看如何在linux中删除一个用户

可以手动的在/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。这个四个文件中去手动删除用户信息。
也可以使用userdel命令来删除一个用户。

复制代码代码如下:
#userdel  -r  user1(username)
-r   删除用户的home目录
[root@localhost ~]#
[root@localhost ~]# userdel -r user1
[root@localhost ~]#
[root@localhost ~]# id user1
id: user1: No such user
[root@localhost ~]#

这样,user1这个用户就被删除了。

关于用户的私有组和附加组的概念

在linux系统中,我们组分为两种,一种是私有组,一种是附加组。我们知道当利用useradd这条命令去创建一个用户的时候,系统将默认的去创建一个与之同名的组。这个组就叫做用户的私有组。

复制代码代码如下:
[root@localhost ~]#
[root@localhost ~]# su - user1
[user1@localhost ~]$
[user1@localhost ~]$ touch abc.txt
[user1@localhost ~]$ ll
total 0
-rw-rw-r-- 1 user1 user1 0 Mar  2 14:58 abc.txt
[user1@localhost ~]$

当我们使用user1的身份去创建一个文件,这个文件的拥有组就是用户的私有组。
当然,这个用户的私有组也是可以通过命令去改变的。
用户附加组是指当一个用户有附加组,那么该用户就可以共享用户的资源,额外的得到组里面的权限。
一个用户不可以属于多个私有组,但是一个用户可以属于多个附加组。

如何去修改用户的信息

我们可以直接修改/etc/passwd这个文件。
也可以在使用useradd命令创建用户的时候去指定用户信息。
还可以使用usermod命令来调整用户的信息。

1.修改用户的描述

复制代码代码如下:
#usermod  -c  “test account”  user1
[root@localhost ~]#
[root@localhost ~]# usermod -c "test account" user1
[root@localhost ~]#
[root@localhost ~]# cat /etc/passwd | grep user1
user1:x:500:500:test account:/home/user1:/bin/bash
[root@localhost ~]#

可以看到,这个用户就多了一个描述。

2.修改用户的home目录
修改用户的home目录,有两种方法。可以在创建用户的时候指定,也可以使用usermod命令来调整。
现在先来看下在创建用户的时候指定home目录。

复制代码代码如下:
#useradd –d  /home/guests/user2  user2
[root@localhost ~]#
[root@localhost ~]# cd /home/
[root@localhost home]# mkdir guests
[root@localhost home]# ls
guests  user1
[root@localhost home]# useradd -d /home/guests/user2 user2
[root@localhost home]# su - user2
[user2@localhost ~]$ pwd
/home/guests/user2
[user2@localhost ~]$

OK,在创建用户时候指定用户的home目录是没有问题的。

现在在来看看使用usermod命令来调整用户的信息。

复制代码代码如下:
#usermod  -d  /home/guests/user1  user1
[root@localhost home]#
[root@localhost home]# ls
guests  user1
[root@localhost home]# usermod -d /home/guests/user1/ user1
[root@localhost home]#
[root@localhost home]# su - user1
su: warning: cannot change directory to /home/guests/user1/: No such file or directory
-bash-3.2$ pwd
/home
-bash-3.2$

使用user1登录的时候,用户的/home目录和环境变量都不正确。

我们知道,在guests这目录下面其实是没有user1 user2这两个目录的。但是在创建用户的时候指定home目录,系统是可以自动生成这个用户的/home目录的。但是用户usermod命令是不会自动生成的,我们必须在/home目录下面创建一个user2的目录。然后改变权限,在去复制环境变量过来。这样user2登录的时候才会正常登录。

复制代码代码如下:
[root@localhost ~]# cd /home/guests/
[root@localhost guests]# ll
total 4
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# mkdir user1
[root@localhost guests]# ll
total 8
drwxr-xr-x 2 root  root  4096 Mar  2 15:28 user1
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# chown user1:user1 user1
[root@localhost guests]# chmod 700 user1/
[root@localhost guests]# ll
total 8
drwx------ 2 user1 user1 4096 Mar  2 15:28 user1
drwx------ 3 user2 user2 4096 Mar  2 15:25 user2
[root@localhost guests]# su - user1
-bash-3.2$ cp /etc/skel/.* .
cp: omitting directory `/etc/skel/.'
cp: omitting directory `/etc/skel/..'
cp: omitting directory `/etc/skel/.mozilla'
-bash-3.2$ exit
[root@localhost guests]# su - user1
[user1@localhost ~]$

现在user1的home目录和环境变量就正常了。
建议在创建用户的时候就指定/home目录,否则以后去改变用户的home目录会比较麻烦。

3.修改用户的私有组

复制代码代码如下:
#chmod  -g  user1   user2
[root@localhost ~]# usermod -g user1 user2
[root@localhost ~]#
[root@localhost ~]# id user2
uid=501(user2) gid=500(user1) groups=500(user1)
[root@localhost ~]#

将user2的私有组变成user1。

4.修改用户的附加组

复制代码代码如下:
#chmod  -G  user2  user3
[root@localhost ~]#
[root@localhost ~]# usermod -G user2 user3
[root@localhost ~]#
[root@localhost ~]# id user3
uid=502(user3) gid=502(user3) groups=502(user3),501(user2)
[root@localhost ~]#

可以看到,user3的附加组就变成了user2。
注意usermod –G 是修改用户的附加组,而不是添加用户的附加组。添加修改可以使用下面这条命令。

复制代码代码如下:
# usermod  -a  -G  user4  user3
[root@localhost ~]#
[root@localhost ~]# usermod -a -G user4 user3
[root@localhost ~]#
[root@localhost ~]# id user3
uid=502(user3) gid=502(user3) groups=502(user3),501(user2),503(user4)
[root@localhost ~]#

可以看到,user3现在就有两个附加组了。

5.修改用户的登录名

复制代码代码如下:
#usermod  -l  students  user1
[root@localhost ~]#
[root@localhost ~]# usermod -l students user1
[root@localhost ~]#
[root@localhost ~]# su - students
[students@localhost ~]$

可以看到,user1的登录名就变成了students。

6.修改用户的shell

复制代码代码如下:
#usermod  -s  /sbin/nologin  user1
[root@localhost ~]#
[root@localhost ~]# usermod -s /sbin/nologin user2
[root@localhost ~]# su - user2
This account is currently not available.
[root@localhost ~]#

User2的登录shell变成/sbin/nologin以后,用户就不可以登陆计算机,只可以登陆服务了。

7.锁定用户

复制代码代码如下:
#usermod  -L  user3
[root@localhost ~]#
[root@localhost ~]# usermod -L user3
[root@localhost ~]# cat /etc/shadow | grep user3
user3:!$1$coBU9WM5$r0Qmp12kA15KLD5Dte9De0:14670:0:99999:7:::
[root@localhost ~]# su - user4
[user4@localhost ~]$ su - user3
Password:
su: incorrect password
[user4@localhost ~]$

可以看到,当我们锁定用户的时候,系统会自动的在/etc/shadow文件里面的密码位前面添加一个感叹号,就代表这个用户被锁定了。当然我们也可以手动添加。我们的user3的确是不能登录的。

8.解锁用户

复制代码代码如下:
#usermod  -U  user3
[root@localhost ~]#
[root@localhost ~]# usermod -U user3
[root@localhost ~]#
[root@localhost ~]# cat /etc/shadow | grep user3
user3:$1$coBU9WM5$r0Qmp12kA15KLD5Dte9De0:14670:0:99999:7:::
[root@localhost ~]# su - user4
[user4@localhost ~]$ su - user3
Password:
[user3@localhost ~]$

解锁后,user3登录成功了。

关于用户密码的时效策略

默认情况下,用户的密码永不过期。
密码的默认设置在/etc/login.defs这个文件中都有定义。也可以修改这个文件。
这个文件是全局的配置文件,对每个用户都生效。
如何修改密码的时效策略
可以在/etc/shadow里面去修改用户密码的策略。
也可以使用chage 命令来修改用户的密码策略。

查看用户密码的时效策略

复制代码代码如下:
#chage  -l   user1(username)
[root@localhost ~]#
[root@localhost ~]# chage -l user1
Last password change   : Mar 02, 2010
Password expires       : never
Password inactive      : never
Account expires        : never
Minimum number of days between password change         :0
Maximum number of days between password change        : 99999
Number of days of warning before password expires         :7
[root@localhost ~]#

这条命令可以查看用户密码的策略。

如何修改用户密码的策略,
 

复制代码代码如下:
#chage  user1
[root@localhost ~]#
[root@localhost ~]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
        Minimum Password Age [0]:
        Maximum Password Age [99999]:
        Last Password Change (YYYY-MM-DD) [2010-03-02]:
        Password Expiration Warning [7]:
        Password Inactive [-1]:
        Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
[root@localhost ~]#

它会以交互式的方式来修改用户的密码时效。

从上到下,依次解释:
密码的最小存活期,多长时间以后可以修改密码。(0为随时可以修改密码)
密码的最大存活期,密码在多长时间后过期。(99999是代表用户密码永不过期)
密码的最后一次修改时间,所有的策略以这个时间为标准
密码的警告时间,多长时间警告用户密码快过期了(默认是七天)
密码的宽限期,密码过期以后,账号多久过期。(默认是-1,密码过期了,账号就过期了。)
最后一个是账号的过期时间。
账号过期,就代表用户不可以登录了。
密码过期,只需要修改密码,用户就可以立即登录了。

关于组的管理

在组里面添加用户,
我们可以直接在/etc/group这个文件里面在组的后面去添加用户。
添加一个组
#groupadd

修改一个组
#groupmod

删除一个组
#groupdel

至此,关于linux下用户管理的相关内容就介绍完了,希望对大家有所帮助。

(责任编辑:IT)