首页 » 性感的程序员 » linux用户和用户组

linux用户和用户组

一.用户和用户组

1. /etc/group 储存当前系统中所有用户组信息

Group:x:123:abc,def,xyz
组名称:组密码占位符:组编号:组中用户名列表

用户组编号1至499是系统预留编号,是用来分配给软件的.安装一个软件就会创建该软件的一个用户组并分配一个用户组编号.越早安装的软件,编号越小.
用户手动创建的用户组编号是从500开始的.

2. /etc/gshadow 粗存当前系统中用户组密码信息

group:*: :abc,def,xyz
组名称:组密码:组管理者:组中用户名列表

组密码为 , *! ,我们都可以认为组密码为空,也就是组密码是没有密码的.
那个用户可以管理该用户组.一般为空,表示所以用户都可以管理该用户组.

3. /etc/passwdn 存储当前系统中所有用户的信息

user:x:123:456:xxxxxx:/home/user:/bin/bash
用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型

系统添加用户的时候,可以给用户添加备注信息. shell 是用来执行用户输入指令的硬件接口.我们一般使用 /bin 目录下的 bash 这个 shell 来下达用户执行的指令.

用户被创建后,会在相应目录下创建相关的用户主目录.

4. /etc/shadow 存储当前系统中所有用户的密码信息

user:vf:/Zus8dk... : : : :
用户名:密码

密码是单向加密的,我们无法看出原始密码是什么。后面包含了用户创建时间,用户信息上一次登录的信息等等

二.用户和用户组的基本命令

1. groupadd 创建用户组

groudadd fyyf

[ 创建fyyf 这个用户组. ]

groupadd -g 667 boss
[ -g 创建用户组并指定组编号 ]

创建用户组后,会按照默认顺序创建组编号.通过 vi /etc/group 可查看. 

2. groupmod 改变用户组信息

groupmod -n fyyf2 fyyf

[ -n 改变组名称.将 fyyf 组名改为 fyyf2 ]

groupmod -g 666 fyyf2
[-g 改变组编号 ]

3. groupdel boss

groupdel boss

[ 删除用户组.得先删除用户,才能删除用户组 ]

4. useradd

useradd -g fyyf2 jh

[ -g 指定用户组,添加用户]

useradd -d /data/user/jh jh

[ -d 创建用户时,指定用户的个人文件夹.如果不指定,就会在home目录下创建要给和用户名同名的文件夹.不指定用户组,则系统默认创建一个和用户名相同的用户组. ]

5. usermod

usermod -c hehe jh

[ -c 为用户添加用户信息,即注释.该例子的注释信息为 hehe ]

usermod -l nodejh jh
[ -l 更改用户名.将新的用户名写在前面,旧的用户名写在后面. ]

`usermod -d /data/user/nodejh nodejh

[ -d 修改用户的默认路径 ]

usermod -g root noedejh

[ -g 将某个用户加入用户组.将用户 nodejh 加入 root 用户组 ]

6. userdel 删除用户

userdel nodejh

[ 删除用户 nodejh ,但不会删除个人文件.若要同时删除文件,需要加参数 -r,即 userdel -r nodejh ]

7. 其他命令

  1. 禁止普通用户登录 touch /etc/nologin 禁止除了root意外所有用户登录
  2. passwd -l cls 锁定账户
  3. passwd -u cls 解锁用户
  4. passwd -d cls 清楚密码,实现无密码登陆

三.主要组与附属组

用户可以同时属于多个组:一个主要组,多个附加组.

gpasswd -a dsgygb boss

[ 将 dsg 账号添加到 boss 附属组;添加多个附属组用逗号隔开. ]

usermod -g

[ 修改主要用户组 ]

newgrp boss

[ 切换用户组.在自己的账号下,将当前登录的这个用户切换到 boos 组.当用户需要将身份切换到附属组的时候,若附属组有组密码,则切换的时候需要输入组密码. ]

gpasswd -d dsgygb boss

[ 删除附属组 ]

useradd -g group -G group1,group2

[添加用户,并添加主用户组和附属组 ]

gpasswd fyyf2

[ 给用户组设置组密码.回车后,输入密码即可,需要确认两次 ]

su username

[ 切换用户.如果不加参数,则切换至root用户.需要输入密码. root 用户切换至普通用户不需要输入密码 ]

Whoami

[ 我是谁.显示当前登陆用户.不知道这个命令有什么意义,命令行前面明明已经有用户名... ]

id nodejh

[ 显示指定用户信息.包括用户编号,用户名,主要组编号及名称,附属组列表. ]

groups nodejh

[ 显示 nodejh 用户所在的用户组 ]

chfn nodejh

[ 设置用户资料,依次输入用户资料 ]

finger nodejh

[ 现实用户详细资料 ]