4.5 用户和权限管理

168 阅读11分钟

用户和权限管理

1.用户

1.1.三种用户

超级管理员:权限最高

普通用户:权限受限

程序用户:不是给人登录使用的,给程序使用的。

注:在/etc/passwd文件中可以查看用户信息,登录用户一般结尾为/bin/bash,程序用户一般结尾为/sbin/nologin

用户初始配置文件/etc/skel

[root@localhost skel]# ll -a /etc/skel/
总用量 24
drwxr-xr-x.   3 root root   78 3月  21 04:42 .
drwxr-xr-x. 138 root root 8192 4月   7 18:56 ..
-rw-r--r--.   1 root root   18 8月   3 2017 .bash_logout
-rw-r--r--.   1 root root  193 8月   3 2017 .bash_profile
-rw-r--r--.   1 root root  231 8月   3 2017 .bashrc
drwxr-xr-x.   4 root root   39 3月  21 04:41 .mozilla

1.2.组

一个用户必须有一个基本组(有且只有一个),附加组可有可无,也可以多个。

查询用户uid、gid、组命令 id 用户名

[root@localhost etc]# id zy          #查询用户uid gid 组  命令:id 用户名
uid=1000(zy) gid=1000(zy) 组=1000(zy)

1.3.UID和GID

系统靠uid来区别用户身份

uid(user id):用户的身份证

centos7中uid范围范围
超级管理员0
普通用户1000-60000
程序用户1-999

gid(group id):用户组的身份证

1.4.用户相关的文件

1.4.1. /etc/passwd文件 用户信息文件

用户相关的文件的文件在/etc/passwd中

[root@localhost /]# 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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
.
.
。
zy:x:1000:1000:zy:/home/zy:/bin/bash     #普通用户

文本介绍:

以root:x:0:0:root:/root:/bin/bash为例
[root@localhost /]# cat /etc/passwd |grep ^root
root:x:0:0:root:/root:/bin/bash

#root:用户的名字
#x:密码的占位符
#0:uid
#0:gid
#root:备注信息
#/root:家目录位置
#/bin/bash:登陆时默认加载的shell

man 5 passwd 可以查询该文件的信息。

1.4.2./etc/shell文件 用户登录要用的文件

[root@localhost /]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

如果用户没有该目录下的文件,无法登录(nologin是程序用户,也无法登录,可以使用)

1.4.3./etc/shadow文件 用户密码文件

shadow文件:存放密码及密码策略的文件

[root@localhost /]# cat /etc/shadow
root:$6$AAF0BnBUCdYGUtBR$PblyYlBMNx3sLZ5r9CoLp8zTSOeJtW/4ehiyUggY/69gAROH1juTn1x.lB60iwH6m23GAEYAJDJ5aFTiX1dOU.::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
.
.
.
zy:$6$7jOOQlWUYvDVsU8y$Qowgg1fgyzmRE2ogSkRzKA7o/RMBkI/nOb0VdjjXCuDjsDswg9cEPlFn/bWCWHYc3JGMWaSbdSgMYBYCaFMWy1::0:99999:7:::

2.useradd命令

useradd 选项 用户名含义
不加选项 用户名新建一个用户
-u指定uid
-s指定shell类型
-m不建家目录
-c备注信息
-d指定家目录(可以是不存在的目录)
-e指定失效时间(yy-mm-dd)
-g指定基本组
-G指定附加组
-r随机生成一个1-999的用户并且不建家目录

不加选项的情况下新建用户

1.自动建立一个同名的基本组

2.自动建立一个同名的家目录,在/home下

2.1.对已有用户的属性进行修改

usermod 选项含义
-l 新名字 旧名字改名
-L锁定用户
其余与useradd命令一致

2.2.删除用户

userdel 选项 用户名含义
userdel 不加选项 用户名删除用户,家目录还在变成无属主目录
userdel -r 用户名连同家目录一起删除

3.passwd命令

passwd 选项 用户名含义
-d清空用户密码
-l锁定
-u解锁查看用户是否被锁定
-S

免交互设置密码

