Linux运维第二阶段(四)用户及用户组管理
1、配置文件(/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow):
#whatis passwd
#man 5 passwd(配置文件中各字段表示的内容)
account登录名:password密码:UID:GID基本组ID:GECOS注释comment:home directory:shell用户的默认shell
#man 5 shadow
account:encrypted passwd加密的密码:date of lastpassword change:minimum password age:maximum password age:password warningperiod:password inactivity period:account expiration date:reserved field
/etc/skel(模板文件目录,skeleton骨骼,骨架,包括:.bashrc,.bash_logout,.bash_profile)
/etc/default/useradd(指定创建用户时的某些默认值)
/etc/login.defs(指定创建用户时的某些默认值)
2、用户类别:
管理员:用0表示;
普通用户(1-65535):系统用户(1-499);一般用户(500-65535)
用户组类别:
管理员组;
普通组:系统组;一般组
注:私有组,创建用户时如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组作为私有组或初始组;基本组,用户的默认组;附加组,额外组,默认组以外的其它组。
3、命令:
用户管理命令: useradd,userdel,usermod,id,passwd,chsh,chfn,chage
组管理命令:groupadd,groupdel,groupmod,gpasswd,newgrp
#useradd options USERNAME
options:
-u UID(--uid,UID,添加用户时UID默认从最后一个添加的用户ID号加1,无论中间是否有未被使用的号)
-g GID(--gid,GID基本组,初始组)
-G GID(--groups,GID附加组)
-d /PATH/TO/SOMEDIRECTORY(--home,/path/to/somedirectory指定默认家目录)
-s SHELL(--shell,SHELLPATH,/etc/shells文件中指定了当前系统可用的安全shell,若用户的shell不可用则无法切换,查看当前用户shell:#echo $SHELL)
-m -k(--create-home,--skel,强制创建家目录并将模板目录下的文件复制到创建的家目录中)
-M(不创建家目录,但会应用配置文件/etc/login.defs中的各项值)
#userdel options USERNAME
#userdel -r USERNAME(-r同时删除用户家目录及邮件目录/var/spool/mail)
#id options USERNAME
options:
-u(--user显示的是UID)
-g(--group,GID)
-u|-g -n(--name,与-u或-g合用,显示名称)
#usermod options USERNAME
options:
-u UID(--uid)
-g GID(--gid)
-a -G GID(--apend添加用户至一附加组,必须要与-G合用,否则会覆盖此前的附加组)
-c “.....”(--comment,注释信息)
-d HOME_DIR -m(--home,--move-home,既指定新的家目录位置,又移动此前家目录下的文件到新指定的目录下)
-s SHELL(--shell)
-l NEW_LOGIN(--login,改变登录的用户名)
-L(--lock锁定账号)
-U(--unlock解锁)
#passwd (更改当前用户密码,RHS333加密机制)
#passwd options USERNAME(更改指定用户密码,仅管理员使用)
options:
--stdin(用于标准输入,如#echo “redhat” | passwd --stdin USERNAME)
-d(用于清空密码,默认禁止空密码登陆)
-l(锁定账号)
-u(解锁)
#chsh USERNAME(change your login shell修改用户的默认SHELL)
#chfn USERNAME(change your finger information修改注释信息)
#pwck(verify integrity ofpassword files检查用户账号完整性)
#chage options USERNAME
options:
-d LAST_DAY(--lastday最近一次的修改时间)
-E EXPIRE_DATE(--expiredate过期时间)
-I INACTIVE(--inactive非活动时间)
-m MIN_DAYS(--mindays最短使用期限)
-M MAX_DAYS(--maxdays最长使用期限)
-W WARN_DAYS(--warndays警告时间)
#groupadd options GROUPNAME
-g GID(--gid)
-r (--system,添加为系统组)
#groupmod options GROUPNAME
-g GID(--gid)
-n NEW_GROUPNAME(--new-name,更改组名)
#groupdel GROUPNAME
#gpasswd GROUPNAME(为组设密码)
#newgrp GROUPNAME(从基本组临时切换到其它组,可退出)
#su [-l] USER(switch user)
#su user1(半切换)
#exit
#su -l user1(完全切换,使用-l(--login)或-均可)
以上是学习《马哥网络视频》做的笔记。
一、相关文件
》/etc/passwd 用户信息文件
root:x:0:0:root:/root:bin/bash(以下依次为第1到第7字段)
1、用户名
2、密码标记
3、uid:超级用户root的uid为0,普通用户要升级为管理员,uid改为0即可(不建议建立多个管理员账号;1-499系统用户uid(伪用户),不能登录系统,用来运行系统或服务的,其中1-99是系统保留的账号,自动创建,100-499是预留给用户创建系统账号的;500-65535普通用户的uid,2.6内核之后uid可支持232
4、gid:如果不指定用户所属的初始组,那么会建立和用户名相同的组
5、用户说明
6、用户家目录
7、登录shell
》/etc/shadow 影子文件
root:密码位:15775:0:99999:7: : : (以下依次为第1到第9字段)
1、用户名
2、加密密码:可在密码前人为加入“!”或“*”让密码暂时失效,使这个用户无法登录;所有伪用户密码都是“!!”或“*”代表没有密码不能登录,新创建的用户不设密码也是“!!”
3、密码最近更改时间:用时间戳显示,以1970-01-01作为标准时间
时间戳转日期:#date -d “1970-01-01 15775 days”
日期转时间戳:#echo $(($(date --date=”2015/04/28” +%S)/86400 +1))
4、两次密码的修改间隔时间(与3相比)
5、密码有效期(与3相比)
6、密码修改到期前的警告天数(和5相比)
7、密码过期后的宽限天数(和5相比)
8、密码失效时间,用时间戳表示
9、保留
》/etc/group 组信息文件
root:x:0:root
1、组名
2、组密码位
3、GID
4、此组中支持其它用户,附加组是此组的用户
》/etc/gshadow 组密码文件
如果给用户组设定了组管理员,并给该用户组设定了组密码,组密码就保存在这个文件中,且管理员可利用这个密码管理这个用户组
》用户的家目录
》用户邮箱目录 /var/spool/mail
》用户模板目录 /etc/skel
》手工删除用户,需处理以下文件
/etc/passwd ;/etc/shadow; /etc/group;/etc/gshadow;/home/user;/var/spool/mail/user
》useradd的默认值与/etc/default/useradd和/etc/login.defs有关
二、用户管理命令
#useradd 用户名 (常用)
#useradd -u|-g|-G|-c|-d|-s 用户名
#userdel -r 用户名 (删除用户,连带家目录一并删除)
#passwd -l|-u 用户名 (#passwd回车修改当前用户密码,#passwd 用户名,只有root用,-l(lock),-u(unlock))
#usermod -u|-G|-c|-d|-s|-L|-U 用户名(修改已存在的用户信息)
#usermod -l 新名 旧名 (用户改名)
#groupadd 组名
#groupdel 组名
#usermod -G 组名 用户名 (已存在的用户加入组,注意以下几条命令的区别)
#gpasswd -a 用户名 组名
#gpasswd -d 用户名 组名
三、用户相关命令
#id 用户名 (显示用户的UID初始组、附加组)
#su - 用户名 (切换用户身份,连带环境变量一直切换)
#newgrp group1 (改变有效组的命令,有效组,建立新文件时的默认属组)
四、用户权限赋予
#groupadd testgroup
#gpasswd -a aa testgroup
#chmod 770 /test
#chgrp testgroup /test
注:本文由互联网收集整理(51CTO、360DOC、chinaunix、百度百科、兄弟连免费视频等)。