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 这个指令。
一个是群组 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 这个指令。
相关文章推荐
- linux基础概念和个人笔记总结(2)——账号和权限管理实验验证
- Linux账号与用户管理--笔记
- 【Linux学习笔记】账号管理
- Linux用户账号管理笔记(2015-3-22)
- Linux学习笔记之 7 Linux用户账号管理
- LINUX 学习笔记 账号与群组的管理
- Linux 账号管理与权限设置笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第14章 Linux账号管理和ACL权限设定1。 笔记
- Linux账号管理(笔记)
- 《鸟哥的linux私房菜》笔记之Linux账号管理
- Linux笔记(七)-用户和用户组管理
- 《鸟哥的Linux的私房菜》 学习笔记——原码与Tarball套件管理
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- Linux常用命令笔记2---文件管理2
- IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)
- Linux笔记(34)——rpm包安装与管理
- Linux学习笔记——软件包管理
- Linux笔记_系统管理
- Linux使用者管理(2)---账号管理
- Linux内核学习笔记八——定时器和时间管理