Linux权限相关 /etc/passwd /etc/group /etc/shadow useradd userdel passwd usermod chpasswd

2015-05-14 21:51:00
admin
原创 2275
摘要:Linux权限相关 /etc/passwd /etc/group /etc/shadow useradd userdel passwd usermod chpasswd

/bin/false是最严格的禁止login选项,一切服务都不能用。

/sbin/nologin只是不允许系统login,可以使用其他ftp等服务。

/bin/bash是正常可登陆的shell。


/etc/passwd(保存账户信息)

test001:x:506:506::/home/test001:/bin/bash

第一列:用户名

第二列:密码,由于存在/etc/shadow,所以固定为x

第三列:用户ID。//useradd -o -u 0 test003 // o允许重复ID u设置ID

0代表系统管理员,如果你想建立一个系统管理员的话,可以建立一个普通帐户,然后将该账户的用户ID改为0即可。
1-500系统预留的ID,500以上是普通用户使用。

第四列:组ID,其实这个和用户ID差不多,用来规范群组,它与/etc/group有关。

第五列:描述信息,这个字段几乎没有什么作用,只是用来解释这个帐号的意义。

第六列: 用户根目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。

第七列:用户登录shell,就是用户登录系统时使用的shell,关于shell我们会在以后专门的研究一下。


/etc/group

mail:x:12:mail,postfix

第一列:群组名称
第二列:群组密码,通常不需设定,因为我们很少使用群组登录。不过这个密码也被记录在/etc/gshadow中。
第三列:群组ID
第四列:支持帐号的名称,可支持多账号。


/etc/shadow(保存密码信息,root只读文件)

第一列:用户名

第二列:密码,如果开始是!表示用户被锁定,初创用户为锁定。

第三列:上次改动密码的日期,1970年1月1日作为1,1971年1月1日就是366,依次类推。

第四列:最小时间间隔,指的是两次修改口令之间所需的最小天数。(不能改的天数)

第五列:最大时间间隔,指的是口令保持有效的最大天数。(必须改的天数)

第六列:警告时间,从系统开始警告用户到用户密码正式失效之间的天数(默认7天)。

第七列:失效时间,当密码过期后经过多少天该帐号会被禁用(默认无期限)。


1、useradd(使用配置文件/etc/login.defs和/etc/default/useradd

useradd [-c comment] [-u uid] [-g group] [-d home] [-s shell]

添加一个用户:

useradd test001 //可以看到/etc/passwd添加了一条信息test001:x:506:506::/home/test001:/bin/bash

添加一个用户,并指定根目录:(如果/home/hh_test007存在会出现skel复制警告,最好保证该目录不存在,同样信箱也是一样的情况

useradd test007 -d /home/hh_test007

添加一个不能登陆的用户:

useradd -s /bin/false test008


特别参数说明:

g 指定用户所在的组

useradd -g 0 test010

//test010:x:514:0::/home/test010:/bin/bash

G 给用户添加其它组(G指定辅助的用户组,创建文件不使用辅助组)

useradd -g 0 -G 511,512,513 test011

//test011:x:515:0::/home/test011:/bin/bash

同时G会在/etc/group文件里面产生以下信息

test006:x:511:test009,test011
test007:x:512:test011
test009:x:513:test011


2、userdel(删除时,如果用户起始组被依赖,则用户起始组不被删除)

删除用户:userdel user

删除用户并删除目录:userdel -r user (主要是以下二个目录:/home/user、/var/spool/mail/user)

删除用户并删除目录(强制删除,即使登陆):userdel -rf user


3、passwd

改变当前用户密码:passwd (设置密码,清除锁定状态,修改设置时间)

改变指定用户密码:passwd user

改变指定用户密码(重标准输入读取密码):passwd --stdin user

查看用户状态:passwd -S user //test001 PS 2015-05-24 1 10 7 7 (密码已设置,使用 SHA512 加密。)

锁定用户:passwd -l user (密码前添加!) //导致该账户无法登陆

解锁用户:passwd -u user (密码前去掉!)

删除密码:passwd -d user (密码项置空) //导致该账户无法登陆

用户过期:passwd -e user (修改密码设置时间为0,0为特殊值,并不会导致账户被禁用)


调整用户密码数据(不修改密码):

--minimum=1 最小改动天数

--maximum=10 最大改动天数

--warning=7 在密码过期前多少天开始提醒用户

--inactive=7 当密码过期后经过多少天该帐号会被禁用


passwd --minimum=1 --maximum=10 --warning=7 --inactive=7 test001


4、usermod

usermod -c comment test001 //添加注释

usermod -l test00x test001 //修改用户名

usermod -g test002 test001 //改变用户组

usermod -G mysql,test002 test001 //替换辅助用户组

usermod -a -G test001 test001 //添加辅助用户组


5、groupadd和groupdel

groupadd test003 //添加用户组

groupadd -g 511 test003 //添加用户组,并指定gid

groupdel test003 //删除用户组


6、chpasswd

成批更新用户的口令,格式为user:password

echo "root:123456" | chpasswd

发表评论
评论通过审核之后才会显示。