一、用户
用户、组、权限
用户:获取服务或资源的唯一的标识符
安全上下文
进程
对于文件或目录等而言,有三种权限(超级权限后续补充):
属主、属组、其他
权限:
对文件而言:
r : 可读 ,可查看文件的内容 (二进制不可读)
w : 可写 ,可以编辑或者删除
x : 可执行
对目录而言:
r : 可对次目录执行ls以列出目录内部的所有文件
w : 可在此目录创建文件
x : 可使用cd切换进入此目录 也可使用ls –l 查看内部文件的详细信息
权限与二进制数字对应
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
用户: UID /etc/passwd
影子口令 用户密码 /etc/shadow
组:GID /etc/group 、/etc/gshadow
用户类别:
管理员 :UID = 0
普通用户:UID 1-65535
系统用户:UID 1-455 运行系统后台进程
一般用户:UID 500-60000
用户组类别一:
管理员组:
普通组:一般组
系统组:
用户组类别二:
私有组(私有组 = 默认组):
创建用户时,如不指定用户组,则会同时创建一个与用户同名的、只包含当前用户的组(私有组)
基本组:“用户的默认组”
额外组(附加组):默认组之外的组
进程:以tom tom 访问的对象为: rwxrw-r– jerry tom a.txt
首先匹配 属主 其次属组
cat /etc/passwd 存放用户信息
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
分别对应以下内容,以冒号分割:
用户名(account):密码占位符(加密格式):UID:GID:用户全名等信息(注释信息):家目录(不允许登录):用户默认shell
cat /etc/shells 查看用户的shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
cat /etc/shadow #存放用户加密的秘钥
root:$6$7aG1IVzIKMWysHB1$I5yPXSGLkpASctacF2AsVBgrLP7YnDpIO8whFLk89xQoHFZccaj6sMnghQilljbZ.CCzl22EmW.alqB1heXpw/::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
登录名:加密的密码(使用MD5方法加密),前8位为杂质:
加密方法:
对称加密:加密解密使用同一密码
公钥加密:每个密码成对出现,一个为私钥(secret key ),一个为公钥(public key) 一一对应(速度较慢)
单向加密:只能加密,提取数据特征码(每个数据都有一个唯一的特征码),加密不可逆,常用于数据完整性校验。
1、 雪崩效应(初始数据的一点改变会引起巨大的变化)
2、 定长输出(输出结果的长度固定)
MD5 : Message Digest 128位定长输出
SHA1 : Secure Hash Algorithm 160位 定长输出
用户管理
useradd username 新增用户
password username 修改用户密码
#输入密码即可修改用户密码
-n 密码使用最短期限
-x 最长期限
新建用户的默认配置:/etc/default/useradd
cat /etc/default/useradd
#useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1(密码过期但未改)
EXPIRE=
SHELL=/bin/bash (默认shell)
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd [options] username #新增用户
-u 指定用户ID(不可重复,大于等于500,不指定则默认从1000开始)
-g 指定基本组GID(组必须先存在)
-G 附加组
-c 指定注释信息
-d 指定家目录,默认在/home下创建与用户名相同的文件夹
-s 指定shell路径
/etc/login.defs
userdel [options] username #删除用户
id [options] #查看用户的账号属性信息
id 显示当前用户的账号信息
id -u username 用户id
id -g username 用户所属组id
id -g -n(name) username 显示名称
fingers username 查看用户账号信息
usermod :
-u UID
-g GID
-a -G 指定新的额外的附加组(不使用-a会覆盖此前的附加组)
-c
-d 指定新的家目录,原有家目录文件 此用户无法访问 -m可以将之前家目录的文件一起移动到新的文件夹
-l
-L 锁定账号
-U 解锁账号
chsh username #更改用户默认shell
chfn
passwd username #修改密码
-d #清空密码
pwck 检查密码
组管理:
groupadd :创建组
-g #指定GID
-r #添加一个系统用户
权限
u:属主
g:属组
o:其他
chown 改变文件(目录)属主(只有管理员有权限更改)
chown username file
-R #递归修改,修改文件内部及其子目录的属主
--reference=路径/patch/to/somefile file #引用、参考其他文件 将file 属主、属组同时改为与somefile一样
chown username:grpname file #同时修改属主、属组
chown grpname
chgrp 改变属组(与chown用法相同)
chmod 改变文件权限
chmod mode(8进制数) file
chmod (u、g、o、a) = (rwx)m filename
chmod (u、g、o、a) +/- (rwx) filename
-R 递归修改
--reference=/path/to/somefile filename (将somefile的权限复制给filename)
手动新建用户的步骤:
1、编辑一下三个文件
/etc/shadow
black1:!!:17504:0:99999:7:::
mandriva:!!:17506:0:99999:7:::
fedora:!!:17506:0:99999:7:::
openstack:!!:17506:0:99999:7:::
/etc/group
linux:x:3004:mandriva
fedora:x:2003:
openstack:x:2004:
/etc/passwd
black1:x:1008:1008::/home/kingdee:/bin/bash
mandriva:x:2002:3003::/home/mandriva:/bin/bash
fedora:x:2003:2003::/home/fedora:/bin/bash
openstack:x:2004:2004::/home/openstack:/bin/bash
2、修改复制并修改家目录权限
cp -r /etc/skel /home/username
chown username: groupname /home/username
chmod /home/username
3、生成密码
自动生成:
passwd username
或者手动生成:
Openssl passwd 可以生成加密的密码串
Openssl passwd -1(MD5加密) -salt ‘password’ 加了杂质(salt)的加密密码,拷贝到 /etc/shadow
Umask :遮罩码,显示当前umask 022
创建文件的权限:666-umask(当前用户的umask)
创建目录的权限:777-umask(当前用户的umask)
从用户角度来看Shell类型:
登录shell
通过终端
su – username 登录
su -1 username
非登录式shell
su username
bash shell 配置文件:
全局配置:对所有用户生效
/etc/profile /etc/profile.d/*.sh /etc/bashrc
个人配置:对单独的用户生效
~/.bash_profile ~/.bashrc
Profile 类文件:
设定环境变量
运行命令或脚本
Bashrc 类文件:
设定本地变量
定义命令别名
登录时shell如何读取配置文件:
先读取 /etc/profile -> /etc/profile.d/*.sh ->~/.bash_profile -> ~/.bashrc /etc/bashrc
非登录式shell读取配置文件:
~/.bashrc /etc/bashrc -> /etc/profile.d/*.sh