echo“123123” | passwd 用户名 --stdin

4.用户目录的权限与归属

4.1.u、g、o

[root@localhost mnt]# ls
123
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123
#rwx:主权限
#r-x:组权限
#r-x:其他人权限

属主(u):文件的主人,文件的拥有者

属组(g):文件的拥有组

其他人(o):除上面两个人之外的人

4.2.权限

r:读权限 对文件:可以看内容 对文件夹:可以用ls看文件夹中的文件

w:写权限 对文件:可以修改内容 对文件夹:可以新建、删除、移动文件(夹)

x:执行权限 对文件:可以运行命令,颜色是绿色,执行权限是最小的权限,没有x权限,读写无法使用

注:所有人都没有x权限,超级管理员也没有,只要有任何一个用户有x权限,超级管理员就有x权限。

如果一个文件在文件夹下,用户删除文件和文件的权限无关,和文件所在的文件夹权限有关。

4.6.修改文件的权限

非数字法:

chmod 选项 指明属主(u)、组(g)、其他人(o)、所有人(a) 权限 文件名

chmod含义
+加权限
-减权限
=赋予

举例:

[root@localhost mnt]# ll
总用量 0
drwxrwxr-x. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod a-x 123  #给所有人不给予执行权限
[root@localhost mnt]# ll
总用量 0
drw-rw-r--. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod a+x 123 ##给所有人给予执行权限
[root@localhost mnt]# ll
总用量 0
drwxrwxr-x. 2 root root 33 3月  29 16:19 123   
[root@localhost mnt]# chmod g-w 123          #给组不给予写权限
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod a+rwx 123       #给所有人rwx权限
[root@localhost mnt]# ll
总用量 0
drwxrwxrwx. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod g=rx 123 ;chmod o=rx 123      #给g赋予rx权限;给o赋予rx权限
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123

数字法:

chomd XXX 文件名

第一个X:u的权限

第二个X:g的权限

第三个X:o的权限

X范围(0-7 r=4 w=2 x=1 7=r+w+x 6=r+w 5=w+x)

rwx十进制
0000
0011
0102
0113
1004
1015
1106
1117

举例:

