1.新建test1用户并为该用户设置密码
adduser/useradd test1 passwd test1
2.新建group1用户组
groupadd group1删除组
groupdel group1
修改组
groupmod -n group2 group1 将group1改名为group2
3.新建test1用户,同时增加到group1用户组
useradd -g test1 group1 4.给已有的test1用户增加工作组group2 usermod -G group2 test1或者: gpasswd -a test1 group2usermod -d /home/test -G test2 test
注:-g 所属组 -d 家目录 -s 所用的SHEL将test用户的登录目录改成/home/test,并加入test2组,注意这里是大G。
gpasswd -d test1 group2 将用户test1从group2组中移出
5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上* 就可以了。想恢复该用户,去掉*即可。 或者使用如下命令关闭用户账号: passwd peter –l 重新释放: passwd peter –u
6、永久性删除用户账号
userdel peter groupdel peter usermod –G peter peter (强制删除该用户的主目录和主目录下的所有文件和子目录)
7、从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A或者用命令gpasswd -d A GROUP
查看用户
a),查看当前登录用户[root@krlcgcms01 ~]# w功能说明:显示目前登入系统的用户信息。 语 法:w [-fhlsuV][用户名称] 补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。 参 数: -f 开启或关闭显示用户从何处登入系统。 -h 不显示各栏位的标题信息列。 -l 使用详细格式列表,此为预设值。 -s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。 -u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。 -V 显示版本信息。[root@krlcgcms01 ~]# who
功能说明:显示目前登入系统的用户信息。 语 法:who [-Himqsw][--help][--version][am i][记录文件] 补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的 终端机,登入时间以及从何处登入或正在使用哪个X显示器。 参 数: -H或--heading 显示各栏位的标题信息列。 -i或-u或--idle 显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。 -m 此参数的效果和指定"am i"字符串相同。 -q或--count 只显示登入系统的帐号名称和总人数。 -s 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。 -w或-T或--mesg或--message或--writable 显示用户的信息状态栏。 --help 在线帮助。 --version 显示版本信息。b),查看自己的用户名[root@krlcgcms01 ~]# whoami功能说明:先似乎用户名称。 语 法:whoami [--help][--version] 补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。 参 数: --help 在线帮助。 --version 显示版本信息。 c),查看单个用户信息[root@krlcgcms01 ~]# finger apacheuserfinger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。 该命令的一般格式为: finger [选项] [使用者] [用户@主机] 命令中各选项的含义如下: -s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。 -l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。 -p 除了不显示.plan文件和.project文件以外,与-l选项相同。 [例]在本地机上使用finger命令。 $ finger xxq Login: xxq Name: Directory: /home/xxq Shell: /bin/bash Last login Thu Jan 1 21:43 (CST) on tty1 No mail. No Plan. $ finger Login Name Tty Idle Login Time Office Office Phone root root *1 28 Nov 25 09:17 ……[root@krlcgcms01 ~]# id apacheuser
d),查看用户登录记录
[root@krlcgcms01 ~]# last 查看登录成功的用户记录[root@krlcgcms01 ~]# lastb 查看登录不成功的用户记录e),查看所有用户[root@krlcgcms01 ~]# cut -d : -f 1 /etc/passwd[root@krlcgcms01 ~]# cat /etc/passwd |awk -F \: ‘{print $1}’------------------------------------------------------- vlock(virtual console lock) 功能说明:锁住虚拟终端。 语 法:vlock [-achv] 补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。 参 数: -a或--all 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘 切换终端机的功能一并关闭。 -c或--current 锁住目前的终端阶段作业,此为预设值。 -h或--help 在线帮助。 -v或--version 显示版本信息。 ------------------------------------------------------- userconf 功能说明:用户帐号设置程序。 语 法:userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称>][--delgroup <群组>][--deluser <用户ID>][--help] 补充说明:userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。 参 数: --addgroup<群组> 新增群组。 --adduser<用户ID><群组><用户名称> 新增用户帐号。 --delgroup<群组> 删除群组。 --deluser<用户ID> 删除用户帐号。 --help 显示帮助。 ------------------------------------------------------- whois 功能说明:查找并显示用户信息。 语 法:whois [帐号名称] 补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
查看组
a),查看当前登录用户所在的组 groups,查看apacheuser所在组groups apacheuserb),查看所有组 cat /etc/groupc),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找系统中所有的组了./etc/shadow和/etc/passwd系统存在的所有用户名修改当前用户所属组的方法:
usermod 或者可以直接修改 /etc/passwd文件即可usermod 功能说明:修改用户帐号。 语 法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号] 补充说明:usermod可用来修改用户帐号的各项设定。 参 数: -c<备注> 修改用户帐号的备注文字。 -d登入目录> 修改用户登入时的目录。 -e<有效期限> 修改帐号的有效期限。 -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。 -g<群组> 修改用户所属的群组。 -G<群组> 修改用户所属的附加群组。 -l<帐号名称> 修改用户帐号名称。 -L 锁定用户密码,使密码无效。 -s 修改用户登入后所使用的shell。 -u 修改用户ID。 -U 解除密码锁定。
Linux 用户(user)和用户组(group)管理概述
Linux 是一个多用户、多任务的操作系统,理解Linux的单用户多任务,多用户多任务;
用户的角色区分:
用户在系统中是分角色的,在Linux 系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性; root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后
来添加的,当然我们也可以添加虚拟用户;
普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容,权限有限,这类用户都是系统管理员自行添加的;如果您想了解Linux系统的一些帐号,请查看 /etc/passwd ;用户和用户组的对应关系是:一对一、多对一、一对多或多对多;
与用户(user)和用户组(group)相关的配置文件:
1)与用户(user)相关的配置文件;/etc/passwd 注:用户(user)的配置文件;/etc/shadow 注:用户(user)影子口令文件;
2)与用户组(group)相关的配置文件;
/etc/group 注:用户组(group)配置文件;/etc/gshadow 注:用户组(group)的影子文件;
管理用户(user)和用户组(group)的相关工具或命令:
1)管理用户(user)的工具或命令;useradd 注:添加用户; adduser 注:添加用户;passwd 注:为用户设置密码;usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;pwcov 注:同步用户从/etc/passwd 到/etc/shadow; pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否 合法或完整;pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和/etc/passwd创 建/etc/passwd ,然后会删除 /etc/shadow 文件;finger 注:查看用户信息工具;id 注:查看用户的UID、GID及所归属的用户组;chfn 注:更改用户信息工具;su 注:用户切换工具;sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完 成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得 通过visudo来编辑/etc/sudoers来实现;visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接 用vi来编辑 /etc/sudoers 的效果是一样的;sudoedit 注:和sudo 功能差不多
2)管理用户组(group)的工具或命令
groupadd 注:添加用户组;groupdel 注:删除用户组;groupmod 注:修改用户组信息groups 注:显示用户所属的用户组grpckgrpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创 建/etc/gshadow ,如果/etc/gshadow 不存在则创建;grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创 建/etc/group ,然后删除gshadow文件;
3、/etc/skel 目录;
/etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当我们添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境;[root@localhost beinan]# ls -la /etc/skel/
总用量 92drwxr-xr-x 3 root root 4096 8月 11 23:32 .drwxr-xr-x 115 root root 12288 10月 14 13:44 ..-rw-r--r-- 1 root root 24 5月 11 00:15 .bash_logout-rw-r--r-- 1 root root 191 5月 11 00:15 .bash_profile-rw-r--r-- 1 root root 124 5月 11 00:15 .bashrc-rw-r--r-- 1 root root 5619 2005-03-08 .canna-rw-r--r-- 1 root root 438 5月 18 15:23 .emacs-rw-r--r-- 1 root root 120 5月 23 05:18 .gtkrcdrwxr-xr-x 3 root root 4096 8月 11 23:16 .kde-rw-r--r-- 1 root root 658 2005-01-17 .zshrc/etc/skel 目录下的文件,一般是我们用useradd 和adduser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主;
4、/etc/login.defs 配置文件;
/etc/login.defs 文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的;比如Fedora 的 /etc/logins.defs 文件内容;
# *REQUIRED*# Directory where mailboxes reside, _or_ name of file, relative to the# home directory. If you _do_ define both, MAIL_DIR takes precedence.# QMAIL_DIR is for Qmail##QMAIL_DIR MaildirMAIL_DIR /var/spool/mail 注:创建用户时,要在目录/var/spool/mail中创建一个用户mail文件;#MAIL_FILE# Password aging controls:
## PASS_MAX_DAYS Maximum number of days a password may be used.# PASS_MIN_DAYS Minimum number of days allowed between password changes.# PASS_MIN_LEN Minimum acceptable password length.# PASS_WARN_AGE Number of days warning given before a password expires.#PASS_MAX_DAYS 99999 注:用户的密码不过期最多的天数;PASS_MIN_DAYS 0 注:密码修改之间最小的天数;PASS_MIN_LEN 5 注:密码最小长度;PASS_WARN_AGE 7#
# Min/max values for automatic uid selection in useradd#UID_MIN 500 注:最小UID为500 ,也就是说添加用户时,UID是从500开始的;UID_MAX 60000 注:最大UID为60000;#
# Min/max values for automatic gid selection in groupadd#GID_MIN 500 注:GID 是从500开始;GID_MAX 60000#
# If defined, this command is run when removing a user.# It should remove any at/cron/print jobs etc. owned by# the user to be removed (passed as the first argument).##USERDEL_CMD /usr/sbin/userdel_local#
# If useradd should create home directories for users by default# On RH systems, we do. This option is ORed with the -m flag on# useradd command line.#CREATE_HOME yes 注:是否创用户家目录,要求创建;5、/etc/default/useradd 文件;通过useradd 添加用户时的规则文件;# useradd defaults fileGROUP=100HOME=/home 注:把用户的家目录建在/home中;INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;EXPIRE= 注:帐号终止日期,不设置表示不启用;SHELL=/bin/bash 注:所用SHELL的类型;SKEL=/etc/skel 注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的。