Linux权限相关 /etc/passwd /etc/group /etc/shadow useradd userdel passwd usermod chpasswd
- 2015-05-14 21:51:00
- admin
- 原创 2416
/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