用户与用户组

时间:2022-05-10 08:05:06

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 group2

usermod -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 apacheuser
finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录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 apacheuser
b),查看所有组 cat /etc/group
c),有的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     注:显示用户所属的用户组
grpck
grpconv    注:通过/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/
总用量 92
drwxr-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 .gtkrc
drwxr-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      Maildir
MAIL_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 file
GROUP=100
HOME=/home         注:把用户的家目录建在/home中;
INACTIVE=-1           注:是否启用帐号过期停权,-1表示不启用;
EXPIRE=                   注:帐号终止日期,不设置表示不启用;
SHELL=/bin/bash    注:所用SHELL的类型;
SKEL=/etc/skel        注: 默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户

                                       家目录下的文件,都是从这个目录中复制过去的。