Linux用户用户组密码

转自http://wenku.baidu.com/link?url=WdYbGOgd5BpZ13ydzenc5fz7HJWsIfu42DG0pADhVPKV4q544TvaYq_VrI7jv92O-yN-lcGlP4bDAbOKb3GrmeK_gBFE-qWXTIp3I-Yo6AK

相关命令:

useraddusermoduserdel

groupaddgroupmodgroupdel

passwdgpasswdchage

idwhoamigroupsnewgrp

 

注:关于私有组、标准组、初始用户组、有效用户组、附加组和相关文件权限设置及概念临时小结:

私有组与标准组只是一个不专业的概念,私有组指这个组中只有一个用户,且用户名与该组名相同。标准组指私有组以外的其他组。

初始用户组指当前用户登录时设定所属的组,即/etc/passwd中第4gid所对应的组;

有效用户组指创建文件时文件的访问权限计算依据的组名,可以用newgrp临时更改有效用户组,也可以更改/etc/passwd中的GID来永久更改,因为默认登陆时有效用户组即为初始用户组(注意已经创建的文件访问权限依据的组不会因为主组的改变而改变。)

附加组指当前用户所属组(groups username)除有效用户组外的其他组。

而一个文件对某个用户有没有权限对于用户组来说,不管这个组是该用户的主组还是附加组,其判定方式都是一样的。

 

1. 添加用户组

使用groupadd命令添加用户组:
  groupadd <group_name>

此操作需由系统管理员进行。


2. 删除用户组

使用groupdel命令删除用户组:
  groupdel <group_name>

此操作需由系统管理员进行。


3. 定义组管理员

使用gpasswd命令指定组管理员:
  gpasswd -A <user> <group_name>

此操作需由系统管理员进行。


4. 设定组密码

使用gpasswd命令设定组密码:
  gpasswd <group_name>

此操作由组管理员进行。


5. 取消组密码

使用gpasswd命令取消组密码:
  gpasswd -r <group_name>

此操作由组管理员进行。

说明:取消密组码后,只有成员才可以通过newgrp命令切换入该组。


6. 添加组成员

使用gpasswd命令向指定组添加成员用户:
  gpasswd -a <user> <group_name>

此操作由组管理员进行。 (usermod也可以;)


7. 删除组成员

使用gpasswd命令从指定组中删除成员用户:
  gpasswd -d <user> <group_name>

此操作由组管理员进行。

 

概述

一、帐户概述

1、帐户实质

Linux 操作系统是一个多用户的操作系统,它允许多个用户同时登陆到系统上,使用系统资源。系统根据帐户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境(如用户的工作目录、SHELL 版本以及 X-Window 环境的配置等),使每个用户的工作都能独立不受干扰地进行。

2、用户和组

从广义上讲,Linux 帐户包括用户帐户和组帐户。

用户帐户

Linux 上的用户帐户有两种:普通用户帐户和超级用户帐户(root)。

普通用户帐户---普通用户帐户在系统上的任务是进行普通工作,

超级用户帐户---管理员在系统上的任务是对普通用户和整个系统进行管理。管理员帐户对系统具有绝对的控制权,能够对系统进行一切操作。

组帐户

组是用户的集合,在系统中组有两种:私有组和标准组,当创建用户的时候,没有为其制定属于哪个组,Linux 就会建立一个和用户同名的私有组,此私有组中只含有该用户。若使用标准组,在创建

新用户时,为其制定属于哪个组。当一个用户属于多个组时,其登陆后所属的组称为主组,其他的组称为附加组

二、Linux 环境下的帐户系统文件

Linux 环 境 下 的 帐 户 系 统 文 件 主 要 有 /etc/passwd 、 /etc/shadow 、/etc/group、/etc/gshadow 四个文件。

1、/etc/passwd

/etc/passwd 每行定义一个用户帐户,此文件对所有用户可读。一行又划分为多个字段定义用户帐号的不同属性,名字段间用“:”分隔。

