从一个小白开始,学习了一段时间Linux,感谢马哥,对Linux有了个初步的认识,上学时候学到的计算机方面的知识,也在脑袋里复活了,虽然实在算不上满血复活。 第一篇博客作业:用户及文件权限管理,Linux下的用户和文件权限系统,这方面与Windows区别还是比较大的,利用这个机会自己梳理下。
linux的权限系统主要是由用户、用户组和权限组成。
用户就是一个个的登录并使用linux的用户。linux内部用UID表示。
用户组就是用户的分组。linux内部用GID表示。
权限分为读、写、执行三种权限。
1、用户及用户组:
1.1用户:
储存用户和组的文件目录
用户:UID /etc/passwd
组 :GID /etc/group
Linux中,在储存用户和组信息的文件,不会直接将用户或组密码储存在其中,而是在其他文件中储存,但并不是直接以密码保存,而是保存加密后的文件,影子口令
用户:/etc/shadow
组 :/etc/gshadow
储存用户信息的文件:/etc/passwd
cuiyuzhe:x:1000:1000:cuiyuzhe:/home/cuiyuzhe:/bin/bash
docker:x:1001:1001::/home/docker:/bin/bash
archlinux:x:1002:1002::/home/archlinux:/bin/bash
通过上面示例可以看到,在/etc/passwd文件中,每个用户信息作为一行,而每一行分为7段,用 :分隔,分别表示:
用户名 :密码占位符 :UID :用户私有组(基本组)GID :注释 :用户家目录 :默认shell
1.2 用户组:
用户组分为(1)基本组,私有组:本组只有该用户自己,用户创建文件后,该文件的默认组为该用户的基本组
(2)附加组,额外组:基本组以外的其他组
在创建一个用户时,如果未指定用户私有组和家目录时,系统默认会为该用户创建一个以该用户名为组名的组,作为该用户的私有组组GID一般与用户UID相同。且会在/home目录下为该用户创建一个与该用户同名的目录作为该用户的家目录。
1.3 存储密码文件
储存密码信息文件:/etc/shadow
mysql:!:17301:0:99999:7:::
wangml:!!:17303:0:99999:7:::
各字段的含义:用户名 :加密后的密码 :最后一次密码修改时间 :密码最短使用时间 :用户过期时间 :修改密码警告时间。
1.4 用户及用户组管理命令
创建用户组: groupadd
NAME
groupadd – create a new group
SYNOPSIS
groupadd [options] group
参数:
-g:GID,手动指定ID号
-r:创建系统组:1-499,1-999,
每个进程的执行都代表了所在用户的身份
修改组命令:groupmod
NAME
groupmod – modify a group definition on the system
SYNOPSIS
groupmod [options] GROUP
-g :GID
-n: new name
删除组命令:groupdel
创建用户命令:useradd
NAME
useradd – create a new user or update default new user information
SYNOPSIS
useradd [options] LOGIN
useradd -D
useradd -D [options]
-u:–uid :指定uid号
-g:–gid: 指定基本组ID,此组需要事先存在
-G:–groups:GROUP1,GROUP2,GROUP3 指明用户所属的附加组,多个组之间用逗号分隔。
一个用户可以属于多个附加组。但是一个用户只能有一个基本组。
-c:–comment :指明注释信息
-d:以指定的路径为用户的家目录:创建方式通过复制/etc/skel/并重命名实现的,指定的家目录如果事先存在。则不会为用户复制环境配置文件。(一些隐藏文件)
-s:–shell:指明用户的默认shell SHELL:所有的可用shell别表为/etc/shells
-r:–system:创建系统用户。
-m:强制为用户创建主目录
-M:不为用户创建主目录
-f:–inactive :密码过期后账号被彻底禁用之前的天数,0,表示立即禁用,-1表示禁用这个功能
-r:–system:创建系统用户。
-m:强制为用户创建主目录
-M:不为用户创建主目录
-f:–inactive :密码过期后账号被彻底禁用之前的天数,0,表示立即禁用,-1表示禁用这个功能
修改用户属性命令:
usermod命令:修改用户属性
NAME
usermod – modify a user account
SYNOPSIS
usermod [options] LOGIN
-c:–comment:改注释
-l:–login:改用户名
-u:修改UID
-g:–gid :修改用户所属的基本组
-G:–groups :修改用户所属的附加组,原来的附加组会被覆盖
-a:–append:与-G一同使用,用于为用户添加新的附加组
-d:–home :修改用户的家目录:用户原有的配置文件不会转移到新文件-m配合使用
-m:–move-home:只能与-d选项一同使用,用于将原有的家目录移动为新的家目录
-s:–shell:修改用户的默认shell
-L:–lock :锁定用户密码:即在用户原来的密码字符串之前添加一个”!”
-U:–unlock:解锁用户密码
userdel命令:删除用户
NAME
userdel – delete a user account and related files
SYNOPSIS
userdel [options] LOGIN
-r :删除用户时,一并删除其家目录
2、文件权限管理
由于Linux的一切皆文件的基本思想,对于权限的管理更多的则体现在管理文件权限上。为了方便的指派权限,在Linux中定义了文件属主,文件属组,其他人这三类人的权限。对于计算机来说,这三类都是一个标识符。
Linux进程有安全上下文,程以其发起者的身份运行,
如果进程的属主与文件的属主是否相同:
如果相同则应用属主权限;
否则,则检查进程的属主与文件的属组是否相同:
如果相同,应用属组权限:
否则,应用other权限
通过 ls 命令我们可以看到文件的具体权限信息。
[root@localhost /]# ls -l /etc/issue
-rw-r–r–. 1 root root 23 Nov 30 2016 /etc/issue
文件权限信息一共有9位,每3位一组,分别表示属主,属组,其他人的权限信息
rw-r–r– :
左三位:定义user(owner)权限:对应u
中三位:定义group权限:对应g
右三位:定义other权限:对应o
权限:r w x
对于文件:
r:read:可读,可以使用cat等命令查看文件内容
w:wirte:可写,可以进行编辑修改,或删除操作
x:excute:可执行,可以在命令提示符下当做命令提交给内核运行
对于目录:
r:可以对此目录执行ls命令,列出内部所有文件
w:可以在此目录下创建文件
x:可以使用cd命令切换进此目录,也可以使用ls -l命令查看内部文件的详细信息
对于目录来说,一般会有执行权限,而对于文件来说,一般默认没有执行权限。
表示没有某个权限时,使用 –
在表示文件权限时,也可以使用八进制数字0,1,2,4…表示
0 000 —:无权限
1 001 –x:可执行
2 010 -w-:可写
4 100 r–:可读
7 111 rwx:可读可写可执行
修改文件权限:chmod MODE 文件
-R:递归修改
–reference=文件1 文件2… :将文件2…将文件2…的属性修改为与文件1相同
修改某类用户权限时:chmod 用户类别(u g o a) +(-) MODE,a表示所有用户,可以省略
我们都知道,在创建一个文件后,系统会默认给文件赋予权限,那么,默认权限是由什么决定的?
umask:遮罩码,不加参数时表示查看系统默认遮罩码,加八进制位表示修改遮罩码
创建文件后默认权限 666-umask
创建目录后默认权限 777-umask
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88119