一、用户管理
1、增加用户
1.1、命令格式及选项意义
#useradd [options] LOGIN
#useradd -D [options]
前者为:通过指定的选项(options)建立一个新用户;
后者是:通过该命令更新建立用户的默认配置文件(具体有哪些配置文件,在第三节 中介绍吧)
二者options相同,这里主要通过前者说明如何创建一个用户。
常用的options意义如下:
-c:--comment COMMENT
后面跟一个与新添加用户(如上述命令中:LOGIN)相应的注释。这个选项有两点体现:登陆图形化的界面时候,桌面会显示该注释;在与用户相关的配置文件中,这个选项有相应的字段(见);
-e:--expiredate EXPIRE_DATE
用户过期的时间,格式为:YYYY-MM-DD;
-b:--base-dir BASE_DIR
用户主目录的基目录,通常为/home,当然也可以指定;
-d:--home HOME_DIR
后面跟用户的登陆的主目录,常与-m选项配合使用,目的是如果对应的目录不存在,则创建之;
-g:--gid GROUP
后面跟用户的用户组ID或者用户组标识,指定的用户组必须存在(用户组配置见);如果没有使能该选项,则默认情况下,系统会创建一个与用户名相同的用户组,参见选项-n;
-G:--groups GROUP1[,GROUP2,...[,GROUPN]]]
用户的附属组,在linux中,一个用户属于某一个主用户组,同时属于其他附属组,同主用户组一样,附属组也必须是已经存在的。操作系统对于登陆用户访问、操作权限常常是按照用户组分配的;
-m:--create-home
如果用户的主目录不存在,则创建之;
-n:使能该选项后,用户的gid将采用/etc/default/useradd中指定的gid,如果该文件中没有指定,则默认为1;参见选项-g;
-s: --shell SHELL
指定用户登陆后采用的shell;下面为本人环境中的shell:
- [admin@localhost ~]$ ll /bin | grep sh
- -rwxr-xr-x 1 root root 730972 2007-02-12 23:18 bash
- lrwxrwxrwx 1 root root 4 2011-09-18 19:25 csh -> tcsh
- lrwxrwxrwx 1 root root 4 2011-09-18 19:24 sh -> bash
- -rwxr-xr-x 1 root root 345348 2007-02-26 23:58 tcsh
- [admin@localhost ~]$
1.2、举例
1.2.1、
- [root@localhost ~]# useradd -c "moo magic"-s /bin/bash -g admin -m moo
- [root@localhost ~]#
- [root@localhost ~]# id moo
- uid=503(moo) gid=500(admin) groups=500(admin)
- [root@localhost ~]# groups moo
- admin
- [root@localhost ~]# ll /home
- total 52
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
--------创建用户moo,注释为moo magic,指定其gid 为admin,shell为bash,并建立用户主目录/home/moo,该用户只有一个主用户组,没有附属用户组。通过查看home下的用户根目录属性也可以看出,该用户的用户与主用户组信息。
1.2.2、
- [root@localhost ~]# useradd -s /bin/tcsh -g root -G bin,wheel -m randyit
- [root@localhost ~]# id randyit
- uid=504(randyit) gid=0(root) groups=0(root),1(bin),10(wheel)
- [root@localhost ~]# groups randyit
- root bin wheel
- [root@localhost ~]# ll /home
- total 52
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit root 4096 2012-01-30 16:45 randyit
- [root@localhost ~]#
----------建立用户randyit,主用户组为root,附属用户组为bin、wheel,指定shell为tcsh。
1.2.3、
- [root@localhost ~]# useradd test
- [root@localhost ~]# id test
- uid=505(test) gid=505(test) groups=505(test)
- [root@localhost ~]# groups test
- test
- [root@localhost ~]# ll /home
- total 56
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit root 4096 2012-01-30 16:45 randyit
- drwx------ 2 test test 4096 2012-01-30 16:50 test
- [root@localhost ~]#
-------创建用户test,默认主用户组为test(添加用户的同时添加一个同名的主用户组),该用户无附属用户组,默认shell 为bash(关于用户的默认属性,是根据用户信息的配置文件确定的,见/etc/default/useradd)。
2、修改用户
2.1、命令格式及选项意义
#usermod [options] LOGIN
按照指定的options 修改账户LOGIN属性,修改后的属性信息存入系统账户信息文件(具体参见)。
常用的options意义同useradd,这里单独整理下面几个:
-l, --login NEW_LOGIN
修改用户账号名,即将用户名:LOGIN修改为:NEW_LOGIN;
-L, --lock
锁定用户账号,此后账户无法登陆shell(影响/etc/shadow文件中口令字段,将之修改为!);
-U,--unlock
解锁一个用户账号,与-L选项对应。
-G:--groups GROUP1[,GROUP2,...[,GROUPN]]]
修改用户的附属组,附属组之间用逗号分开,如果之前该用户属于a,b,c三个附属组,如果此次修改为a,b,d,则该用户的附属用户组为a,b,d,该用户不再属于c附属组;如果想追加附属用户组 ,需要增加-a选项;
2.2、举例
2.2.1
- [root@localhost ~]# usermod -g admin -G wheel,nobody randyit
- [root@localhost ~]# id randyit
- uid=504(randyit) gid=500(admin) groups=500(admin),10(wheel),99(nobody)
- [root@localhost ~]# groups randyit
- admin wheel nobody
- [root@localhost ~]# ll /home
- total 56
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit root 4096 2012-01-30 16:45 randyit
- -rw-r--r-- 1 root root 9516 2011-11-11 04:51 README.csupport
- drwx------ 2 test test 4096 2012-01-30 16:50 test
- [root@localhost ~]# chgrp admin randyit
- chgrp: cannot access `randyit': No such file or directory
- [root@localhost ~]# chgrp admin /home/randyit
- [root@localhost ~]# ll /home
- total 56
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit admin 4096 2012-01-30 16:45 randyit
- drwx------ 2 test test 4096 2012-01-30 16:50 test
- [root@localhost ~]#
-------修改账户randyit,将其主用户组修改为admin,附属用户组修改为nobody、wheel(/home/randyit对应的文件属性中主用户目录没有更改,为啥涅?通过chgrp修改之,与文件相关的访问权限后续统一总结吧)。
2.2.2、
- [root@localhost ~]# id randyit
- uid=504(randyit) gid=500(admin) groups=500(admin),10(wheel),99(nobody)
- [root@localhost ~]# groups randyit
- admin wheel nobody
- [root@localhost ~]# ll /home
- total 40
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit admin 4096 2012-01-30 16:45 randyit
- drwx------ 2 test test 4096 2012-01-30 16:50 test
- [root@localhost ~]#
- [root@localhost ~]# usermod -a -G root randyit
- [root@localhost ~]# id randyit
- uid=504(randyit) gid=500(admin) groups=500(admin),0(root),10(wheel),99(nobody)
- [root@localhost ~]# groups randyit
- admin root wheel nobody
- [root@localhost ~]# ll /home
- total 40
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 2 randyit admin 4096 2012-01-30 16:45 randyit
- drwx------ 2 test test 4096 2012-01-30 16:50 test
- [root@localhost ~]#
---------用户randyit 附属用户组增加root。
2.2.3
- [root@localhost ~]# id randyit
- uid=504(randyit) gid=500(admin) groups=500(admin),0(root),10(wheel),99(nobody)
- [root@localhost ~]# groups randyit
- admin root wheel nobody
- [root@localhost ~]# ll /home | grep randy
- drwx------ 5 randyit admin 4096 2012-01-30 17:31 randyit
- [root@localhost ~]#
- [root@localhost ~]# usermod -d /home/newrandyit -m -l newrandyit randyit
- [root@localhost ~]# id newrandyit
- uid=504(newrandyit) gid=500(admin) groups=500(admin),0(root),10(wheel),99(nobody)
- [root@localhost ~]# groups newrandyit
- admin root wheel nobody
- [root@localhost ~]# ll /home/ | grep randy
- drwx------ 5 newrandyit admin 4096 2012-01-30 17:31 newrandyit
-----修改randyit用户名为newrandyit,并更改HOME_DIR。如果没有-d 及-m选项,则newrandyit根目录不变。一般更改时候都会同步修改其根目录。
另:如果没有-m选项,则用户的根目录依旧为randyit,不更改。主用户组、附属用户组属性均不变(通过后面说明的用户账号相关的文件也可以印证)。
2.2.4
- [root@localhost ~]# id test
- uid=505(test) gid=505(test) groups=505(test)
- [root@localhost ~]# groups test
- test
- [root@localhost ~]#
- [root@localhost ~]# usermod -l newtest test
- [root@localhost ~]#
- [root@localhost ~]# id newtest
- uid=505(newtest) gid=505(test) groups=505(test)
- [root@localhost ~]# groups newtest
- test
- [root@localhost ~]# ll /home
- total 40
- drwx------ 25 admin admin 4096 2012-01-30 10:35 admin
- drwx------ 23 hello root 4096 2012-01-30 09:11 hello
- drwx------ 2 root root 16384 2011-09-18 19:22 lost+found
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- drwx------ 5 newrandyit admin 4096 2012-01-30 17:31 newrandyit
- drwx------ 2 newtest test 4096 2012-01-30 16:50 test
- [root@localhost ~]#
- [root@localhost ~]#
---------如果仅仅更改用户名test 为newtest,则其他属性均不改变,仅仅改变登陆名而已。
3、删除用户
3.1、命令格式及选项意义
#userdel [options] LOGIN
删除账户及相关文件
选项:
-f,--force
强制删除指定用户名,Include 用户的主目录、邮件,无论相关是否在访问。如果同时存在一个与该用户名相同的gid,则同时删除该用户组。建议慎重选择;
-r,--remove
删除用户主目录及Mail spool;Mail相关路径在//etc/login.defs中
3.1、举例
3.1.1
- [root@localhost ~]# id moo
- uid=503(moo) gid=500(admin) groups=500(admin)
- [root@localhost ~]# groups moo
- admin
- [root@localhost ~]# ll /home | grep moo
- drwx------ 2 moo admin 4096 2012-01-30 16:34 moo
- [root@localhost ~]#
- [root@localhost ~]# ll /var/mail/ | grep moo
- -rw-rw---- 1 moo mail 0 2012-01-30 16:34 moo
- [root@localhost ~]#
- [root@localhost ~]# userdel -r -f moo
- [root@localhost ~]# id moo
- id: moo: No such user
- [root@localhost ~]# groups moo
- id: moo: No such user
- [root@localhost ~]# ll /home | grep moo
- [root@localhost ~]# ll /var/mail/ | grep moo
- [root@localhost ~]#
- [root@localhost ~]#
---------删除用户moo,同时删除用户相关的目录(不会删除用户相关的用户组,需要grpdel等操作,见后文)。
4、用户口令管理
4.1、命令及选项意义
#passwd [options] [LOGIN]
更改用户密码及用户密码管理;
选项:
-l:锁定指定用户,该用户不能登陆;
-u:解除指定用户密码锁定,与-l对应;
-d:删除指定用户的密码,使之不用密码即可登陆;
其他选项不列举了,参见man passwd;
4.2、举例:
4.2.1
- [admin@localhost ~]$ sudo passwd -l newrandyit
- Locking password for user newrandyit.
- passwd: Success
- [admin@localhost ~]$ su newrandyit
- Password:
- su: incorrect password
- [admin@localhost ~]$
- [admin@localhost ~]$ su newrandyit
- Password:
- su: incorrect password
- [admin@localhost ~]$ sudo passwd -u newrandyit
- Unlocking password for user newrandyit.
- passwd: Success
- [admin@localhost ~]$ su newrandyit
- Password:
- [newrandyit@localhost admin]$
-----------锁定用户newrandyit,之后用户无法登陆,取消锁定之后,用户可正常登陆。