Linux系统是个多用户系统,它能做到不同的用户能同时访问不同的文件,但是又不可能让每一个用户都随意可随意访问修改别的用户的数据,因此一定要有文件权限控制机制。Linux系统的权限控制机制和Windows的权限控制机制有着很大的差别。Linux的文件或目录被一个用户拥有时,这个用户称为文件的拥有者(或文件属主),同时文件还被指定的用户组所拥有(文件属组)。一个用户可以是不同组的成员,这可以由管理员控制。文件的权限由权限标志来决定,权限标志决定了文件的拥有者、文件的所属组、其他用户对文件访问的权限。
那么先来说一下文件的权限标志:
文件权限标志格式:
第一位是特殊含义,第二位到第十位九个字符段分别表示:属主权限·属组权限·其他
对与文件来说:
r:可查看文件内容
w:修改文件内容
x:可把此文件启动为一个运行的程序(进程)
对于目录来说:
r:可以使用ls查看目录中的文件名
w:可以再目录中创建或删除文件
x:可以cd到此目录中,以及使用ls –l显示文件的元数据信息
用户又是如何访问权限的呢?
1, 用户访问文件时先检查运行程序的属主是否与其正在访问的属主相同,如果相同则以属主的权限访问,否则
2, 检查运行此进程的属主和此文件的属组相同,如果是则以组权限访问,否则
3, 以其他权限访问
用户的账户信息又都存放在哪里呢?
/etc/passwd:存放用户的账户信息
格式:account:password:UID:GID:GECOS:directory:shell
登录名:密码占位符:用户ID:组ID:注释:家目录:默认SHELL
/etc/shadow:用户的密码和相关设定
/etc/group:组的账号信息
格式:groupname:password:GID:user_list
组名:组密码占位符:组ID:以逗号分隔属于此组的用户列表
/etc/shells:shell的存放位置
/etc/gshow:组的密码信息
用户类别:
管理员:默认的ID号为0
系统用户:组ID号1-499
普通用户:组ID号500+
useradd命令:用户建立
-uUID:指定用户的ID号
-gGID:所属的基本组
-GGID:所属的附加组
-c ‘comment’:注释信息
-d /path/to/somewhere:指定家目录,如果此目录存在会有提示信息
-s SHELL:SHELL必须是/etc/shells文件中存在的
-m:强制给用户创建加目录(默认的)
-M:不给用户创建加目录
-r:创建系统用户
groupadd命令:组建立
-gGID:指定组ID号
-r:系统组
passwd:
--stdin
-l:lock锁定
-u:unlock解锁定
userdel:删除用户
userdel [options] username (不删除用户的家目录)
-r:删除用户家目录
groupdel:删除组
groupdel GRPNAME
usermod:所有useradd的参数都可以用
-GGID:修改用户附加组,与-a一起使用以追加组
-l LOGIN NAME:修改名
只改变用户名,而不改变用户家目录名
chsh:change shell
chfn: 修改用户信息
chage:修改用户到期时间
id:id username 查询用户信息
-g:显示用户基本组
-G:显示所有组,和-n一起使用显示组名
-u:用户ID
su:切换用户swich user
su [option] username
-l:完全切换,l可省略。。。。如果username前边不加“-”,则不切换到username下。
-c “COMMAND”:指定用户运行的命令。
groupmod:修改组
-gGID:修改组ID
-n:新组名
gpasswd:给组设定密码
newgrp – [group] :登陆到新的组
文件权限管理: 举例权限为drwxrwxrwx
红色rwx代表的是属主的操作权限,用u表示用户自己
蓝色rwx代表的是属组的操作权限,用g标志所属组
橙色rwx代表的是其它的操作权限,用o表示other
a表示all=u,g,o
chmod:修改权限,操作三类用户的权限,使用八进制来进行
三类表示用数字:例表示rwx------为700
rwxr- -r- -为 744
r=4,w=2,x=1
chmod[-R] OCTAL_MODE FILE
-R表示递归,对文件目录下所有数据进行权限修改
二类表示法
还可以采用添加或去除某一位的什么权限来修改
chmodu=+w /home/mmzz
注意:当u去除r权限时,ugo将会任何权限都没有---------
当使用+/- w加权限时,默认只给u上添加写,而go上权限不变
那么我们最初创建的文件的默认权限是怎么回事?为什么还会有不同?
下来就涉及到权限掩码
管理员的默认权限掩码是022
普通用户的默认权限掩码是002
新建目录的权限=777—默认权限掩码
新建文件的权限=666—默认权限掩码
umask [值] :设置新建文件的权限掩码