当我们使用 ls -l 的时候,我们会看见当前目录的下得文件或者目录的基本权限。
例如:ls -l /var
[houziyu@xpsl ~]$ ls -l /var
总用量 8
drwxr-xr-x. 2 root root 6 11月 5 2016 adm
drwxr-xr-x. 7 root root 73 4月 15 15:39 cache
drwxr-xr-x. 2 root root 6 8月 7 2017 crash
drwxr-xr-x. 3 root root 34 4月 15 15:35 db
drwxr-xr-x. 3 root root 18 4月 13 21:18 empty
drwxrwxr-x. 3 ftp ftp 70 4月 16 17:19 ftp
drwxr-xr-x. 2 root root 6 11月 5 2016 games
......
我们可以看见这些目录开头是以 drwxr-xr-x 其中,这个片段这样分配。
d rwx r-x r-x
目录 所有者 所属组 其他人
第一个字符是指明文件的类型,后面的是对权限的设置。
基础权限主要是 r、w、x 三种,但是根据文件的不同,一般 目录 和 文本文件 的权限表达有所区别。
目录 的权限表达:
r 表示可以查看目录列表,例如你用 ls 查看文件和目录。注:虽然当前目录不可读取,但是不代表下层目录不可读取。
w 表示你可以在这个目录里面创建或者删除里面的文件或目录
x 表示你可以进入这个文件。
文件 的权限表达:
r 表示你可以读取文件
w 表示你能对这个文件进行更改。注:重命名是目录权限。
x 表示这个文件是可以执行。
了解了权限后,首先会问的第一个问题往往是,怎么修改权限,接下来就简单介绍怎么设置权限。
要设置权限,首先你需要有设置权限的资格,文件的所有者或者root。
修改权限使用命令 chmod。
设置权限有两个方式,如果你要使一个文件可以所有人拥有全部权限,你可以这样设置
chmod 777 1.txt
或者
chmod a+rwx 1.txt
前一种比较常用,后一种一般是用于针对某个特定用户群指定权限。
在linux的权限里,r=4、w=2、x=1,所以777表示该文件或目录开放所有权限。
而在第二种里,+r 表示加读权限,+w表示加写权限, +x表示执行权限,能加自然能减。
所以 -r表示去掉读权限。既然要加减权限就要指定这个权限指定谁,a 表示所有人,u表示所有者,g表示所属组,o表示其他人,直接用 +r 或者 +w 或者 +x,表示对所有人,但是 +w 不会作用其他人,所以如果需要所有人加写权限就需要用 a来指定。
如果你的目录里有很多文件或目录,但是你需要递归,那么你需要加一个 -R
chmod -R 777 /tmp/text/
除了给文件加减权限,我们还能改变文件的所有者,但是这个只能是root或者授权管理员。
chown ftp.ftp -R /var/ftp
三类用户,为了方便大家使用,所有者不能一直变,那么我们只能在所属组和其他人下功夫,而为了安全,我们只能使用所属组。
加入一个组
usermod -G [grouname] [uesername]
# 只属于某个组
usermod -a -G [grouname] [username]
# 加入某个组,但是不影响某个组
id [username]
# 查看用户信息