Linux(1): 用户及权限详解

来源:互联网 发布:淘宝卖的军用水壶真假 编辑:程序博客网 时间:2024/06/03 19:43

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/group

daemon: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
0 0