l /etc/passwd
# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
....省略
说明:
每一行都代表一个账号。有很多账号是系统中必须要的,简称系统账号,例如bin,nobody 等。每一行使用:分隔开,共有七段,分别是:
1, 账号名称。对应 UID 用的!
2, 密码:早期的Unix 系统的密码是放在这个文件中,但因为这个文件的特性是所有的程序都能够读取,所以考虑到安全问题,后来就将这个字段的密码数据给改放到 /etc/shadow中。这里的 x,表示密码已经被移动到 shadow 这个加密过后的文件了。
3, UID:这个就是使用者识别码 (ID) !通常 Linux 对于 UID 有几个范围:其中0是代表超级管理员,1-499系统账号,500-65535给一般使用者使用的。
4, GID:与 /etc/group 有关!用来规范group
5, 使用者信息说明栏。
6, 家目录:使用者的家目录,如果有个账号的使用空间特别的大,想要将该账号的家目录移动到其它的硬盘去,可以在这里进行修改!默认使用者家目录在 /home/yourIDname
7, Shell:使用者使用的shell,注意:有个shell可以用来替代成让账号无法登入!那就是/sbin/nologin!可以用来制作纯pop邮件账号者的数据!
l /etc/shadow
用户的相关密码存放文件。
#vim /etc/shadow
root:$1$crpkUkzg$hLl/dYWm1wY4J6FqSG2jS0:14296:0:99999:7:::
bin:*:14296:0:99999:7:::
...省略。。。
共有九段:
1,账号名称:必须与passwd文件帐号相对应。
2,密码:被编译过!只会看到一些特殊符号的字母!如果是在密码栏的第一个字符为*或者是!,表示此账号并不会被用来登入。这样就可以限制某些帐号的登陆。
3,最近更动密码的日期:这个字段记录了更动密码的那一天的日期,注意,Linux 日期的时间是以1970/01/01作为 1 ,而1971/01/01则为366! 所以这个日期是累加的天数!
4,密码不可被更动的天数:如果是0,表示密码随时可以更动。如果在此期间修改系统会提示:You must wait longer to change your password
passwd: Authentication token manipulation error
5,密码必须在限制的天数内修改的天数:必须要在这个时间之内重新设定的密码,否则这个账号将会暂时失效。而99999,表示密码不需要重新输入!
6,密码需要修改期限前的警告期限:当账号的密码失效期限快要到的时候,系统会依据这个字段的设定,发出警告(Warning: your password will expire in 5 days)给这个账号,提醒再过n天密码就要失效了。。。
7,密码过期的宽限时间:当密码失效后,还可以用这个密码在n天内进行登入。 而在这个天数后还没有修改密码,账号就绝对失效了!
8,账号失效日期:也是用1970 年以来的总天数设定。账号在此规定的日期之后,将无法再使用。 通常应用在收费服务的系统中,可以规定一个日期让该账号不能再使用!
9,保留:最后一个字段是保留的,看以后有没有新功能加入。
l /etc/group
这个文件就记录GID与群组名称的对应
#vim /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
每段意思是:
1,群组名称
2,群组密码:通常不需要设定,因为我们很少使用到群组登入!不过密码也是被纪录在 /etc/gshadow
3,GID:群组的ID
4,此组成员名称。注意,一个使用者是可以加入多个群组的。
l /etc/gshadow 该文件记录了组的密码
#vim /etc/gshadow
root:::root
bin:::root,bin,daemon
分别是:
1,群组名称
2,密码栏,开头为 ! 表示无法登入;
3,群组管理员的账号
4,该群组的所属账号 (与 /etc/group 内容相同)
以系统的操作来说,/etc/gshadow 的密码提供,最大的功能是在于让那些不在组中的成员,临时加入该组用。实际上使用的情况是很少的,而如果真的要操作这样的环境,那就得要熟悉newgrp 的用法!而且还要提供某个组的密码出来,不好管理。所以,若真想要让某个使用者利用该群组的功能时,还是直接将对方加入群组的支持就好了!
取消root的密码登入系统
这时必须要使用到 /etc/shadow 这个数据!所以只要能够以各种可行的方法开机进入Linux,例如单人维护模式,或者是以live CD (KNOPPIX)。然后将硬盘顺利挂载,然后进入/etc/shadow这个文件中,将root的密码栏全部清空!然后再登入Linux一次,这个时候root将不需要密码(有的时候需要输入空格符) 就可以登入了!再以passwd重设root密码。
相关命令:
usradd
-u :接UID 。直接指定一个特定的UID给这个账号;
-g :后接组名( initial group) ,该 group ID (GID) 会被放置到 /etc/passwd。
-G :后接组名称,这个账号还可以支持的组。会修改 /etc/group 内的相关资料!
-M :强制!不要建立使用者家目录
-c :这个就是 /etc/passwd 的第五栏的说明内容,可以随便设定
-d :指定某个目录成为家目录,而不使用默认值;
-r :建立一个系统的账号,这个账号的UID 会有限制 (/etc/login.defs)
-s :后面接一个shell ,默认为/bin/bash
该命令的配置文件为 /etc/default/useradd
usermod
参数:
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八段!
-g :后面接 group name,修改 /etc/passwd 的第四段,即GID !
-G :后面接 group name,修改这个使用者能够支持的组,修改的是 /etc/group
-l :后面接账号名称。修改账号名称, /etc/passwd 的第一栏!
-s :后面接Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID!即 /etc/passwd 第三栏的;
-L :暂时将使用者的密码冻结,让他无法登入。就是改/etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻!
Ø passwd:密码管理
root 可以帮助user 设定密码!user 仅能修改自己的密码!
# passwd [-lunxwS] username
参数:
-l :将 username 这个账号的密码锁住 (lock),就是修改/etc/shadow内的密码栏
-u :将 -l 的 lock 解开!
-n :后面接天数 ,最短天数;即 /etc/shadow 内的第四栏;
-x :后面接天数,最长天数;即 /etc/shadow 内的第五栏;
-w :后面接天数 ,警告天数;即/etc/shadow 内的第六栏;
-S :显示目前这个 username 的相关信息。
userdel:删除使用者,
参数:
-r :连同使用者的家目录也一起删除
chsh:一般使用者修改shell
参数:
-l :列出目前系统上面可用的 shell ,就是 /etc/shells 的内容!
-s :设定修改自己的 Shell
Ø groupadd
# groupadd [-g gid] [-r]
参数:
-g :后接GID ,用来直接给予某个GID给新建的组
-r :建立系统组!与 /etc/login.defs 内的 GID_MIN 有关。
Ø groupmod:进行group 相关参数的修改。
# groupmod [-g gid] [-n group_name]
参数:
-g :修改 GID ;
-n :修改组名称
gpasswd:
给组设定密码。 设定后,该组就能够让某些人登入成为有效群组!!
v (root)做的动作:
# gpasswd groupname
# gpasswd [-A user1,...] [-M user3,user4...] groupname
# gpasswd [-rR] groupname
参数:
:若没有任何参数时,表示给予groupname 一个密码(/etc/gshadow)
-A :指定该组的组管理员
-M :将某些账号加入这个组当中!
-r :将 groupname 的密码移除
-R :让 groupname 的密码栏失效,所以newgrp就不能使用了!
v 关于组管理员(Group administrator)的动作:
$ gpasswd [-ad] user groupname
参数:
-a :将某位使用者加入到 groupname组当中!
-d :将某位使用者移除出 groupname组