一.用户的权限
1.对于文件来说:
r:可读,可以使用类似cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行
2.对于目录来说:
r: 可以对此目录执行ls以列出内部的所有文件
w: 可以在此目录创建文件
x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息,目录一般都要有执行权限
3.rwx:
r--:只读
r-x:读和执行
---:无权限
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
660:rw-rw----
rwxrwxr-x:775
三位一组 用三个二进制位来表示一个八进制位,755表示文件或目录的所有者权限为rwx,用户所属组的权限为r-x,other用户的权限为r-x
4.用户和组:
1.用户登录计算机时系统会在数据库中查找用户名所对应的记录,获取用户的id号,然后根据这个id号来标识一个用户.用户的详细信息在/etc/passwd文件.用户的密码保存在/etc/shadow文件中
2.组的详细信息在/etc/group文件中.组密码在/etc/gshadow文件中
疑问:组是不用登录的那么为什么组需要有密码
3.在Linux系统中有三类用户
a.管理员 uid号永远为0,用户名为root 不可更改
b.普通用户 uid号 1-65535
c.系统用户和一般用户是属于普通用户下
e.系统用户---运行后台应用程序的 该类别用户不能登录系统 只是用来运行服务的uid号1-499
f.一般用户--uid号从500-65535
g.用户组类别:
管理员组
普通组
系统组
一般组
h.用户组类别:
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组
基本组:用户的默认组
附加组,额外组:默认组以外的其它组
i.疑问:
什么是安全上下文,权限模型,属主和属组怎么和权限位关联起来的
5./etc/passwd---有七个字段
1.用whatis passwd ---查看有几个章节的man文档
2.用man 5 passwd ---查看文件的格式信息
a.用户名
b.password---密码占位符
c.uid---用户的id号
d.gid---用户基本组id
e.comment---注释详细
f.home--用户的家目录
j.shell---用户的默认shell
在/etc/shells 里面的shell是系统中的安全shell
6./etc/shadow--有八个字段
a.account--登录名
b.password--加密后的密码
加密的格式:
对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)
单向加密,散列加密:提取数据特征码,常用于数据完整性校验
1、雪崩效应
2、定长输出
MD5:Message Digest, 128位定长输出
SHA1:Secure Hash Algorithm, 160位定长输出
c.从1970年到上一次修改密码经过的天数
d.密码最短使用期限
e.密码最长使用期限
f.密码警告时间
g.非活动时间--宽限期一登录就要修改密码否则就不能使用
h.密码过期时间
7.which useradd --查看命令对应的文件路径
8.用户管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage
a.useradd [options] USERNAME
-u UID
-g GID(基本组,组必须事先存在)
-G GID,... (附加组,组必须事先存在)
-c "COMMENT"
-d /path/to/directory--指定用户家目录
-s SHELL
-m -k
-M 不为用户创建家目录
-r: 添加系统用户 不能登录系统并且不存在家目录
b.userdel---删除用户
不加参数默认不会删除home下的家目录
-r:删除用户同时删除用户的家目录
c.finger--检索用户相关账号信息
d.usermod--修改用户账号属性信息
-u UID
-g GID:修改基本组gid
-a -G GID:不使用-a选项,会覆盖此前的附加组;
-c :注释信息
-d -m:修改家目录,有-m 则会将原来家目录下的文件移动到新的家目录下
-s :指定默认shell
-l :修改用户的登录名
-L:锁定帐号
-U:解锁帐号
e.chsh--修改用户的默认shell
g.chfn--修改用户注释信息,为finger命令显示的内容信息
h.passwd--修改用户密码
--stdin : 从标准读入密码
-l : 锁定用户
-u : 解锁
-d : 删除用户密码
9.在/etc/default/useradd文件中可以设定useradd的默认属性值
10.组管理:
groupadd, groupmod, groupdel, gpasswd
a.groupadd---添加组
-g : 指定gid
-r : 添加一个系统组
b.groupmod---修改用户组
-g : 修改组id
-n : 修改组名
c.groupdel---删除用户组
d.gpasswd groupname---给组加密码
在需要切换到另外的组事,需要用组密码
newgrp groupname ---临时切换到一个新组里面,使用exit 退出
11.权限管理:
chmod, chown, chgrp
12.在/etc/login.defs文件中可以设定用户添加时的信息
13.id命令--查看用户的属性信息
-u:查看uid
-g: 查看gid
-G: 查看附加组gid
-n: 查看组名
14.pwck--检查用户帐号完整性
15.chage--改变用户密码过期时间
-d: 最近一次的修改时间
-E: 过期时间
-I:非活动时间
-m: 最短使用期限
-M: 最长使用期限
-W: 警告时间
练习:
1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;
# groupadd -u 3003 distro
# groupadd linux
# useradd -u 2002 -g distro -G linux
2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;
# useradd -c "Fedora Community" -s /bin/tcsh
3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;
# usermod -u 4004 -g linux -G distro,fedora
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;
# passwd -n 2 -x 50 fedora
5、将mandriva的默认shell改为/bin/bash;
# usermod -s /bin/bash mandriva
6、添加系统用户hbase,且不允许其登录系统;
# useradd -r -s /bin/nologin hbase