/etc/passwd 文件中各字段的含义

用户名        用户登陆系统时使用的用户名,在系统中是唯一的

口令          存放加密的口令,口令是 x,这表明用户的口令是被/etc/shadow 文件保护的

用户标识号    系统内部用它来标识用户,每个用户的 UID 都是唯一的root 用户的 UID 号是 0,普通  

                               用户从500 开始,从1-499是系统的标准帐户。

组标识号      系统内部用它来标识用户所属的组

注释性描述    例如存放用户全名等信息

宿主目录      用户登陆系统后所进入的目录

命令解释      指示该用户使用的 Shell,Linux 默认的是 bash器

2、/etc/shadow

/etc/passwd 文件对任何用户均可读,为了增加系统的安全性,用户的口令通常用 shadow passwords 保护。/etc/shadow 只对 root 用户可读。

/etc/shadow 文件中各字段的含义

用户名                       用户的帐户名

口令                         用户的口令,是加过密的

最后一次修改的时间           从 1970 年 1 月 1 日起,到用户最后一次更改口令的天数

最小时间间隔                 从 1970 年 1 月 1 日起,到用户可以更改口令的天数

最大时间间隔                 从 1970 年 1 月 1 日起,到必须更改口令的天数

警告时间                     在口令过期之前多少天提醒用户更新

不活动时间                   在用户口令过期之后到禁用帐户的天数

失效时间                     从 1970 年 1 月 1 日起,到帐户被禁用的天数

标志                         保留位

3、/etc/group

将用户进行分组是 Linux 对用户进行管理及控制访问权限的一种手段。一个组中可以有多个用户,一个用户也可以属于多个组。该文件对所有用户可读。

/etc/group 文件中各字段的含义

组名      组的名称

组口令    用户组的口令,用 x 表示

GID       组的识别号,

组成员    该组的成员

4、/etc/gshadow

该文件用于定义用户组口令、组管理员等信息,该文件只有 root用户可读。

/etc/gshadow 文件中各字段的含义

组名               组的名称

组口令             用户组的口令,保存已加密的口令

组的管理员帐号     组的管理员帐号,管理员有权对该组添加、删除帐号

组成员             该组的成员,多个用户用‘,’分开

 

 

useradd:建立用户账号

语  法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]

 

补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

 

参  数:

 -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。  

 -d<登入目录>  指定用户登入时的启始目录。 

 -D  变更预设值. 

 -e<有效期限>  指定帐号的有效期限。 

 -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。 

 -g<群组>  指定用户所属的群组。 

 -G<群组>  指定用户所属的附加群组。 

 -m  自动建立用户的登入目录。 

 -M  不要自动建立用户的登入目录。 

 -n  取消建立以用户名称为名的群组. 

 -r  建立系统帐号。 

 -s<shell>   指定用户登入后所使用的shell。 

 -u<uid>  指定用户ID。 

如:

useradd (用户名)                   创建默认新用户

useradd –g(组名)(用户名)        创建用户帐户时加入某个组

useradd -s(shell 名)(用户名)    创建用户帐户时指定 shell

useradd -d(用户目录)(用户名)    创建用户帐户时指定用户目录

useradd -u(UID 号)(用户名)      创建用户帐户时指定UID号

useradd -p(口令)(用户名)        创建用户帐户时指定口令

 

usermod:修改用户相关信息

usermod –g(组名)(用户名)        修改用户加入某个组

usermod -s(shell 名)(用户名)    修改用户 shell

usermod -d(用户目录)(用户名)    修改用户目录

usermod -u(新 UID 号)(用户名)   修改用户 UID 号

usermod -p(口令)(用户名)        修改用户口令

usermod -l(新登陆名)(旧登陆名)  修改用户登陆名

usermod -L(用户名)                锁定用户帐号

usermod -U(用户名)                解锁用户帐号

 

userdel:删除使用者账号及相关档案

userdel [-r] 用户名

-r 删除用户帐号时删除用户目录。

