linux笔记十( Linux 账号管理)

来源:互联网 发布:崇州行知中学 编辑:程序博客网 时间:2024/06/11 18:09
每个登入的使用者至少都会取得两个 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 这个指令。



原创粉丝点击