Linux用户及权限管理
Linxu 用户管理分为用户管理及用户组管理
Linux用户:UserName/password
UID:0-65535
管理员:0
普通用户:1-60000
系统用户:
CentOS6:1-499
CentOS7:1-999
登录用户:
CentOS6:500+
CentOS7:1000+
Linux组:GroupName/GID
管理员组:0
普通组:
1-499,1-999
500+,1000+
用户的基本组:
用户的私有组;
用户的附加组
关于用户管理的文件:
/etc/passwd:用户名、UID、基本组等信息
/etc/group:组名、GID、组内包含的用户;
/etc/shadow:用户密码及相关属性;
/etc/gshadow:组的密码及相关属性;
/etc/passwd
使用whatis passwd 查看关于passwd 配置文件在man文件的那个章节中
root@localhost ~]# whatis passwd
passwd (1) - update user's authentication tokens
passwd (5) - password file
passwd [sslpasswd] (1ssl) - compute password hashes
可以看到在man文件第5章节中,使用man5passwd 查看关于/etc/passwd的帮助信息:
root@localhost ~]# whatis passwd
There is one entry per line, and each linehas the format:
account:password:UID:GID:GECOS:directory:shell
account:登录名
password:密码
uid:用户ID
GID:用户组ID
GECOS:注释
Directory:用户主目录
Shell:shell类型
/etc/group
使用同查看passwd帮助文档方法查看/etc/group的帮助文档:
/etc/group is a text file which defines thegroups on the system. There is one entryper line, with the following for-
mat:
group_name:passwd:GID:user_list
group_name:用户组名
passwd:密码
GID:用户组ID
user_list:包含用户列表
/etc/shadow
login name:encrypted password:date of lastpassword change:minimum password age:maximum password age:password warningperiod:password inactivity period:account expiration date:reserved field
login name:登录名
encrypted password:密码
date of last password change:最近更改密码的日期
minimum password age:;;两次修改密码时间的最小天数
maximum password age:口令有效保持最大天数
password warning period: 从开始警告到用户密码正式失效之间的天数
password inactivity period:用户不登录但账号仍有效的天数
account expiration date:reserved field:预留
用户管理相关命令:
useradd:
作用:添加用户
使用格式:
useradd [options] LOGIN
useradd -D [options]
常用参数:
-r:创建系统用户
-uUID: 指定UID;
-gGID: 指定用户所属基本组,此组必须事先存在
-c'COMMENT':
-d/PATH/TO/SOMEWHERE 事先不能存在
-sSHELL:设定用户的默认shell;
-GGID,...:指定所属的附加组;
-M:不给用户创建家目录;
练习:创建用户Oracle,所属附加组database和sql,ID号为3000, 家目录为/home/database
事先要创建database和sql 组
[root@localhost ~]# useradd -u 3000 -Gdatabase,sql -d /home/database Oracle
[root@localhost ~]#
没有报错信息
查看结果
[root@localhost ~]# id Oracle
uid=3000(Oracle) gid=3000(Oracle)groups=3000(Oracle),501(database),502(sql)
查看/etc/passwd 文件
Oracle:x:3000:3000::/home/database:/bin/bash
groupadd:
作用:创建组
使用格式:
groupadd[OPTIONS] GROUPNAME
-gGID: 指明组ID;
-r: 创建系统组;
id:
作用:查看用户相关的id信息
使用格式;
id[OPTION]... [USER]
-u:UID
-g:GID
-G:Groups
-n:NAME
usermod:
作用:用户属性修改
使用格式:
usermod[OPTION]... LOGIN
-uUID
-gGID
-GGID[,GID,...]:修改用户所属的附加组;同时使用-a选项;
-sSHELL
-c'COMMENT'
-dHOME: 修改用户的家目录为新位置时,用户原来的文件是不会被移动至新家;-m选项可实现同时将其迁至新的家目录;
-lLOGIN:
-L:lock user
-U:unlock user
例如修改Oracle UID 为3005,附加组为text
root@localhost ~]# usermod -u 3005 -Gtext Oracle
[root@localhost ~]# id Oracle
uid=3005(Oracle) gid=3000(Oracle)groups=3000(Oracle),3001(text)
passwd:
作用:给用户添加密码
使用格式:
passwd[OPTION] [UserName]
-l:lock user
-u:unlock user
-nmindays: 最短使用期限;
-xmaxdays:默认为99999天;
-wwarndays:
-iinactivedays:
--stdin:从标准输出接收用户密码;
例如:修改用户lishuai 密码为lishuai
[root@localhost ~]# echo 'lishua'i|passwd--stdin lishuai
Changing password for user lishuai.
passwd: all authentication tokens updatedsuccessfully.
userdel:
作用:删除用户
使用格式:
userdel[-r] USERNAME
-r:删除用户的同时删除其家目录;
例如:删除Oracle 用户同时删除其家目录
[root@localhost ~]# tail -n 1 /etc/passwd
Oracle:x:3000:3000::/home/database:/bin/bash
[root@localhost ~]# userdel -r Oracle
[root@localhost ~]# tail -n 1 /etc/passwd
lishuai:x:500:500:davachi:/home/lishuai:/bin/bash
groupmod:
作用:组属性修改
使用格式:
groupmod[OPTION] GROUPNAME
-nGROUP_NAME
-gGID
gpasswd:设定组密码
newgrp:切换基本组为指定的组
groupdel:删除组