一、用户与用户组
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个惟一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
//查看用户
id user
//查看当前用户
who am i
//添加用户
useradd user
//设置密码
passwd user
//删除用户
userdel -r user
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
//查看用户所在组
groups user
//加入组
gpasswd -a user group
#把用户user加入到group组;
#加入组后user获取到user组及group组所有权限
//移出组
gpasswd -d user root
#把用户user移出group组;
二、文件权限
用 ls 命令列出文件详情(ll 是 ls -l):
每列依次表示:
文件类型与权限 连接的文件数 用户 用户所在的组 文件大小(字节)最后修改日期 文件名
第一列第一位表示文件类型,有以下几种:
-
普通文件(regular file)第一个字符为[ - ]
包括:
①纯文本档(ASCII):这是Linux系统中最多的一种文件类 型,称为纯文本档。是因为内容为我们⼈人类可以直接读到的数据,例如数字、字母等等。
②二进制文件(binary): 你的Linux中的 可执行文件(scripts, 文字型批处理文件不算)就是这种格式的。
③数据格式文件(data):有些程序在运作的过程当中会读取某些特 定格式的档案,那些特定格式的档案可以被称为数据⽂文件 (data file)。一般用cat看到的都是乱码。 -
目录(directory): 第一个字符为[ d ]
-
连接文件(link)第⼀一个字符为[ l ]
-
设备和设备文件
包括:①块设备文件,即一些存储文件,如硬盘、软盘等,第一个字符为 [ b ]
②字符设备文件,即一些串行端口的接口文件,如键盘、鼠标等, 第一个字符为[ c ]
-
套接字(sockets)第一个字符为[ s ] 。还被称为数据接口文件,这种类型的文件通常被用在网络上的数 据连接。我们可以启动一个程序来监听客户端的请求,而客户端就 可以通过数据接口文件来进行数据通信。
-
管道(FIFO,pipe)第一个字符为[ p ]
第一列后九位是权限列表:
如上图,可以将权限分为三组:
-
文件和文件目录的所有者:u—User
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
用 ls ‐ahl 命令可以看到文件的所有者
也可以使用 chown 用户名 文件名 来修改文件的所有者
-
文件和文件目录的所有者所在的组的用户:g—Group
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用 ls ‐ahl 命令可以看到文件的所有组
也可以使用 chgrp 组名 文件名来修改文件所在的组
-
其它用户:o—Others
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
每个权限部分可选字符选项如下:
-
r: read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
-
w:write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
-
S:set如果在所有者权限部分,表示该文件不能被执行和设置为set-user-ID模式。如果在组权限部分,表示该文件不能被执行和设置为set-group-ID模式。
-
s:如果该字符在所有者权限部分,表示该文件可执行和设置为set-user-ID模式。如果设置在组权限部分,表示该文件可执行和设置为set-group-ID模式。
s位的说明:
一般来说,一个运行中的程序为运行这个程序的用户所拥有。但如果该程序是suid/guid程序,则运行的程序则为文件所有者拥有,运行中的程序在程序运行期间拥有文件所有者的全部权限。
如果一个普通用户运行了一个属于根用户的带s标志的程序,那么,该程序将不考虑用户权限,而是自动拥有在系统中读/写任何文件及目录的特权。这样做,有一定的好处,但一般我们不建议采用s位,要严格设置这种权限,避免破坏性。
-
x:execute对⽂文件⽽而⾔言,具有执⾏行⽂文件的权限; 对于目录来说,具有进⼊目录的权限
-
-:无(读,写,执行,setuid等)权限
以下两个字符只能用于其它用户:
-
T 沾滞位设置(1000模式),但不能执行或者搜索。
-
t 沾滞位设置(1000模式),并可以执行或搜索。(该字符较常见一般用于授予目录,作用为任何人可以在该目录中创建文件,但是该文件只有创建者可删除。见/tmp目录权限)
t位的说明:
程序的t属性表示粘滞位,即告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统 节省点时间,不用每次从磁盘加载到内存。由本人注明:是保存在虚拟内存中,而不是物理内存中。
目录的t属性,设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录
需要注意的是:
- 如果有某目录的 w 权限那么就可以删除该目录下的任意文件(无论有无该文件的权限)
- 如果没有目录的 x 权限,那么无法进入该目录使其成为工作目录,但是仍然可以看到该目录的内容,但是无法对该目录下的文件进行读写操作(即使有该文件的读写权限)
- 一般使用八进制表示 rwx 权限:r=4,w=2,x=1
//设置文件的访问权限
chmod [参数] 权限文件名
//修改文件的拥有者
chown [参数] 用户名 文件名
//修改文件或目录的所属组
chgrp [参数] 用户组名 文件名