您的位置:首页 > 运维架构 > Linux

linux笔记十( Linux 账号管理)

2012-09-07 20:31 253 查看
每个登入的使用者至少都会取得两个 ID ,一个是使用者 ID (User ID ,简称 UID)、

一个是群组 ID (Group ID ,简称 GID)。

跟使用者账号有关的有两个非常重要的档案,一个是管理使用者 UID/GID

重要参数的 /etc/passwd ,一个则是与门管理密码相关数据的 /etc/shadow 。

/etc/passwd 档案结构

例如:root:x:0:0:root:/root:/bin/bash

1、账号名称 2、密码

3、UID

这个就是使用者标识符啰!通常 Linux 对于 UID 有几个限制需要说明一下:



4、GID 5、用户信息说明栏 6、家目录

7、shell

有一个 shell 可以用来替代成让账号无法取得 shell 环境的登入动作!那就是

/sbin/nologin 这个东西

/etc/shadow 档案结构

例如:root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::

1、账号名称 2、密码 3、最近更动密码的日期 4、密码不可被更动的天数(与第 3 字段相比)

5、密码需要重新变更的天数:(与第 3 字段相比) 6、 密码需要变更期限前的警告天数(与第 5 字段相比)

7、密码过期后的账号宽限时间(密码失效日)(与第 5 字段相比) 8、 账号失效日期 9、保留

关于群组: 有效与初始群组、groups, newgrp

/etc/group档案结构

例如:root:x:0:root

1、组名 2、群组密码 3、GID 4、此群组支持的账号名称



有效群组(effective group)与初始群组(initial group)

每个使用者在他的 /etc/passwd 里面的第四栏有所谓的GID 吧?那个 GID 就是所谓的『初始群

组 (initial group) 』,也就是说,当用户一登入系统,立刻就拥有这个群组的相关权限的意思。

groups: 有效与支持群组的观察

该如何知道我所有支持的群组呢? 很简单啊,直接输入groups 就可以了,而且, 第一

个输出的群组即为有效群组 (effective group) 了。

newgrp: 有效群组的切换

那么如何变更有效群组呢?就使用 newgrp 啊!不过使用 newgrp 是有限制的,那就是你想要切换的群

组必须是你已经有支持的群组。

/etc/gshadow

1. 组名

2. 密码栏,同样的,开头为 ! 表示无合法密码,所以无群组管理员

3. 群组管理员的账号 (相关信息在 gpasswd 中介绍)

4. 该群组的所属账号 (与 /etc/group 内容相同!)

账号管理

新增与移除使用者:useradd, userdel 相关配置文件, passwd, usermod

useradd



用户账号与密码参数方面的档案:/etc/passwd, /etc/shadow

使用者群组相关方面的档案:/etc/group, /etc/gshadow

用户的家目录:/home/账号名称

useradd 的默认值这个数据是由/etc/default/useradd 呼出来的。

针对群组的角度有两种不同的机制:私有群组机制、公共群组机制。

使用 useradd 这支程序在建立 Linux 上的账号时,至少会参考以下档案:

/etc/default/useradd

/etc/login.defs

/etc/skel/*

passwd





chage

除了使用 passwd -S 之外,有没有更详细的密码参数显示功能呢?有的!那就是 chage 了



chage 有一个功能很不错!可以让『使用者在第一次登入时, 强制她们一定要更改密码后才能

够使用系统资源』。

Linux 有提供相关的指令让大家来进行账号相关数据的微调呢~那就是 usermod 啰



userdel

这个功能就太简单了,目的在删除用户的相关数据,而用户的数据有:

用户账号/密码相关参数:/etc/passwd, /etc/shadow

使用者群组相关参数:/etc/group, /etc/gshadow

用户个人档案数据: /home/username, /var/spool/mail/username..

[root@www ~]# userdel [-r] username

选项与参数:

-r :连同用户的家目录也一起删除

用户功能

finger

finger可以查阅很多用户相关的信息, 大部分都是在 /etc/passwd 这个档案里面的信息

[root@www ~]# finger [-s] username

选项与参数:

-s :仅列出用户的账号、全名、终端机代号与登入时间等等;

-m :列出与后面接的账号相同者,而不是利用部分比对 (包括全名部分)

chfn

chfn 有点像是: change finger 的意思

[root@www ~]# chfn [-foph] [账号名]

选项与参数:

-f :后面接完整的大名;

-o :您办公室的房间号码;

-p :办公室的电话号码;

-h :家里的电话号码!

chsh

这就是 change shell 的简写

[vbird1@www ~]$ chsh [-ls]

选项与参数:

-l :列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容!

-s :设定修改自己的 Shell

id

id 这个指令则可以查询某人或自己的相关 UID/GID 等等的信息

[root@www ~]# id [username]

新增与移除群组

groupadd

[root@www ~]# groupadd [-g gid] [-r] 组名

选项与参数:

-g :后面接某个特定的 GID ,用来直接给予某个 GID ~

-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。

groupmod

这个指令仅是在进行 group 相关参数的修改而已

[root@www ~]# groupmod [-g gid] [-n group_name] 群组名

选项与参数:

-g :修改既有的 GID 数字;

-n :修改既有的组名

groupdel

groupdel 自然就是用在删除群组的

[root@www ~]# groupdel [groupname]

gpasswd:群组管理员功能

# 关于系统管理员(root)做的动作:

[root@www ~]# gpasswd groupname

[root@www ~]# gpasswd [-A user1,...] [-M user3,...] groupname

[root@www ~]# gpasswd [-rR] groupname

选项与参数:

:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)

-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)

-M :将某些账号加入这个群组当中!

-r :将 groupname 的密码移除

-R :让 groupname 的密码栏失效

# 关于群组管理员(Group administrator)做的动作:

[someone@www ~]$ gpasswd [-ad] user groupname

选项与参数:

-a :将某位使用者加入到 groupname 这个群组当中!

-d :将某位使用者移除出 groupname 这个群组当中。

su

单纯使用 su 切换成为 root的身份,读取的变量设定方式为 non-login shell 的方式,这种方式很

多原本的变量不会被改变, 尤其是我们之前谈过很多次的 PATH 这个变量。

sudo

相对于su 需要了解新切换的用户密码 (常常是需要root的密码), sudo 的执行则仅需要自己的密码即

可!甚至可以设定不需要密码即可执行 sudo 呢!由于 sudo 可以让你以其他用户的身份执行指令 (通

常是使用root的身份来执行指令),因此并非所有人都能够执行 sudo , 而是仅有规范到/etc/sudoers

内的用户才能够执行 sudo 这个指令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: