Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。
通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
Linux上通常使用chmod命令对文件的权限进行设置和更改。
# 添加用户 sudo useradd lyj # 修改此用户的密码,创建完用户必须设置密码 sudo passed lyj # 切换为lyj用户 su lyj # 查看lyj用户的信息 id lyj # 添加组 sudo groupadd group1 # 添加用户的同事添加组 sudo useradd -g lyj grouplyj # 给已有的用户增加工作组 modfiy 修改 sudo usermod # 永久性的删除用户 userdel lyj # 永久性的删除组 groupdel grouplyj
usermod的参数
ls -al /home/lovess/temp
得到
drwxrwxr-x 2 lovess lovess 4096 1月 14 17:36 .
在Linux系统中,文件的属性由10个字符来表示。 第一个字符表示文件的类型,其余9个字符分为三组,每组三个,分别表示文件的拥有者、群组以及其他人对该文件的访问权限。每组依次表示读取、写入、和执行的权限,如果没有该权限,则以**-**显示。
六种文件
d 文件夹(或者叫目录) l 符号链接文件(类似windows下的快捷方式一样的东西) b 磁盘设备文件 c 字符设备文件((和磁盘设备文件,主要是和周边硬件连接,作为系统和硬件之间的接口)) s Socket文件((内部进程通信的一种特殊文件,也可作为和远程主机通信的管道)) p 连接文件(是一种内部进程通信的机制,一个进程把数据写入Pipe中,另一个进程则由Pipe读取数据,数据采用先进先出(FIFO)的次序,称为管道)
三种身份
- u:文件的拥有者(user) - g:文件所属的群组(group) - o:其他用户(other)
四种权限
- r:读取文件的权限(read) - w:写入文件的权限(write) - x:执行的权限(execute) - s:特殊权限(special)
给三种身份都赋予执行的权限
chmod +x 文件名1
等价于
chmod a+x 文件名
也拆开写,a表示all所有人分别用u、g、o替换
对应: 去掉某个身份的某个权限,只需要将+变为-即可。比如
chmod u-r 文件名
-rw------- (600) 只有拥有者有读写权限。
-rw-r–r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx–x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
#设置所有人可以读写及执行 chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chmod a=rwx file) #设置拥有者可读写,其他人不可读写执行 chmod 600 file (等价于 chmod u=rw,g=---,o=--- file )
chmod [who] [+ | - | =] [mode] 文件名