Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息
/etc/shadow用户密码及其相关属性
/etc/group组及其属性信息
etc/gshadow组密码及其相关属性
/etc/passwd
1.用户名:
2.密码位😡
pwconv (默认) 将密码映射到了/etc/shadow
pwunconv 将密码保存到/etc/passwd中,删除/etc/shadow文件
3.UID:
每个用户都有一个UID,UID为0时,说明是管理员帐户。
CentOS6 1-499为系统用户,预留
CentOS7 1-999为系统用户,预留
4.GID:
主要组:每个有且仅有一个主要组,当用户创建时,自动创建一个与用户同名的组作为主要组。
辅助组:用户可以有零个或多个辅助组。
5.描述位
chfn username 设置用户的描述
getant passwd magedu 是截取passwd中有magedu的那一行
finger username (默认没有安装)查看用户的信息
6.家目录
usermod -d /home/magedunew magedu 修改家目录
7.默认的登录Shell
usermod -s /sbin/nologin magedu 修改shell
chsh -s /sbin/nologin magedu
magedu:x:500:500::/home/magedu:/bin/bash
用户名 密码 UID GID 描述位(可以为空) 家目录shell(用户登录获取的)
/etc/shadow
getent shadow [username] 截取shadow中有usename的那一行
1.username
2.密码位: sha512 sha256 md5 $id$salt$password
authconfig –passalgo=sha256 –update 改变密码的算法为sha256
!!用户被锁定
usermod -L 锁定用户
usermod -U 解锁用户-p password
3.密码上一次的修改日期(从1970-1-1到修改的时间经过了多少天来表示)
4.密码最小存活期
5.密码最大存活期
6.密码过期之前提前多少天提醒用户(在正确登录时)
7.密码过期之后多少天帐户过期(在正确登录时)
8.帐户过期时间(自1970-1-1到该天经过了多少天来表示)
9.保留位
chage-l username 显示帐户的密码信息
-d 指定密码的上次修改时间(yyyy-mm-dd)
-d 0 则强制用户下次登录时必须修改密码
-E 指定账户的过期时间
-I 密码过期之后多少天帐户过期
-m 设置最小存活时间
-M 设置最大存活时间
-W 设置密码过期前的提醒时间
chage username交互式修改用户的密码策略
Shadow中用户magedu的信息:
magedu:$6$o31piJ4ZyS6plnbG$TyznYJmxdGY3bPUxxrGimj2uiiW43nPA8tlbqIsfWxq5mrbB6Pjhyp9mPM5zoxAQb.AEPDelOhXyeH39l.7HP0:17367:0:99999:7:::
/etc/group
getent group [groupname]
1.groupname:组名
2.密码位:x
3.gid:
CentOS6 1-499为系统组,预留
CentOS7 1-999为系统组,预留
4.组成员:将该组作为辅助组的成员列表。当成员先把该组当作辅助组,再转成主要组时,不改变。当成员离开该组时,被删除。
gid和uid不一定一致 (我先创建一个组,此时该组就占用一个gid(比如1001)号,再创建一个用户,该用户就自动创建一个与用户名同名的主要组,而该组的gid号就应为1002,uid号为1001.
/etc/gshadow
getent gshadow [groupname]
1.groupname:组名
2.密码位:
gpasswd groupname设置组密码
newgrp groupname(普通用户)
当用户不是该groupname的辅助组成员时,则需要输入密码,成功后临时以主要组的身份加入该组。
当用户是该groupname的辅助组成员时,无需输入密码,将临时以主要组的身份加入该组,而其原有的主要组,临时变为辅助组。
查看app中的所有内容,我们可以看到目录make的所属组是admin,当前是在mage这个用户下,他的主要组是magedu,所以不能进入make,而使用newgrp admin后,就会临时使magedu这个用户的主要组变成admin,而原本的主要组magedu变成附加组,此时就能进入目录make了。(当一个用户想要进入一个文件时,先看这个文件的所属组,若这个所属组设有密码时,当这个用户的主要组或附加组和该文件的所属组相同时,就能进入该文件,不相同时就不能进入该文件)newgrp groupname进入临时会话内容,不会记录到文件中,此时id username只能查看你登陆时的信息,不能查看修改之后的信息
3.管理员:只能由root任命或撤销,可以同时有多名,以,(逗号)为间隔。权利:可以修改组密码,可以将用户从该组(辅助组)当中添加或删除。
任命 gpasswd -A xiaoqiao,luren admin撤消所有管理员:gpasswd -A “” admin
gpasswd -a libai admin 往组中增加用户
gpasswd -d libai admin 将用户从组中删除
gpasswd -r admin 删除组密码
gpasswd -R admin 限制非辅助组用户可以通过newgrp admin获取主组权限。当前密码被删除替换为!
gpasswd -M redhat,libai admin 设置辅助组的成员列表。
groupmems 主要是对附加组的操作,加的是附加组
groupmems -g admin -a libai (仅能一次加一个用户到组中)
groupmems -g admin -d libai 将指定成员从组中删除
groupmems -g admin -l 列出指定组的成员列表(辅助组) 等效
getent groupadmin
groupmems -p admin 消除指定组的所有成员。
4.组成员:将该组作为辅助组的成员列表。当成员先把该组当作辅助组,再转成主要组时,不改变。当成员离开该组时,被删除。
注意:groups username 查看指定用户属于哪些组
[root@centos7 etc]# groupmems -g administrator -l 查看administrator组中的成员
change libai bajie
[root@centos7 etc]# groups shaseng 查看大圣这个用户属于哪些组
shaseng : shaseng yutu bajie
/etc下passwd , shadow , group, gshadow 各自的内容
useradd
-u uid username 创建用户时指定uid(如不指定则Centos6:500-60000, Centos7: 1000-60000)
-o -u uid username 创建用户时指定uid(可以与已存在用户的uid相同)
-g groupname username 创建用户时指定主组为某个已存在的组。(将不会再创建与用户同名的组)
-c … username 创建用户时指定描述信息。
chfn … username
-d path username 指定用户的家目录(确保指定的家目录所在的上级目录要存在,且家目录本身不能存在)(家目录里的内容可以从/etc/skel中递归复制)
-s /sbin/nologin username 指定用户的默认shell
-G group1[,group2] username 指定用户的辅助组
-N username 设置用户的主要组为默认组(users,uid=100)
-r username 创建系统用户
/etc/default/useradd
/etc/login.defs
usermod
usermod -u newuid username 修改用户的UID
-o -u newuid username 修改用户的uid(可以与已存在用户的uid相同) -aG 加组名,可以追加辅助组而不用覆盖之前的组
-G “” username 或usermod -G primarygroup username清空用户所有的辅助组
-g groupname username 修改用户的主组
-s /sbin/nologin username 修改用户的默认shell
-c … username 修改用户时指定描述信息。
chfn … username
-d /…/path username 修改用户的家目录(不会创建,只修改/etc/passwd当中的家目录信息)
-m -d /…/path username 修改用户的家目录信息,并将家目录移动到目的目录并改名。
-l newname oldname 修改用户名
-L 给用户/etc/shadow中的密码位加!使用户被锁定
-U 把!拿掉。
-e yyyy-mm-dd 设置一个帐户过期时间
-f days 指定密码过期之后多少天帐户过期
vipw = vim /etc/passwd
vipw -s = vim /etc/shadow
vigr = vim /etc/group
vigr -s = vim /etc/gshadow
pwck 检查/etc/passwd /etc/shadow
grpck 检查/etc/group /etc/gshadow
练习:
1、创建用户gentoo,附加组为bin和root,默认shell为
/bin/csh,注释信息为“Gentoo Distribution”
useradd -G bin,root -c “Gentoo Distribution” -s /bin/csh gentoo
2、创建下面的用户、组和组成员关系
名字为admins 的组
用户natasha,使用admins作为附属组
用户harry,也使用admins作为附属组
用户sarah,不可交互登录系统,且不是admins的成员,
natasha,harry,sarah密码都是centos
groupadd admins
useradd -G admins natasha
useradd -G admins harry
useradd -s /sbin/nologin sarah
passwd natasha
passwd harry
passwd sarah
userdel [-r] username
删除用户时,加上-r连同其家目录,mail一同删除
id
id username
id -u 用户的uid
id -un 用户名
id -g 主要组的gid
id -gn 主要组的名字
su switch user
su username 非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su – username 登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
-c ‘command’ 以用户的身份执行命令而不登录
passwd
usename 更改用户的密码 仅root用户才有权限修改其他用户的密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
–stdin:从标准输入接收用户密码(可以批量创建用户的密码)
echo “PASSWORD” | passwd –stdin USERNAME
groupadd-g gid groupname 创建指定gid的组
-r groupname 创建系统组
groupmod
-n newgrpname oldgrpname 修改组名
-g newgid groupname 修改gid
groupdelgroupname 删除组
原创文章,作者:fuming,如若转载,请注明出处:/82292
如果觉得《linux用户的主要配置文件 Linux用户和组的主要配置文件及其相关命令》对你有帮助,请点赞、收藏,并留下你的观点哦!