Linux(1): 用户及权限详解
=====================
Linux的层次:
进程(应用程序)
库
内 核
硬件
一、前言
在Linux中一切皆文件,文件有3中权限:
(1)文件属主;(2)文件属组;
(3)其它用户的访问权限。
文件:
r: 可读,可以使用类似cat等命令查看文件内容
w: 可写,可以编辑或者删除此文件;
x: 可执行,executable,可以命令提示符下当做命令给内核执行。
文件默认没有执行权限。
目录:
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,每一个用户都一个ID
在Linux中,用户的信息存在/etc/passwd; 用户登录,就查passwd,获取用户的ID号,用户的所有操作都在这个ID号下完成。
组:GID, 每一个组都有一个组ID
组的信息存在/etc/group
为了便于管理,除了用户的ID号外,还有其他属性,用户一登录,Linux给用户起一个shell,在passwd中配置;用户都有权限查看passwd,所有为了安全,Linux启用影子口令,用户的密码存在/etc/shadow。组也需要密码,密码放在/etc/gshadow。
Linux用户类别:
1.管理员: ID号为0,改不了的
2.普通用户: ID的范围1-65535
为了管理,可分成:
(1)系统用户:ID的范围为1-499,系统用户指专门拿来运行后台进程的,不需要登录的。
(2)一般用户:ID的范围为500-60000,一般用户可以登录系统调用服务。
用户组类别:
1.管理员组
2.普通组
(1)系统组
(2)一般组
用户组类别:
基本组:用户默认组
私有组:创建用户时,如果没有为其制定所属组,系统会自动为其创建一个与用户同名的组
附件组,额外组:默认组以外的其它组
进程 tom(属主) tom(属组)
对象:rwxrw-r-- jerry(属主) tom(属组) a.txt
如果一个进程以tom的权限访问一个对象(权限信息如上),以什么
权限访问?
首先,系统看进程的属主和文件的属主是否一样,如果不一样看属组,
看进程的属主是否属于文件的属组,如果是以rw-访问,不是以其它
权限r--访问。
tom执行: ls
rwx-xrr-x root root /bin/ls
tom不是root组,以其它权限执行。
tom再访问a.txt时:权限决定于tom的权限,而不是/bin/ls的权限.
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
用whatis passwd可以看看passwd用几个章节的man文档:
#whatis passwd
passwd (1) - update user's authentication tokens
passwd (5) - passwd file
passwd (rmp) - The passwd utility for setting/changing passwords using PAM
.......
#man 5 passwd --可以看到详细信息
account: 登录名
password:加密的密码,如果是x是密码占位符,真实的密码在/etc/passwd
uid: 用户的id号
gid: 用户基本组id
gecos: 可选的,包括全名,电话等注释信息
home dir: 家目录
shell: 用户的默认shell
如果给用户指定非法shell,用户不能登录,只有出现在/etc/shells中
的shell才是合法的。
#cat /etc/shadow
--$1:表示MD5加密算法
--$SDFASDFA: 密码杂质,用来防止密码相同泄露;2个杂质不同的相同
--密码密文不一样的
--当用户输入密码,先加入杂质,然后计算结果,再比较
root:$1$SDFASDFA$SLDFJASDFLJASKDFJKASJDFKASKDFJS:15753:0:99999:7:::
... ...
#whatis shadow
#man shadow
#man 5 shadow
1.login name
2.encrypted passwd
!!为禁止用户
3.距离上次修改密码的天数
4.密码最短使用期限
5.密码最长使用期限
6.密码离过期多少天向用户警告
7.密码宽限天数,这段时间必须首先改密码
8.执行账号的有效期,从1970年1月1日开始算
9.保留字段,无意义
备注:
加密算法
1.对称加密:加密和加密都使用同一个密码
2.公钥加码:每一个密码都成对出现,一个公钥,一个私钥
3.单向加密,散列加密:可以由明文取密文,反过来不行,用来提取数据特征码
可以用来做数字校验,防止被串改,实现数据完整性校验。
有2个特性:
(1)雪崩效应:初始条件的微小改变,引起结果的巨大的变化。
(2)定长输出:
MD5: Message Digest 5, 信息摘要, 128位定长输出
SHA1: Secure Hash Algorithm, 160位定长输出
SHA1比MD5安全,但效率较慢
公钥密钥比对称加密要快一千倍以上。
查看系统组详细信息
---------------------------
#cat /etc/groupdaemon:x:2:root,bin,daemon
1.组名2.密码占位符
3.组ID
4.以这个组为附加组的用户列表
添加一个组
#groupadd mygroup
#tail -l /etc/group
mygroup:x:504:
添加用户
------------
1.查看useradd#which useradd
/user/sbin/useradd
#ls -l $(which useradd) --命令替换
#ls -l `which useradd`
useradd可以指定默认属性,源于/etc/default/useradd的配置:
#cat useradd
GROUP=100
HOME=/home --在该目录创建用户的家目录
INACTIVE=-1 --不做限制
EXPIRE= --没值永不过期
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
2.useradd linus
#useradd linus
#tail -l /etc/passwd --显示最后一行
#tail -l /etc/shadow
--改密码
#passwd tom
#tail -l /etc/shadow
用户管理相关命令
--------------------------
1.useradd : 添加用户2.userdel
3.usermod
4.passwd
5.chsh
6.chfn
7.finger
8.id
9.chage
组管理的命令
1.groupadd
2.groupdel
3.groupmod
4.gpasswd
权限管理
1.chown
2.chgrp
3.chmod
4.umask