权限:r, w, x
文件:
r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行;
目录:
r: 可以对此目录执行ls以列出内部的所有文件;
w: 可以在此目录创建文件;
x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息;(一般目录都要有执行权限)
rwx:
0 000 ---:无权限
1 001 --x: 执行
2 010 -w-: 写
3 011 -wx: 写和执行
4 100 r--: 只读
5 101 r-x: 读和执行
6 110 rw-: 读写
7 111 rwx: 读写执行
读写的权限对应的八进制转换
755:rwxr-xr-x
rw-r-----: 640
1.机算计如何将用户名转换成ID号?
通过查找内部的数据库解析(转换)成用户的ID号,名称解析。
用户:UID(User Identifier) /etc/passwd 里面存储了每个用户对应的ID号
用户组:GID(Group Identifier)/etc/group 存储组的ID号
/etc/passwd除了存储了用户ID号还存储了各种用户信息,但是密码不存在这里面。
所以用户密码存在其他的文件中
影子口令:
用户: /etc/shadow
用户组: /etc/gshadow
2.用户类别:
管理员:0
普通用户: 1 ~65535
系统用户:1~499
普通用户:500~60000
什么是系统用户?
负责运行进程的用户
用户组相当于用户的一个容器,所以一个用户可能有多个组。
用户组类别:
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组
基本组:用户的默认组
附加组,额外组:默认组以外的其它组
进程:一段程序的执行过程,每个进程也有属主和属组。进程执行的时候机算计也会识别他的属主,属组。比如:
进程:tom tom
对象:rwxrw-r-- jerry tom a.txt
tom这个用户对a.txt进行访问,系统先会看这个进程的属主是否相同,如果相同则执行对象属主的权限,如果不同查看进程的属主是否属于对象的属组,相同则执行属组的权限,不同则执行其他组的权限。
passwd命令文档
/etc/passwd 分隔符为“:”
可以用cat /etc/passwd打开查看
account: 登录名
password: 密码占位符,真正的密码在/etc/shadow里面
UID:
GID:基本组ID
comment: 注释
HOME DIR:家目录
SHELL:用户的默认shell
/etc/shadow 分隔符为“:”
可以用cat /etc/shadow打开查看
1.login name(account): 登录名
2.encrypted password: 加密的密码
3.从1970年1.1日起到上次修改密码时的天数
4.密码最短使用天数(密码不可被更改的天数)
5.密码最长使用期限(密码需要重新更改的天数,99999为不强制)
6.密码需要修改前的警告天数
7.密码过期后的宽限天数
8.账号失效日期
9.保留
加密方法(简单说明)
对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)
单向加密,散列加密:提取数据特征码,常用于数据完整性校验
1、雪崩效应,蝴蝶效应(初始条件的微小改变,将会引起结果的巨大改变)防破解
2、定长输出
MD5:Message Digest, 128位定长输出
SHA1:Secure Hash Algorithm, 160位定长输出
用户管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage
组管理:
groupadd, groupdel, groupmod, gpasswd
权限管理:
chown, chgrp, chmod, umask
相关文件
/etc/passwd:
用户名:密码:UID:GID:注释:家目录:默认SHELL
/etc/group:
组名:密码:GID:以此组为其附加组的用户列表
/etc/shadow:
用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间:
useradd 新增一个用户
新增用户会自动定义一些属性在/etc/default/useradd下定义了默认属性
在管理员下,可以用passwd加用户名改变账户的密码。
useradd [options] USERNAME
-u UID 比如:useradd -u 1000 user1
-g GID(基本组,组必须存在)useradd -g mygroup user2
-G GID,... (附加组,可以有多个但必须得存在)
-c "COMMENT" (指定其注释信息)
-d /path/to/directory(指定家目录,后面加某个目录即可)
-s SHELL (指定所用的shell,后面加次shell的路径,在/etc/shells里面显示了当前系统支持的shell)
-m(强制为用户创建家目录)
-k(通常与-m一起使用)
-M(不给目录创建家目录)
-r: 添加系统用户(系统用户基本上不能登陆而且没有根目录)
userdel:删除用户
userdel [option] USERNAME
-r: 同时删除用户的家目录
id:查看用户的帐号属性信息
-u:只看UID
-g:只看GID
-G:查看所有组
-n:显示名称,通常与上面三个一起用
修改用户帐号属性:
chfn:修改用户的finger信息即注释信息(changefinger)
passwd [USERNAME]
--stdin(standard in)从标准输入读入用户密码
比如:echo "redhat" | passwd --stdin user1
将用户user1的密码改为redhat
-l :锁定用户账号
-u:解锁用户账号
-d: 删除用户密码
还有许多选项自己man去看
对于普通用户来说只能改变自己的密码
对于管理员来说可以修改其他用户的密码
pwck:检查用户帐号完整性(passwd check)
组管理:
创建组:groupadd
groupadd:
-g:指定GID
-r:添加一个系统用户
groupmod:修改组的选项
-g:修改GID
-n:修改groupname
groupdel:删除组
gpasswd:给组加密码
权限管理
可读,可写,可执行
对三类用户都定义了权限
u: 属主
g: 属组
o: 其它用户
如何改变文件相关权限:
chown:change owner 改变文件属主(只有管理员才有权限)
#chown USERNAME FILE,......(将这些文件的属主改为这个用户)
当你改变目录(目录也是个文件)的属主时,目录里面的文件属主是不会改变的。
-R:修改目录及其内部文件的属主
--reference=/path/to/somefile file,......(把一个文件作为参考,将其他文件的属主改为这个参考文件的属主)
chown USERNAME.GRPNAME file,...(同时该变文件属主和属组)
chown USERNAME:GRPNAME file,...
chgrp GRPNAME file,...
-R
--reference=/path/to/somefile file,...
文件默认权限:
再创建一个文件或目录的时候,系统会给其指定默认权限。
文件的默认权限可以通过umask来查看。
umask不带任何参数可以显示用户的umask
666-umask
777-umask
umask 023 将umask设定为023
文件:666-023=644 (文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1)
目录:777-023=754