一、计算机运行
1、硬件-->内核-->程序;
2、应用程序放在硬盘上叫程序,运行后叫进程(process);
3、程序在编译的时候用了库,则进程启动的时候需要调用库;
4、谁调用谁去库里拿副本,所以叫共享库。
5、从系统运行的角度上看,库和程序运行在同一平行线上。
6、那么系统中的资源和服务,针对不同的用户如何管控?
二、计算机资源
1、权限;
2、用户:是一个标识符;
3、用户,容器,关联权限:用户组,方便地指派权限(用户组:是一个标识符);
4、安全上下文(secure context)
用户是操作计算机的代理,进程是有用户操作的;
三、权限
1、r、w、x(三位一体)
a)文件:
r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x:可执行,exacutable,可以在命令提示符下当作命令提交给内核运行;
b)目录:
r:可以对此目录执行ls以列出内部的所有目录文件;
w:可以在此目录创建文件;
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。一般目录都有可执行权限;
2、rwx(三位一体)
a)000 ---:无权限; 八进制:0;
b)001 --x:执行; 八进制:1;
c)010 -w-:写; 八进制:2;
d)011 -wx:写和执行;八进制:3;
e)100 r--:只读; 八进制:4;
f)101 r-x:读和执行;八进制:5;
g)110 rw-:读写; 八进制:6;
h)111 rwx:读写执行;八进制:7;
如:755:rwxr-xr-x;
640:rw-r-----;
660:rw-rw----;
rwxrwxr-x:775;
四、用户和组以及属性
1、用户:UID,/etc/passwd是用户的数据库;
2、组:GID,/etc/group是用户组的数据库;
3、影子口令:
用户:/etc/shadow;
组:/etc/gshadow;
五、用户类别
1、管理员:ID=0;
2、普通用户:ID=1-65535;
a)系统用户:ID=1-499;
系统或进程运行,需要以用户的名义来运行;
b)一般用户:ID=500-60000;
六、用户组类别
1、管理员组:
2、普通组:
系统组:
一般组:
3、基本组:每个用户都有一个默认组;
4、私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组;
5、附加组,额外组:默认组意外的其它组;
如:用户tom执行ls命令(ls被执行前也是文件);
ls命令的权限如下:rwxr-xr-x root root /bin/ls;
因为ls命令的属主是root,属组是root,所以tom只能以其他用户r_x的权限执行ls,ls进程也以tom的身份运行。
这个例子也即是安全上下文(secure context)的理解。
七、/etc/passwd字段
1、account:登陆名;
2、passwd:密码,x是占位符代表真正的密码在/etc/shadow;
3、UID:用户ID;
4、GID:基本组ID;
5、command:注释信息,如家庭住址,联系电话;
6、HOME DIR:家目录;
7、SHELL:用户默认shell;/etc/shells中的文件才是安全shell或者是默认shell;
八、/etc/shadow字段
1、account:登录名;
2、encrypted password:加密的密码;$1表示使用md5加密方式;!!或者*表示用户锁定;
加密方法:
对称加密:加密和解密使用同一个密码;
非对称加密(公钥加密):每个密码都成对出现,一个为私钥(secret key)一个为公钥(public key);
单向加密(散列加密):提取数据特征码,常用于数据完整性校验;
a)雪崩效应:查看加密特征码:md5sum COMMAND;
b)定长输出;
加密方式:
MD5:message digest,128位定长输出;
SHA1:secure hash algorithm,160位定长输出;
九、用户和组创建
1、which useradd;
2、ls -l $(which useradd);ls -l `which useradd`;
3、which adduser;
4、创建用户:useradd USERNAME,如:useradd tom,tail -1 /etc/passwd;
创建密码:passwd USERNAME;
5、useradd的默认属性文件:cat /etc/default/useradd;
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
6、创建组:groupadd GROUPNAME,如:groupadd mygroup,tail -1 /etc/group;