警告

userdel不允许你移除正在线上的使用者帐号。你必须砍掉此帐号现在在系统上执行

的程序才能进行帐号删除。不能在NISclient端移除NIS属性的东西。这动做须在NIS

server端上执行

 

groupadd:建立新群组

groupadd [-g gid] group                              指定gid

groupadd(组帐户名)                 创建新组帐户

groupadd -r(系统组帐户名)         创建系统组帐户

 

 

groupmod:更改组信息

groupmod -g(新 GID)(组帐户名)   更改组的 GID 号

groupmod -n(新的组名)(旧的组名) 更改组帐户名

 

groupdel:删除群组

删除群组时,必须先删除与群组相关的所有用户

 

passwd:更新用户的密码

passwd [-dklS][-u <-f>] [--stdin] [用户名称]

    -d  删除密码。本参数仅有系统管理者才能使用。 

    -k  设置只有在密码过期失效后,方能更新。 

    -l  锁住密码。 

    -S  列出密码的相关信息。本参数仅有系统管理者才能使用。 

    -u  解开已上锁的帐号。

    -f  强制执行。

    --stdin 从标准输入读入密码

 

gpasswd:管理用户与用户组的交互

gpasswd -a(用户帐户名)(组帐户名) 将用户添加到指定组

gpasswd -d(用户帐户名)(组帐户名) 将用户从指定组中删除

gpasswd -A(用户帐户名)(组帐户名) 将用户指定为组的管理员

 

chage:查询更改/etc/shadow文件相关参数

chage [-l] 账号名

参数:

-l:列出该账号的详细密码参数

 

 

id:查询用户的uidgid

id [OPTION]... [USERNAME]

详解:

参  数:

 -g或--group  显示用户所属主组的ID。 

 -G或--groups  显示用户所属附加群组的ID。 

 -n或--name  显示用户,所属群组或附加群组的名称。 

 -r或--real  显示实际ID。 

 -u或--user  显示用户ID

补充说明:id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。

 

whoami                                显示当前用户的名称

 

groups(用户名)                      显示用户所属的组

groups相当于

pcbank)/home/pcbank>id -gn pcbank

pcbank

groups pcbank相当于

pcbank)/home/pcbank>id -Gn pcbank 

pcbank froadbank

 

newgrp(用户所属的组帐号)            转换用户的当前组到制定的组(会产生一个新的bash进程)

pcbank)/home/pcbank>newgrp froadbank

临时更改pcbank的主组ID为froadbank,此时在创建文件,文件的访问权限依据froadbank计算。已创建的文件不会变,重新登录时又会恢复成原样。

 

 

 

 

 

例子:

1、批量创建账号

假设我的5个朋友账号为vbirduser{1,2,3,4,5},且这5个朋友未来想要共享一个目录,因此想要加入同一个用户组,假设这个用户组为vbirdgroup,且这5个账号的密码均为password,则应如何创建。

#/bin/sh

 

groupadd vbirdgroup

for username in vbirduser{1,2,3,4,5}

do

  useradd -G vbirdgroup $username

  echo "password" | passwd --stdin $username

done

 

2、查询一个组vbirdgroup中包含的用户:

root)/root>cat /etc/group | grep "^vbirdgroup:" | awk 'BEGIN {FS=":"} {print $4}'

vbirduser1,vbirduser2,vbirduser3,vbirduser4,vbirduser5

root)/root>groups vbirdgroup

id: vbirdgroup:无此用户

 

所以有5个用户:

vbirduser1,vbirduser2,vbirduser3,vbirduser4,vbirduser5

 

 

 

另外:

创建一个用户时,系统会更改/etc/passwd   /etc/shadow /etc/group /etc/gshadow及用户主文件,相关默认的设置值是/etc/default/useradd文件中内容,可以useradd -D查看,那个/etc/skel/*内的文件内容为创建了用户主目录后的目录中的内容。

还会参考/etc/login.defs文件


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值