权限: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:显示名称,通常与上面三个一起用

  • finger: 查看用户帐号信息 finger USERNAME

修改用户帐号属性:

  • usermod -u UID -g GID -a -G GID:不使用-a选项,会覆盖此前的附加组; -c -d -m: -s -l:修改username -L:锁定帐号 -U:解锁帐号

  • chsh:专门用来该用户的默认shell(changeshell)

  • chfn:修改用户的finger信息即注释信息(changefinger)

  • 密码管理:

  • passwd [USERNAME] --stdin(standard in)从标准输入读入用户密码 比如:echo "redhat" | passwd --stdin user1 将用户user1的密码改为redhat -l :锁定用户账号 -u:解锁用户账号 -d: 删除用户密码 还有许多选项自己man去看 对于普通用户来说只能改变自己的密码 对于管理员来说可以修改其他用户的密码

  • pwck:检查用户帐号完整性(passwd check)

  • chage(change age)修改用户时间 -d: 最近一次的修改时间 -E: 过期时间 -I:非活动时间 -m: 最短使用期限 -M: 最长使用期限 -W: 警告时间


组管理: 创建组:groupadd

  • groupadd: -g:指定GID -r:添加一个系统用户

  • groupmod:修改组的选项 -g:修改GID -n:修改groupname

  • groupdel:删除组

  • gpasswd:给组加密码

  • newgrp:切换(登陆)用户的基本组(可以用exit退出)


权限管理 可读,可写,可执行 对三类用户都定义了权限 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,...

  • chmod:修改文件的权限(修改三类用户权限) 1.修改三类用户的权限: chmod MODE file,... -R --reference=/path/to/somefile file,... 此处的MODE为三类权限的缩写,如( rwxr-x---缩写750),如果给的位数不够,会在前面补0。 2.修改某类用户或某些类用户权限: u(user),g(group),o(other),a(all) chmod 用户类别=MODE file,... 如:chmod u=rwx /tmp/abc,不支持 u=7这种缩写!支持u=rx这种省略格 式,输出就为r-x。同时也可以同时定义两类用户权限:chmod u=rw,g=rw /tmp/abc或者chmod ug=rw /tmp/abc。如果chmod o= /tmp/abc,后面不加权限的话,则显示为---。 3.修改某类用户的某位或某些位权限: u,g,o,a chmod 用户类别 + 或 - MODE file,... 如:chmod u-x /tmp/abc属主的执行权限就没了。chmod +x /tmp/abc不加用户类型就可以将三类用户的权限都加上执行。chmod u-x,g+x /tmp/abc


文件默认权限: 再创建一个文件或目录的时候,系统会给其指定默认权限。 文件的默认权限可以通过umask来查看。 umask不带任何参数可以显示用户的umask 666-umask 777-umask

umask 023 将umask设定为023 文件:666-023=644 (文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1) 目录:777-023=754