Linux中用户管理

Linux里查看所有用户

在终端里.其实只需要查看 /etc/passwd文件就行了。
看第三个参数:500以上的,就是后面建的用户了,其它则为系统的用户。

或者用下面命令,列出所有的用户名:

cat /etc/passwd |cut -f 1 -d :

Linux 系统中用户信息存放在 /etc/passwd 文件中。
这是一个包含每个用户基本信息的文本文件。当我们在系统中创建一个用户,新用户的详细信息就会被添加到这个文件中。

/etc/passwd 文件将每个用户的基本信息记录为文件中的一行,一行中包含 7 个字段。

7 个字段的详细信息如下。

用户名 (magesh): 已创建用户的用户名,字符长度 1 个到 12 个字符。
密码(x):代表加密密码保存在 `/etc/shadow 文件中。
**用户 ID(506):代表用户的 ID 号,每个用户都要有一个唯一的 ID 。UID 号为 0 的是为 root 用户保留的,UID199 是为系统用户保留的,UID100-999 是为系统账户和群组保留的。
**群组 ID (507):代表群组的 ID 号,每个群组都要有一个唯一的 GID ,保存在 /etc/group文件中。
**用户信息(2g Admin - Magesh M):代表描述字段,可以用来描述用户的信息(LCTT 译注:此处原文疑有误)。
**家目录(/home/mageshm):代表用户的家目录。
**Shell(/bin/bash):代表用户使用的 shell 类型。

/etc/passwd 文件的一行代表一个单独的用户。该文件将用户的信息分为 3 个部分。

* 第 1 部分:`root` 用户信息
* 第 2 部分:系统定义的账号信息
* 第 3 部分:真实用户的账户信息

第一部分是 root 账户,这代表管理员账户,对系统的每个方面都有完全的权力。

第二部分是系统定义的群组和账户,这些群组和账号是正确安装和更新系统软件所必需的。

第三部分在最后,代表一个使用系统的真实用户。

在创建新用户时,将修改以下 4 个文件。

  • /etc/passwd: 用户账户的详细信息在此文件中更新。
  • /etc/shadow: 用户账户密码在此文件中更新。
  • /etc/group: 新用户群组的详细信息在此文件中更新。
  • /etc/gshadow: 新用户群组密码在此文件中更新。

用户管理命令

命令作用例子
useradd添加用户
adduser添加用户
passwd为用户设置密码passwd user1 注意:没有设置密码的用户不能使用
usermod修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;将用户 user1的登录名改为 u1,usermod –l u1 user1
pwcov同步用户从/etc/passwd 到/etc/shadow
pwckpwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger查看用户信息工具
id查看用户的UID、GID及所归属的用户组
chfn更改用户信息工具
su用户切换工具
sudosudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudovisodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit和sudo 功能差不多;

详细使用:

在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。
创建用户user1的时候指定其所属工作组users,例:useradd –g users user1

管理用户组(group)的工具或命令

命令作用例子
groupadd添加用户组;
groupdel删除用户组;
groupmod修改用户组信息groupmod –n user users 修改组名users为user
groups显示用户所属的用户组
grpck
grpconv通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件

扩展

使用 getent 命令

getent 命令显示 Name Service Switch 库支持的数据库中的条目。这些库的配置文件为 /etc/nsswitch.conf。

getent 命令显示类似于 /etc/passwd 文件的用户详细信息,它将每个用户详细信息显示为包含七个字段的单行。

getent passwd

使用 compgen 命令

compgen 是 bash 的内置命令,它将显示所有可用的命令,别名和函数。

compgen -u

其他扩展

一、用户:
在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user1

1、使用命令 useradd 创建用户
例:useradd user1——创建用户user1
useradd –e 12/30/2009 user2——创建user2,指定有效期2009-12-30到期
用户的缺省UID从500向后顺序增加,500以下作为系统保留账号,可以指定UID,
例:useradd –u 600 user3

2、使用 passwd 命令为新建用户设置密码
例:passwd user1
注意:没有设置密码的用户不能使用。

3、命令 usermod 修改用户账户
例:将用户 user1的登录名改为 u1,

usermod –l u1 user1
1
例:将用户 user1 加入到 users组中,

usermod –g users user1
1
例:将用户 user1 目录改为/users/us1

usermod –d /users/us1 user1
1
4、使用命令 userdel 删除用户账户
例:删除用户user2

userdel user2
1
例:删除用户 user3,同时删除他的工作目录

userdel –r user3
1
5、查看用户信息
id命令查看一个用户的UID和GID, 例:查看user4的id
id user4
finger命令 ——可以查看用户的主目录、启动shell、用户名、地址、电话等信息
例:finger user4

二、用户组:
6、命令 groupadd创建用户组
groupadd –g 888 users
1
创建一个组users,其GID为888

7、命令 gpasswd为组添加用户
只有root和组管理员能够改变组的成员:
例:把 user1加入users组

gpasswd –a user1 users
1
例:把 user1退出users组

gpasswd –d user1 users
1
8、命令groupmod修改组
groupmod –n user users 修改组名user为users

9、groupdel删除组
groupdel users 删除组users

三、命令详解:
◆ useradd命令

  1. 作用

useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

  1. 格式

useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
1
3. 主要参数

-c:加上备注文字,备注文字保存在passwd的备注栏中。 
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。(-s 后面填写此用户登录后使用的shell种类的路径,shell在/bin目录下一般有/bin/sh 、 /bin/bash 、 /bin/ksh 、/bin/tcsh、/bin/zsh ;shell是用户与系统沟通的接口,各种不同的shell只是命令语法有所不同而已。)
-u:指定用户ID号。

  1. 说明

useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

应用实例
建立一个新用户账户,并设置ID:

#useradd caojh -u 544
1
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

◆ groupadd命令

  1. 作用

groupadd命令用于将新组加入系统。

  1. 格式

groupadd [-g gid] [-o]] [-r] [-f] groupname
1
3. 主要参数

-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。

  1. 应用实例

建立一个新组,并设置组ID加入系统:

#groupadd -g 344 cjh
1
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值