[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod 777 123     #赋予u、g、o对123的rwx权限
[root@localhost mnt]# ll
总用量 0
drwxrwxrwx. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod 000 123             #不赋予u、g、o对123的rwx权限
[root@localhost mnt]# ll
总用量 0
d---------. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod 444    123             #赋予u、g、o对123的r权限
[root@localhost mnt]# ll
总用量 0
dr--r--r--. 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# chmod 755 123                #赋予u对123的rwx权限,赋予g、o对123的rw权限
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123

4.4.权限掩码 umask

umask:在linux中规定了新建文件夹和新建文件的落地权限

默认umask为0022,0022这是剔除的权限

权限掩码 umask 默认0022各数字含义
第一位0代表特殊权限
第二位0代表属主权限
第三位2代表属组权限
第四位2代表其他人权限

在文件夹中:777是文件夹的最高权限,777(rwx rwx rwx)-022( - --- -w- -w-)=755(rwx r-x r-x),所以755就是文件夹的落地权限

在文件中:666是文件的最高权限(一般文件默认不设x权限,可手动添加x权限,因为x权限对于文件非常危险),666-022=644(rw- r-- r--),所以644就是文件的落地权限

由于文件一般不给予x权限,所以有可能遇到666-123=543(r-x r-- -wx)这种情况,由于666本身文件就没有执行权限,减去权限掩码123后,减法得出最终权限却出现了x权限,所以在这种情况时,直接奇数在+1,偶数不变,所以最终权限应该为644

4.5.三种特殊权限

三种特殊权限含义
suid权限 4如果拥有这个权限,当用户使用这个命令程序时,把当前用户当成这个文件的属主。只能设置在属主位置上
guid权限 2如果拥有这个权限,当用户使用这个命令程序时,把当前用户当成这个文件的属组。只能设置在属组位置上
sticky粘贴位 1/tmp只允该目录下的文件的拥有者删除自己的创建的文件,不允许其他人删除文件。只能设置在其他人位置上

举例

[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 zy zy 33 3月  29 16:19 123
[root@localhost mnt]# chmod u+s 123|ll    #该例子中chmod u+s=chmod 4755         为属主对文件增加suid权限   
总用量 0
drwsr-xr-x. 2 zy zy 33 3月  29 16:19 123
[root@localhost mnt]# chmod g+s 123|ll       #该例子中chmod g+s=chmod 2755       为属组对文件增加guid权限   
总用量 0
drwsr-sr-x. 2 zy zy 33 3月  29 16:19 123
[root@localhost mnt]# chmod o+t 123|ll       #该例子中chmod o+t=chmod 1755        为其他人增加sticky权限
总用量 0
drwsr-sr-t. 2 zy zy 33 3月  29 16:19 123
root@localhost mnt]# chmod -sst 123          #取消文件的sst权限 只有非数字法可以取消 数字法不可以。
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 zy zy 33 3月  29 16:19 123

5.chown命令

chown命令可以改变文件(夹)的属主和属组

chown 属主:属组 文件名含义
chown -R 属主:属组 文件名递归修改
chown 属主 文件名只修改文件的属主
chown :属组只修改文件的属组
chown 属主:属组 文件名属主属组都改变

举例:

[root@localhost mnt]# ll -R
.:
总用量 0
drwxr-xr-x. 2 root root 33 3月  29 16:19 123

./123:
总用量 0
-rw-r--r--. 1 root root 0 3月  29 16:19 1
-rw-r--r--. 1 root root 0 3月  29 16:19 2
-rw-r--r--. 1 root root 0 3月  29 16:19 3
[root@localhost mnt]# chown zy 123|ll -R          #只修改123文件夹的属主为zy
.:
总用量 0                
drwxr-xr-x. 2 zy root 33 3月  29 16:19 123           #属主由root变成zy

./123:
总用量 0
-rw-r--r--. 1 root root 0 3月  29 16:19 1
-rw-r--r--. 1 root root 0 3月  29 16:19 2
-rw-r--r--. 1 root root 0 3月  29 16:19 3
[root@localhost mnt]# chown zy:zy 123|ll -R          #修改123文件夹的属主和属组为zy
.:
总用量 0
drwxr-xr-x. 2 zy zy 33 3月  29 16:19 123                #属主和属组由root变成zy

./123:
总用量 0
-rw-r--r--. 1 root root 0 3月  29 16:19 1
-rw-r--r--. 1 root root 0 3月  29 16:19 2
-rw-r--r--. 1 root root 0 3月  29 16:19 3
[root@localhost mnt]# chown -R zy:zy 123|ll -R           #递归修改123文件夹的属主属组为zy 
.:
总用量 0
drwxr-xr-x. 2 zy zy 33 3月  29 16:19 123

./123:
总用量 0
-rw-r--r--. 1 zy zy 0 3月  29 16:19 1          #123及下面的1、2、3文件属主属组都由root变成zy
-rw-r--r--. 1 zy zy 0 3月  29 16:19 2
-rw-r--r--. 1 zy zy 0 3月  29 16:19 3

6.ACL 访问控制列表

getfacl 文件名 查看权限

setfacl -m u:lisi:rwx passwd 单独给lisi对passwd的rwx权限

setfacl -x lisi passwd 解除lisi对passwd的权限

举例

[root@localhost mnt]# ll
总用量 0
drwxr-xr-x+ 2 root root 33 3月  29 16:19 123
[root@localhost mnt]# getfacl 123      #查看123文件夹的权限
# file: 123
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x
[root@localhost mnt]# setfacl -m u:zy:rw 123       #单独给zy对123文件夹的rw权限
[root@localhost mnt]# getfacl 123
# file: 123
# owner: root
# group: root
user::rwx
user:zy:rw-
group::r-x
mask::rwx
other::r-x
[root@localhost mnt]# setfacl -x zy 123            #解除zy对123文件夹的rw权限
[root@localhost mnt]# getfacl 123           
# file: 123
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x