用户管理命令:
useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage、newgrp
用户查看命令:
whoami、who、w、
组管理命令:
groupadd、groupdel、groupmod、gpasswd
权限管理:
chown、chgrp、chmod、umask
用户、组、权限
进程的 安全上下文(secure context)
用户对命令文件的具有权限(是否有执行权限)、用户执行命令之后的进程的权限以及进程访问文件的权限之间的关系称为安全上下文
文件与目录权限区别
文件与目录权限区别 |
读权限 r |
写权限 w |
执行权限 x |
文件 |
可以使用类似cat等命令查看文件内容 |
可以编辑或删除文件 |
可执行 可以命令提示符下当命令提交内核执行 |
目录 |
可以对此目录执行ls以列出内部的所有文件 |
可以在此目录创建,删除文件 |
可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息 |
特殊权限:
SUID:运行某进程时,相应进程的属主是程序文件自身的属主,而不是启动者
chmod u+s File (如果File本身原来就有执行权限,则SUID显示为s,否则显示为S)
chmod u-s kjmFikile
SGID:运行某进程时,相应进程的属组是程序文件自身的属组,而不是启动者
目录拥有SGID时,用户创建的文件,文件的所属组属于目录的所属组
chmod g+s File
chmod g-s File
Sticky:在一个公共目录,每一个都可以创建文件,删除自己的文件,但不能删除别人的文件
chmod o+t Dir
chomd o-t Dir
访问控制列表:
FACL:FileSystem Acess Control List
利用文件扩展保存额外的访问控制权限
setfacl [option] File设置facl权限
为目录设置默认的访问控制列表 setfacl -m d:u:UID:perm File
-m:设定
u:UID:PERM
g:GID:PERM
-x:取消
u:UID
g:GID
--mask 设定文件的mask权限(文件的mask权限是
getfacl File 查看文件的facl权限
权限匹配顺序:
owner——> Facl,user ——>Group ——> Facl,group——>other
1、用户:UID /etc/passwd
/etc/passwd文件内容格式介绍
account:password:UID:GID:GECOS:directory:shell
用户名、密码占位符x、用户ID、用户组ID、用户全名、用户家目录、用户默认shell
2、 组:GID /etc/group
影子口令:
用户:/etc/shadow
/etc/shadow 文件内容格式介绍
1、登录用户
2、用户密码(经过MD5加密过的值)添加双!!锁定用户
3、最近更动密码的日期 (从1970-07-01算起)
4、密码最短使用期限(0表示不做限制)
5、密码最长使用期限
6、密码过期时的提前警告时间
7、密码的宽限期 (密码过期之后使用期限时间)
8、密码禁用时间点 (从1970-07-01算起)
9、保留字段
组:/etc/gshadow
用户类别:
管理员:0
普通用户:1-65535
系统用户:1-499
一般用户:500-60000
组类别:
管理员组:
普通组:
系统组
一般组
用户组类别:
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户同名的组
基本组:用户的默认组
附加组、额外组:默认组以为的其他组
注意:以student用户执行ls命令查看 /etc/passwd文件 文件权限如下
-rwxr-xr-x 1 root root 117024 Jun 25 2014 /bin/ls
-rw-r--r-- 1 root root 1599 Nov 15 15:08 /etc/passwd
简述用户student是以什么权限流程查看文件 /etc/passwd的
用户执行ls命令时:首先用户查看对ls命令文件拥有什么样的权限,用户对ls命令文件有以其他人的身份权限(r-x)即有执行的权限可以执行ls命令(启动ls命令的进程)
用户发起的ls进程,这个进程的属主和属组就是ls进程的发起者属主和属组
当用户执行(ls /etc/passwd)时即 用户发起的ls进程访问/etc/passwd文件又有什么样的权限,因为ls进程的属主和属组都是进程的发起者属主和属组
所以文件对这个用户有什么样的权限,ls进程就有什么样的身份权限操作文件
/etc/shadow 字段含义
login name 登陆名
encrypted password 加密的密码(值前面有两个!!或者* 表示用户锁定)
密码最短使用期限
密码最长使用期限
密码到期之前警告时间
密码过期之后宽限时间
指定密码到期时间
保留字段
加密方式:
对称加密:加密和解密使用同一个密码
公钥加密(非对称加密):每个密码都是成对出现,私钥(secret key),公钥(public key)
单向加密、散列加密:提取数据特征码(常用于数据完整性校验 hash运算 )
1、雪崩效应
2、定长输出
MD5:message Digest,128位定长输出
SHA1: Secure Hash Algorithm,160位定长输出
用户管理:
#useradd [options] USERNAME
(添加用户的默认属性在以下文件中/etc/default/useradd和/etc/login.defs /etc/skel/)
-u UID (默认UID为系统中最大一个UID的下一个)
-g GID(基本组、默认组)
-G GID... (附加组)
-c “COMMENT” 添加用户描述信息
-d /PATH 指定用户家目录
-s SHELL 指定用户的默认shell (系统的安全shell在/etc/shells中)
-m 强制创建家目录并复制/etc/skel内的文件到家目录
-M 不给用户创建家目录
-r 添加一个系统用户(UID为1-499)
#userdel [option] USERNAME (默认不删除家目录和邮箱)
-r 删除用户家目录和邮箱
#finger USERNAME 查看用户账号信息
#id [-option] USERNAME
-u 查看用户UID
-g 查看用户组GID
-G 查看用户附加组和默认GID
-n name于以上三个选线连用(id -nu USERNAME 显示用户名,非UID)
修改用户账号属性:
usermod [-option] USERNAME
-u uid
-g Gid
-G GID (不适用-a选项追加附加组,会覆盖此前的附加组)
-c “COMMENT” 修改用户描述信息 (和chfn相同功能)
-d /PATH 修改用户家目录(和-m选项同时使用,修改家目录并移动以前家目录到修改后的家目录内)
-s SHELL 指定用户的默认shell (和chsh功能相同)
-l 修改用户登陆名
-L 锁定账号(和passwd -l USERNAME功能相同)
-U 解锁账号
用户密码管理:
#passwd [-option] [USERNAME]
--stdin 从标准输入接收密码信息
-S 查看用户状态
-l 锁定用户账号
-u 解锁用户账号
-d 删除用户密码
#pwck 检测用户账号的完整性
注:默认创建用户实质就是修改四个个文件内容/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow
手动创建administrator用户过程:
1、添加用户administrator——>在/etc/passwd最后添加一行
administrator:x:506:506::/home/administrator:/bin/bash
2、在/home目录下创建用户家目录
#mkdir /home/administrator
3、从/etc/skel中复制用户默认配置文件到用户家目录中
#cp -r /etc/skel /home/administrator
4、修改家目录以及家目录中文件的属主/组
#chown -R administrator.administrator /home/administrator
5、修改家目录以及内部文件的权限
#chmod -R go= /home/administrator
6、为用户生成密码序列
#openssl passwd -1(MD5-based password algorithm) -salt ‘12345678’
# openssl passwd -1 -salt '123456' <密码>
[root@iZbp1 ~]# openssl passwd -1 -salt '123456' baidu.com
$1$123456$ycCru8xNdZgq55e/aOSoM1
7、在/etc/shadow中添加密码
administrator:$1$12345678$/.Bg9FD/wEQWzfiNGVodL.:16758:0:99999:7:::
8、在/etc/group中添加administrator组
administrator:x:506:administrator,admin
9、在/etc/gshadow添加administrator组密码
administrator:!::
chage 修改帐号和密码的有效期限
chage [options] USERNAME
-l:列出用户的以及密码的有效期限
-m:修改密码的最小天数
-M:修改密码的最大天数
-I:密码过期后,锁定帐号的天数
-d:指定密码最近修改的日期
-E:有效期,0表示立即过期,-1表示永不过期
-W:密码过期前,开始警告天数
#chsh 修改用户的shell
#chfn 修改注释信息
组管理:
#groupadd
-g 指定GID
-r 添加系统组
#groupdel
#groupmod
-g 修改GID
-n 修改组name
#gpasswd GRPNAME(切换用户的基本组时需要的组密码 即需要切换的基本组不在用户的附加组中)
#newgrp GRPNAME 临时切换用户的基本组
权限管理:
#chown 改变文件属主(只有管理员可以使用此命令)
-R (recursive)递归修改目录及其内部文件
--reference=/path/to/somefile file,... 参考某一个文件属主和属组修改另一文件属主和属组
#chown USERNAME:GRPNAME file,...
#chown USERNAME.GRPNAME file,...
chown .GRPNAME file,…
#chgrp 改变文件属组
-R 递归
--reference=/path/to/somefile file,... 参考某一个文件属组修改另一文件属组
#chmod 改变文件的权限
chmod MODE file,...
-R 递归
--reference=/path/to/somefile file,...
#umask 创建文件是默认权限的掩码
文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1.
创建文件默认权限为 666-umask (为了安全起见系统默认是创建文件是不给执行权限)
创建目录默认权限为 777-umask
用户信息查看命令
whoami 显示当前登陆的用户
who
-r 显示运行级别
w
last 显示登陆日志信息 (显示的文件/var/log/wtmp文件,显示用户登陆历史及)
-n # 显示最近#次的相关信息
lastb 显示登陆信息 (显示的文件/var/log/btmp文件,显示用户错误登陆尝试信息)
-n # 显示最近#次的相关信息
lastlog 显示当前系统中每个用户最后一次登陆信息
-u UserName 显示特定用户最近的登陆信息