本节介绍Linux用户和组相关的配置文件,用户账号管理、查询用户信息以及切换用户的相关命令,将会让我们更了解各配置文件中各个字段的含义,以及各相关命令的使用方法,方便Linux运维人员管理Linux系统中的用户和组。
背景:
Linux是个多用户、多任务的系统,考虑到每个人的隐私权、每个人喜好的工作环境以及每个用户所使用的权限等方面的不同,所以设定了“用户”来管理各自用户的权限。
一、用户和用户组相关的配置文件管理
-
/etc/passwd:用户的账号信息
-
/etc/group:组的账号信息
-
/etc/shadow:用户密码和相关的账号设定
-
/etc/gshadow:组的密码信息
(1)/etc/passwd文件
文件中共包含了7个字段,分别使用 : 隔开。下面介绍各个字段所代表的含义
account : password : UID : GID : GECOS : directory : shell
登陆名 : 密码符 : 用户ID : 组ID : 注释信息 : 家目录 : 用户默认shell
备注:用户可以加入不止一个组:基本组一个,附加组(也称额外组)可包含多个。
(2)/etc/group
文件中共包含了4个字段,分别使用 : 隔开。下面介绍各个字段所代表的含义
group_name : passwd : GID : user_list
组名 : 密码符 : GID : 以都好分割属于此组(以之作为额外组)的用户列表
(3)/etc/shadow
文件中共包含了7个字段,分别使用 : 隔开。下面介绍各个字段所代表的含义
用户名 : 加密的密码 : 最近一次修改密码的时间 : 密码最短使用期限 : 密码最长使用期限 : 密码过期警告区间 : 密码非活动期限 : 账号过期期限 : 保留区域
(4)/etc/gshaow
文件中共包含了4个字段,分别使用 : 隔开。下面介绍各个字段所代表的含义
group_name : password : administrator : members
组名 : 密码符 : 用户组的管理员 : 组的成员
二、用户账号管理相关命令(这里仅列出去常用命令和参数,详细请查man)
-
useradd :新增用户
-
groupadd :新增组
-
passwd :修改用户密码
-
gpasswd :修改组密码
-
userdel :删除用户
-
groupdel :删除组
-
usermod :修改用户账号
-
groupmod :修改组账号
-
chsh :修改用户的shell
-
chfn :修改注释信息
-
chage :修改密码时效
(1)useradd
-u UID :指定UID
-g GID :指定所属的基本组
-G GID : 指定所属的附加组
-c 'COMMENT' :注释信息
-d /path/to/somewhere :指定家目录,如果此目录事先存在,会有警告信息
备注:在家目录中其实会有一些文件
例如:ls -a /home/user1 ————> . .. .bash_logout .bash_profile .bashrc
这些文件是从系统/etc/skel 下拷贝过来的
-s SHELL :指定SHELL,SHELL必须是在/etc/shells文件中存在的shell
备注 /etc/shells是系统中支持的shell
其中/sbin/nologin 表示不给用户登录
-m :强制给用户创建家目录
-M :不给用户创建家目录
-r :创建系统用户
(2)groupadd
-g GID:指定GID
-r :系统组
(3)passwd
普通用户仅能修改自己的密码
管理员 能修改全部用户的密码
passwd [username]
–stdin : 不需要交互式输入密码
-l :锁定用户
-u :解锁用户
(4)gpasswd
gpasswd[-a user][-d user][-A user,…][-M user,…][-r][-R]groupname
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
备注:给组账号设置完密码以后,用户登陆系统,使用newgrp命令,输入给组账号设置的密码,就可以临时添加到指定组,可以管理组用户,具有组权限。格式:newgrp 【组名】
(5)userdel
userdel [options] USERNAME
-r: 一并删除用户及家目录
(6)groupdel
groupdel GRPNAME
(7)usermod
usermod [options] USERNAME
-u UID : 修改UID
-g GID :修改用户的基本组
-G GID,….:修改用户附加组;此选项通常跟-a一起使用,以最佳方式修改附加组,表示不覆盖原有的附加组
例子:usermod -a -G mygrp,testgrp user6
-c COMMENT:指定注释信息
-d /path/to/somewhere :修改家目录的位置;同时使用-m选项可保证创建家目录,并将用户原有的文件移动至新的家目录中
-s SHELL:修改SHELL
-l LOGIN_NAME:修改用户名
-L :锁定用户
-U :解锁用户
(8)groupmod
-g GID
-n NEW_GRP_NAME
(9)chsh
chsh USERNAME
(10)chfn
chfn USERNAME
(11)chage
chage[options] USERNAME
实例截图:
(1)useradd
(2)groupadd
(3)passwd
(4)gpasswd
(5)userdel
(6)groupdel
(7)usermod
(8)groupmod
(9)chsh
(10)chfh
(11)chage
三、查询用户信息相关命令
-
id :显示用户信息
-
who :显示目前登入系统的用户信息
-
whoami :显示自身的用户名称
-
finger :查询用户的相信信息,例如用户的用户名、主目录、停滞时间、登录时间、登录shell等信息
(1)id
id USERNAME
-g:显示用户所属的基本组
-G:显示用户所有组(默认显示数字)
-n:显示名称
-u:显示UID
(2)who
who [option]
-H :显示各栏位
(3)whoami
whoami [–help][–version]
(4)finger
finger [-lmsp] [user …] [user@host …]
-l : 多行显示来描述信息,例如关于用户家目录,家庭电话,登录脚本等内容
实例截图:
(1)id
(2)who
(3)whoami
(4)finger
四、切换用户命令
su: switch user
su [OPTIONS] USERNAME
-l:完全切换 ,l可省略
备注:如果不使用“-l”切换用户,只是切换了过去,但其实环境变量,家目录都没有改变。
-c 'COMMAND':仅以指定用户运行命令,并取回结果(一般用于脚本中)
例子:su wqp -c 'ls' ————> fstab
表示并不切换账号而执行某个命令
实例截图:
五、命令总结
(1)用户和用户组相关的配置文件管理: /etc/passwd , /etc/group , /etc/shadow ,/etc/gshadow
(2)用户账号管理相关命令 : useradd , groupadd , passwd , gpasswd , userdel , groupdel , usermod , groupmod , chsh , chfn , chage
(3)查询用户信息相关命令: id , who,whoami,finger
(4)切换用户命令: su
原创文章,作者:螃蟹,如若转载,请注明出处:http://www.178linux.com/5234