用户,组和权限管理
每个使用者: 用户标识,密码
3A认证
authentication 认证
authorization 授权
audition 审计
进程以其发起者的身份运行
进程对文件的访问权限,取决与发起此进程的用户的权限
系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登录系统
/etc/passwd
nname:password:UID:GID:GECOS:directory:shell
password存储目录/etc/shadow
gecos:注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认shell程序
用户类别
管理
普通用户
系统用户
登录用户
用户标识: UID
管理员:0
普通用户:1-65635
系统用户:1-499(centos6),1-999(centos7)
登录用户:500-60000,1000-60000
/etc/group
group_name:password:GID:user_list
user_list 该组的用户成员
/etc/gshadow
组类别
管理员组
普通用户组
组标识 GID
加密算法
对称机密:加密和解密使用同一个密码 -
非对称加密:加密和解密使用的一对儿密钥
公钥:public key
私钥:private key
单向加密:只能加密,不能解密,提取数据特征码
定长输出
血崩效应
算法:
md5-->128bits
sha-->160bits
sha512-->512bits
在计算之时加salt,添加的随机数,保证所有密码加密后不一样
管理命令
groupadd 添加组
-g 指定gid
-r 创建系统组
groupmod 修改组属性
-g 修改gid
-n 修改组名
groupdel 删除组
useradd 创建用户
-u 指定uid
-g 指定基本组id,这个gid必须是已经存在的
-G 指明用户所属的附加组,多个组之间用逗号分隔
-c 指明注释信息
-d 指定家目录,通过复制/etc/skel此目录并重命名实现的
-s 指定用户的默认shell,所有可用的shell列表存储在/etc/shells文件中
-r 创建系统用户
注意:创建用户时的默认设定配置文件为/etc/login.defs
useradd -D 显示创建用户的默认配置
useradd -D 选项 :修改默认配置
修改的结果保存于/etc/default/useradd文件中
usermod 修改用户属性
-u 修改用户id为指定的uid
-g 修改用户所属的基本组
-G 修改用户所属的附加组,原来的附加组会被覆盖
-a 与-G一同使用,为用户追加新的附加组
-c 修改注释信息
-d 修改用户的家目录,用户原有的文件不会被转移
-m 只能与-d一同使用,原有的文件会移动到新的家目录
-l 修改用户名
-s 修改用户的默认shell
-L 锁定用户密码,禁止用户登录,即在用户原来的密码字符之前添加一个"!"
-U 解锁用户的密码 删除"!"
userdel 删除用户
-r 删除用户时同时删除其家目录
passwd 修改用户密码
passwd 修改自己的密码
passwd USERNAME 修改指定用户的密码,只有root有此权限
-l,-u 锁定,解锁密码
-d 清除密码
-e DATE 过期期限,日期
-i DAYS 非活动期限
-n 密码的最短使用期限
-x 密码的最长使用期限
-w 警告期限
--stdin 以管道的方式传递密码
[root@cloud ~]# echo "juanpi"|passwd --stdin docker
Changing password for user docker.
passwd: all authentication tokens updated successfully.
不现实输出信息,但获取成功的返回代码
[root@cloud ~]# echo "juanpi"|passwd --stdin docker &> /dev/null
[root@cloud ~]# echo $?
0
gpasswd 组管理
gpasswd 默认给组添加密码,当切换组的时候需要密码
-a 向组中添加用户
-d 从组中移除用户
newgrp 临时切换指定的组为基本组
如果本来有此附加组,则不需要密码
如果没有此附加组,则需要组密码
chage 更改用户密码过期信息
id 显示用户真实和有效的id
id USERNAME 显示此用户的id信息
-u 仅显示有效的uid
-g 仅显示有效的gid
-G 仅显示用户所属的所有组的id
-n 显示名字而非id
su 切换用户
登录式切换,会通过读取目标用户的配置文件来重新初始化
su - USERNAME
su -l USERNAME
非登录式切换,不会读取目标用户的配置文件进行初始化
su USERNAME
-c仅以指定用户的身份运行此处指定的命令
[root@cloud ~]# su - docker -c 'ls'
test
权限管理
r read 读
w write 写
x excute 执行
文件
r 可获取文件的数据
w 可修改文件的数据
x 可将此文件运行为进程
目录
r 可使用ls命令获取其下的所有文件列表
w 可修改此目录下的文件列表,
x 可cd至此目录,ls -l 来获取文件的详细属性信息
八进制权限
r 4 w 2 x 1
rwx 7 rw 6 r 4
chmod 权限修改
u:属主 g:属组 o:其他 a:所有
MODE表示法:
赋权表示法,直接操作一类用户的所有权限位
u= g= o= a=
授权表示法,直接操作一类用户的一个权限位
u+, u-
g+, g-
八进制权限修改方法
chmod 700 FILE
引用性修改
chmod --reference=RFILE FILE
引用前一个文件的权限给第二个文件
-R 递归修改
sudo
sudo的配置文件/etc/sudoers
只能用visudo这个专用的命令来编辑
[root@cloud ~]# visudo -f /etc/sudoers
root ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL ##sudo不需要密码
从属关系管理命令
chown
-R 递归修改
chown -R root:mysql FILE :和.都可以
chown --reference=RFILE FILE 引用修改也支持
umask 文件的权限反响掩码
查看当前umask
也可以自己设定,但仅对当前shell进程有效
文件:
666-umask
目录:
777-umask
[root@falcon-server agent]# umask
0022
install 复制
install - copy files and set attributes
单源复制
install [OPTION]... [-T] SOURCE DEST
多源复制
install [OPTION]... SOURCE... DIRECTORY
install [OPTION]... -t DIRECTORY SOURCE...
创建目录
install [OPTION]... -d DIRECTORY...
-m 设定目标文件权限,默认为755
-o 设定目标文件的属主
-g 设定目标文件的属组
mktemp 创建临时文件或目录
mktemp - create a temporary file or directory
创建在/tmp下的临时文件或目录一个月之后会自动删除,所以也叫随机文件,文件名后缀每次都是随机生成的
mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来
[root@falcon-server ~]# mktemp /tmp/lanpang.XXXXXXX
/tmp/lanpang.X1aZDTF
[root@falcon-server ~]# hxj=$(mktemp /tmp/mytmp.XXX)
[root@falcon-server ~]# echo $hxj
/tmp/mytmp.ZCo
-d 创建临时目录
+
@hxjagf2016-12-19 23:06字数3108阅读4