【Linux学习笔记】账号管理
一、useradd
新增用户的过程包含了:
(1)记录用户信息到/etc/passwd,/etc/shadow,自动分配一个uid。
(2)创建家目录。也就是在home目录下创建yy目录。
(3)复制/etc/skel下的文件到 刚创建的家目录,基本都是隐藏目录
(4)新建一个同名的有用户组。
[root@ggg2 ~]# useradd yy [root@ggg2 ~]# ls /home ggg mysql yy [root@ggg2 ~]# ls -al /etc/skel total 36 drwxr-xr-x. 4 root root 4096 Aug 18 23:16 . drwxr-xr-x. 117 root root 12288 Nov 6 12:58 .. -rw-r--r--. 1 root root 18 Oct 16 2014 .bash_logout -rw-r--r--. 1 root root 176 Oct 16 2014 .bash_profile -rw-r--r--. 1 root root 124 Oct 16 2014 .bashrc drwxr-xr-x. 2 root root 4096 Nov 12 2010 .gnome2 drwxr-xr-x. 4 root root 4096 Aug 18 23:13 .mozilla [root@ggg2 ~]# ls -al /home/yy total 28 drwx------. 4 yy yy 4096 Nov 6 12:58 . drwxr-xr-x. 5 root root 4096 Nov 6 12:58 .. -rw-r--r--. 1 yy yy 18 Oct 16 2014 .bash_logout -rw-r--r--. 1 yy yy 176 Oct 16 2014 .bash_profile -rw-r--r--. 1 yy yy 124 Oct 16 2014 .bashrc drwxr-xr-x. 2 yy yy 4096 Nov 12 2010 .gnome2 drwxr-xr-x. 4 yy yy 4096 Aug 18 23:13 .mozilla [root@ggg2 ~]# cat /etc/group | grep yy yy:x:502:
此外,还可以:
-u 直接指定用户的uid。
-g 指定用户所在 用户组。
-d 用户的家目录。
[root@ggg2 ~]# useradd -u 508 userxx [root@ggg2 ~]# cat /etc/passwd | grep userxx userxx:x:508:508::/home/userxx:/bin/bash [root@ggg2 ~]# useradd -g yy useryy [root@ggg2 ~]# cat /etc/group | grep yy | head -1 yy:x:502: [root@ggg2 ~]# useradd -d /home/spec_yy yyy [root@ggg2 ~]# ls /home | grep spec_yy spec_yy
二、passwd
修改密码。
在创建用户后,由于用户没有设置密码,所以没有权限登陆系统,在/etc/passwd中会显示 两个惊叹号 !!.
[root@ggg2 ~]# passwd yy Changing password for user yy. New password: BAD PASSWORD: it is WAY too short BAD PASSWORD: is a palindrome Retype new password: passwd: all authentication tokens updated successfully.其他用户都只能修改自己的密码,不过要先输入之前的密码,另外,新密码不能太简单,否则系统会拒绝修改:
[yy@ggg2 ~]$ passwd yy passwd: Only root can specify a user name. [yy@ggg2 ~]$ passwd Changing password for user yy. Changing password for yy. (current) UNIX password: New password: Retype new password: passwd: all authentication tokens updated successfully.
三、usermod
修改用户的属性,实际上就是对/etc/passwd、/etc/shadow文件的修改。
先加个用户,然后查看家目录,接下来修改用户的家目录,这里的-d指定新的家目录,而-m指定如果这个新的家目录不存在,那就创建,如果不知道而且这个目录又没有,就会报错。
[root@ggg2 ~]# useradd userx [root@ggg2 ~]# cat /etc/passwd | grep userx userx:x:511:511::/home/userx:/bin/bash [root@ggg2 ~]# usermod -d /home/new_userx -m userx [root@ggg2 ~]# cat /etc/passwd | grep userx userx:x:511:511::/home/new_userx:/bin/bash
如果发现账号异常,可以冻结账号。
先看一下密码文件,发现当前userx用户的密码是!!,这个上面说过,是由于没有设置密码,所以不允许登陆系统。
然后修改密码。
接下来再看一下密码文件就是正常的了。
指定-L参数锁定账号,可以看到会在/etc/shadow文件中的第2列密码的开头加上一个惊叹号!,这样就禁止用户登陆。
指定-U参数解锁账号,同样的惊叹号就没有了。
[root@ggg2 ~]# cat /etc/shadow | grep userx userx:!!:17111:0:99999:7::: [root@ggg2 ~]# passwd userx Changing password for user userx. New password: BAD PASSWORD: it is too short BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. [root@ggg2 ~]# cat /etc/shadow | grep userx userx:$6$UFR/z5Vu$UJVzHu6gJf3GOlodnXTjfKV8/C.WVQ9QcetOACf1exTaDsKk/2AS5RudLC5l3Yz7ioT9O9n5M5ICSdHEUgB3T1:17111:0:99999:7::: [root@ggg2 ~]# usermod -L userx [root@ggg2 ~]# cat /etc/shadow | grep userx userx:!$6$UFR/z5Vu$UJVzHu6gJf3GOlodnXTjfKV8/C.WVQ9QcetOACf1exTaDsKk/2AS5RudLC5l3Yz7ioT9O9n5M5ICSdHEUgB3T1:17111:0:99999:7::: [root@ggg2 ~]# usermod -U userx [root@ggg2 ~]# cat /etc/shadow | grep userx userx:$6$UFR/z5Vu$UJVzHu6gJf3GOlodnXTjfKV8/C.WVQ9QcetOACf1exTaDsKk/2AS5RudLC5l3Yz7ioT9O9n5M5ICSdHEUgB3T1:17111:0:99999:7:::
四、userdel
删除用户,就是删除/etc/passwd /etc/shadow中的记录。
[root@ggg2 ~]# userdel userx
不过,删除用户时,不会删除原用户的家目录、邮件信息,所以可以用参数-r递归删除这些:
[root@ggg2 ~]# userdel -r yy [root@ggg2 ~]# ls /home | grep yy spec_yy useryy
五、groupadd、groupdel
增加用户组,删除用户组
[root@ggg2 ~]# groupadd groupx [root@ggg2 ~]# cat /etc/group | grep groupx groupx:x:502: [root@ggg2 ~]# groupdel groupx
在删除用户组时,如果这个组内还有用户,就会报错。
六、users、who、w
查看用户信息。
users命令:显示当前系统有哪些用户,同一用户可能会多次显示,因为可能是从不同的终端发起的会话。
[root@ggg2 ~]# users root root root root
who命令:类似于users命令,只是更详细,包括 用户名,终端,主机名或ip地址。
[root@ggg2 ~]# who root tty1 2016-09-08 21:16 (:0) root pts/0 2016-10-19 22:21 (:0.0) root pts/1 2016-09-08 21:18 (:0.0) root pts/2 2016-10-15 12:53 (:0.0)
w命令:更加详细。
[root@ggg2 ~]# w 15:08:52 up 22:31, 4 users, load average: 0.04, 0.11, 0.13 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 08Sep16 58days 21:22 21:22 /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/ru root pts/0 :0.0 19Oct16 17days 0.71s 0.61s -bash root pts/1 :0.0 08Sep16 17days 0.26s 0.07s mysql -u system -p root pts/2 :0.0 15Oct16 0.00s 2.53s 0.02s w
显示 当前时间,系统运行时间,已登录用户数,系统负载。
还包含了8列信息:
用户名,终端,如果是从网络登陆的会显示主机和ip地址,用户登陆时间,用户空闲时间,当前所有进程消耗的cpu总时间,当前what列所对应进程消耗的总时间,
七、finger
调查用户。
如果找不到命令,需要先安装:
root@ggg2 ~]# yum install -y finger
然后再试试:
[root@ggg2 ~]# finger Login Name Tty Idle Login Time Office Office Phone root root tty1 51d Sep 8 21:16 (:0) root root pts/0 10d Oct 19 22:21 (:0.0) root root pts/1 10d Sep 8 21:18 (:0.0) root root pts/2 Oct 15 12:53 (:0.0)