管理员:UID(用户标识)为0,采用16bits二进制数字:0-65535
普通用户:UID为1-65535
系统用户:1-499(Centos6),1-999(Centos7)
登录用户:500-60000(Centos6),1000-60000(Centos7)
名称转换:
username<-->UID
解析库:/etc/passwd
管理员组:GID(组标识符)为0,也采用16bits二进制数字:0-65535也
普通用户组:GID为1-65535
系统用户组:1-499(Centos6),1-999(Centos7)
登录用户组:500-60000(Centos6),1000-60000(Centos7)
名称转换:
groupname<-->GID
解析库:/etc/group
用户的基本组
用户的附加组
私有组:组名同用户名,且包含一个用户;
公有组:组内包含多个用户;
passwd:
/etc/shadow //用户密码库
/etc/gshadow //组密码库
1)使用随机密码;
2)不低于8位;
3)大小写、数字、标点符号中至少三种;
4)定期更换;
1)对称加密:加密和解密使用同一密码;
2)非对称加密:加密和解密使用的一对儿密码;
密码对儿:
公钥:public key
私钥:private key
3)单向加密:只能加密,不能解密,提取数据的特征码
特点:
输入一样,输出必然相同;
雪崩效应,输入的微小改变,将会引起结果的巨大变化;
定长输出,无论原始数据多大,结果大小都是相同的;
不可逆,无法根据特征码还原原来的数据;
算法:采用下面六种:
md5:message digest,128bits
Sha1:secure hash algorithm,160bits
Sha224
Sha256
Sha384
Sha512
上面排序是1-6,可以在/etc/shadow查看采用哪种加密,如下图 6 6 6就是用的sha512,及下面采用md5和sha加密示例:
注意:避免当两个用户密码设置一样时,在/etc/shadow 看到的加密信息一样,一般会采用随机数避免(称为加salt)
4)/etc/passwd:用户的信息库
name:password:UID:GID:GECOS:directory:shell
name:用户名
Password:可以是加密的密码,也可以是占位符x;
UID:用户标识号
GID :用户所属的主组的ID号
GECOS:注释信息
directory:用户家目录
Shell:用户默认shell,登录时默认shell程序
5)/etc/shadow:用户密码
结构:用户名:加密密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
6)/etc/group:组的信息库
group_name:password:GID:user_list
user_list:该组的用户成员;以此组为附加组的用户的用户列表。
访问上下文:
进程以其发起者的身份运行;
进程对文件进行访问权限,取决于发起者对此进程用户的权限;
系统用户:为了能够让那后台进程或服务类进程以非管理员的身份运行,需要为此创建多个普通的用户;
格式:groupadd [option] group_name;
-g:指定GID;未指定默认在上个GID+1;
-r:创建系统组;
格式:groupmod [选项] group;
-g:修改GID;
-n:修改组名;
格式:groupdel [选项] group;
格式:useradd [选项] 用户名;
-u:指定UID;
-g:指定基本组ID,不过此组得先存在;
-G+GROUP1[,GROUP2,...[,GROUPN]]:指定用户所属的附加组,多个组之间用逗号隔开;
-c:指明注释时间;
-d:指定用户主(家)目录,默认/home/username;通过复制/etc/skel此目录的文件重命名实现,若指定的目录存在,则不会为用户复制环境配置文件;
-s:指定shell,所有可用的shell列表存储在/etc/shells文件中;
-r:创建system用户;
注意:创建用户诸多默认设置在配置文件/etc/login.defs
useradd -D:显示创建用户默认配置,也可以后面添加直接想修改的项,如下:
修改的结果保存于/etc/default/useradd。
格式:usermod [选项] 登录
-u:修改UID;
-g:修改用户所属的基本组;
-G+group1[,group2,...[groupn]]修改用户的附加组,原来的被覆盖;
-a:与-G一起用,追加新的附件组;
-c:修改注释信息;
-d:修改用户家目录,用户原有的文件不会转移到新目录;
-m:与-d一起用,将原来的家目录移动到新的目录;
-l: 修改用户名;
-s:修改用户的默认shell;
-L:--lock,锁定用户密码,即在用户原来的密码字符串之前添加一个“!”;
-U:--unlock,解锁用户密码;
格式:userdel [选项] 登录
-r:删除用户一并删除其家目录;
格式:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username] ;
passwd :修改用户自己的密码;
passwd+username:修改指定用户的密码,但仅root用户有这个权限;
-l,-u:锁定和解锁用户;
-d:清除用户的密码串;
-e DATE:过期期限,日期;
-i DAYS:非活动期限;
-n DAYS:密码的最短使用期限;
-x DAYS:密码的最长使用期限;
-w DAYS:警告期限;
echo “password” | passwd --stdin username
组密码文件:/etc/gshadow
格式:gpasswd [选项] group
-a username:向组添加用户;
-d username:从组中移除用户;
格式:newgrp [-] [group]
‘-’:会模拟用户重新登录以实现重新初始化其工作环境;
格式:chage [选项] 登录名
-d : last_da
-E : expried
-W : warn_da
-m :min_day
-M :max_day
格式:Id [option] ... [user]
-u :仅显示有效的UID;
-g:仅显示用户基本组ID;
-G:仅显示用户所属的所属组的ID;
-n:显示名字而非ID;
登录式切换:会通过读取用户的配置文件重新初始化;
su - username
su -l username
非登录式切换:不会读取目标用户配置文件进行初始化;
su username
su -c command 用户:仅以指定用户身份运行指定的命令,如:
其它几个命令:chsh, chfn, finger, whoami, pwck, grpck;
rwxrwxrwx:(r,w,x:4,2,1)
左三位:定义user(owner)的权限
中三位:定义group的权限;
右三位:定义other的权限
进程的属主与文件的属主是否相同;
如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的属组;
如果是,则应用属组权;
否则,就只能应用other的权限;
r:可获取文件的数据;
w: 可修改文件的数据;
x:可将此文件运行为进程;
r:可使用ls命令获取其下的所有文件列表;
w: 可修改此目录下的文件列表;即创建或删除文件;
x: 可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;
格式:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
三类用户:
u:属主
g:属组
o:其它
a: 所有
MODE表示法:
赋权表示法:
u=
g=
o=
a=
授权表示法:
u+, u-
g+, g-
o+, o-
a+, a-
八进制表示:chomd 777 FILE
与指定文件具有相同权限,如:
选项:-R, --recursive:递归修改,针对多级目录
注意:用户仅能修改属主为自己的那些文件的权限;
格式:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
选项:-R:递归修改
格式:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注意:仅管理员可修改文件的属主和属组;
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;
umask: 023
666-023=644
777-023=754
umask命令:
umask:查看当前umask
umask MASK: 设置umask
注意:此类设定仅对当前shell进程有效;
install - copy files and set attributes(属性)
单源复制:
install [OPTION]... [-T] SOURCE DEST
多源复制:
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
创建目录:
install [OPTION]... -d DIRECTORY...
常用选项:
-m, --mode=MODE:设定目标文件权限,默认为755;
-o, --owner=OWNER:设定目标文件属主;
-g, --group=GROUP:设定目标文件属组;
mktemp - create a temporary file or directory
格式:mktemp [OPTION]... [TEMPLATE]
常用选项:-d:创建临时目录