Linux账号管理之第一篇:对用户进行管理(一般都是系统管理员进行的操作) useradd usermod passwd userdel chage finger chfn chsh id 等命令
一、账号登录的时候进行了哪些操作?
Linux 系统上面的用户如果需要登入主机以取得 shell 癿环境来工作时,他需要如何进行呢?
首先,他必须要在计算机前面利用 tty1~tty7 的终端机提供的 login 接口,并输入账号和密码后才能够登入。 如果是透过网绚的话,那至少使用者就得要学习 ssh 这个功能了 (朋务器篇再来谈)。 那举你输入账号密码后,系统帮你处理了什么呢?
1. 先找寻 /etc/passwd 里面是否有你输入的账号?如果没有则跳出,如果有的话则将该账号对应的UID 和 GID (在 /etc/group 中) 读出来,另外,该账号的家目录和 shell 设定也一并读出来
2. 再来则是核对密码表!这时 Linux 会进入 /etc/shadow 里面找出对应的账号和 UID,然后核对一下你刚刚输入的密码与里面的密码是否相符?
3. 如果一切都 OK的话,就进入 Shell 控管的阶段!
二、熟悉掌握 /etcpasswd /etc/shadow /etc/group 等和账号密码的几个目录。
1、/etc/passwd 的档案结构:(6个分号7个字段)
用户名:密码(加密):UID:GID:用户信息:家目录:shell设置 (6个分号7个字段)
如:root:x:0:0:root:/root:/bin/bash
如:daemon:x:2:2:daemon:/sbin:/sbin/nologin
注意:
UID值的设置
0:系统管理员(root)
1~499:系统账号(保留给系统使用的ID ,我们不能使用该账号操作和登录)
500~65535:给一般者使用的账号(现在的值肯定不止65535那么大)
2、/etc/shadow 的档案结构:(8个分号9个字段)
用户名:
密码:
最近更改密码日期:
密码不可被更动的天数:
密码需要重新变更的天数:
密码需要变更期限前的警告天数:
密码过期后的账号宽限时间(密码失效日):
账号失效日期:
保留字段
如:dmtsai:$1$vyUuj.eX$omt6lKJvMcIZHx4H7RI1V.:14299:5:60:7:5:14419:..
3、/etc/group 档案结构 (3个分号4个字段)
组名:组密码:GID:此组群支持的账号名称
如:daemon:x:2:root,bin,daemon
注意:一个组群可以支持多个账号名称
三、账号的创建(对用户进行管理) 命令:useradd
1、语法格式:
默认创建用户:useradd 用户名
加参数进行创建:useradd [-u UID] [-g 刜始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录的绝对路径] [-s shell] 使用者账号名
选项与参数:
u :后面接癿是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;(对应/etc/passwd 的第3字段)
-g 初始群组;该群组的 GID 会被放置刡 /etc/passwd 的第四个字段内(对应/etc/passwd 的第4字段)
-G 次要群组;后面接的组名则是这个账号还可以加入的群组(也是对应/etc/passwd 的第4字段)
-c :这个就是说明信息(可以随便我们设定)(对应/etc/passwd 的第5字段)
d :指定某个目录为家目录,而不要使用默讣值。务必使用绝对路径!(对应/etc/passwd 的第6字段)
-M :强制!不要建立用户家目录!(系统账号默认值)(也是对应/etc/passwd 的第6字段)
-m :强制!要建立用户家目录!(一般账号默认值)(也是对应/etc/passwd 的第6字段)
-s :后面接一个shell ,若没有挃定则预训是 /bin/bash;(对应/etc/passwd 的第7字段)
-r :建立一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs)
-e :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段,就是账号失效日的设定项目;
-f :后面接 shadow 的第七字段项,指定密码是否会失效。0为立刻失效,-1为永远不会失效(密码只会过期而强制于登入时重新设定而已。)
四、对于(上面是创建时直接赋予用户参数,这里是创建好了之后在赋予或者修改参数)已经创建好了的用户,修改用户的属性操作?(修改的一般是/etc/passwd 档案里的内容) 命令:usermod
语法:
usermod [-cdegGlsuLU ] 用户名
选项与参数说明:
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据(即失效密码的日期)
-f :后面接天数,为 shadow 的第七字段。
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是/etc/group
-a :与 -G 合用,可『增加次要群组的支持』而非『设定』
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码解冻
五、密码操作的一系列语法。 命令:passwd
注意:修改的一般是/etc/shadow 档案里面的内容
命令格式:
passwd [-l] [-u] [--sdtin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
选项与参数说明:
--stdin:可以透过来自前一个管线的数据,作为密码输入,对shell script有帮助!
-l :是 Lock(锁定账户)的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与 -l 相对,是 Unlock(解锁账户)的意思!
-S :列出密码相关参数,即 shadow 档案内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要变更密码
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接日期,shadow 的第 7 字段,密码失效的日期
更多信息请查看 passwd --help 或 man passwd
六、chage 命令的用法(基本上和passwd用法差不多,只是chage 显示的参数更清楚一些)
语法格式:
chage [ -ldEImMW ] 用户名
选项与参数说明:
-l :列出该账号的详细密码参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式YYYY-MM-DD
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I :后面接天数,修改 shadow 第七字段(密码失效日期)
-m :后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M :后面接天数,修改 shadow 第五字段(密码多丽需要进行变更)
-W :后面接天数,修改 shadow 第六字段(密码过期前警告日期)
七、删除用户。 命令:userdel
命令格式:userdel [ -r ] 用户名
不加参数代表只是删除该用户
加了参数 [ -r ] 代表-r :连同用户的家目录和所有的配置也一起删除
特别注意事项:其实用户如果在系统上面操作过一阵子了,那该用户其实在系统内可能会含有其他档案的。 举例来说,他的邮件信箱 (mailbox) 或者是例行性工作排程之类的档案。 所以,如果想要完整的将某个账号完整的删除,最好可以在下达 userdel -r username 之前先以命令[ find / -user username ]查出整个系统内属于 username 的档案,然后再加以删除。
八、其他命令:(请查看帮助文档)
finger 命令
作用:查看用户的信息(指的是/etc/passwd 档案里面的第5字段的信息)
chfn 命令
作用:修改用户的信息(指的是/etc/passwd 档案里面的第5字段的信息)
chsh 命令
作用:查看用户的shell信息和修改用户的shell
语法:chsh -l 查看用户支持哪些shell
chsh 用户名 修改该用户的shell (具体是修改/etc/passwd 档案下的第7字段)
id 命令