五 Linux文件权限与目录配置
@(0511.Linux服务器)
一、用户组
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念
**a.**所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
用ls ‐ahl命令可以看到文件的所有者
也可以使用chown new_user_name file_name
来修改文件的所有者
**b.**文件所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用ls ‐ahl命令可以看到文件的所有组
也可以使用chgrp new_group_name file_name
来修改文件所在的组
**c.**其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
二、文件权限
使用命令ls -l
,可以查看当前目录下可见文件权限属性如下
drwxrwxr-x 3 baishu baishu 4096 Jun 1 test- 3 表示连接的文件数- baishu表示用户- baishu 表示用户所在的组- 4096 表示文件大小(字节)- Jun 1 表示最后修改日期- test 表示文件名
10个字符确定不同用户能对文件干什么
第一个字符代表文件(-)、目录(d),链接(l)
其余字符每3个一组(rwx),读(r/read)、写(w/write)、执行(x/execute)
第一组rwx:文件所有者的权限是读、写和执行
第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
三、命令使用
a.修改权限命令
chmod 改变文件或目录的权限的几种用法
权限的表达也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7,rwxrwxr-x
也可写作775表示
chmod 755 test
:赋予test权限rwxr-xr-x
第二种方法在设置时需要注意的是除了三种身份(0)user, (1)group, (2)other 外还有第四个即代表全部用户的(3)all。
chmod u=rwx,g=rx,o=rx test;
:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w test;
:给test去除用户执行的权限,增加组写的权限
chmod a+r test;
:给所有用户添加读的权限
b.改变文件所有者和用户组命令
chown xiaoming test
:改变test的所有者为xiaoming
chgrp root test
:改变test所属的组为root
chown root ./test
:改变test这个目录的所有者是root
chown ‐R root ./test
:改变test这个目录及其下面所有的文件和目录的所有者是root
c.改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
- usermod ‐g 组名 用户名
你可以用
- usermod ‐d 目录名 用户名
,改变该用户登录的初始目录
权限相关问题及补充说明
示例1:test2文件权限如下
drwxr--r-- 3 root root 4096 Jun 1 test2
系统内有baishu用户,其用户组为baishu,请问该用户对test2有何权限?可否切换到该目录内?
答:baishu用户对test2目录具有读(read)权限,因此可以读取该文件夹下的文件名列表。但因为baishu用户不具有x权限,因此不能切换到该目录内。
总结:如果用户在某目录下不具有x
的权限,则该用户无法切换到该目录,也无法执行该目录下所有指令,即使该用户拥有r
或w
权限。因此如果要对某用户或用户组开放浏览使用时,至少需给予r
和x
权限,w
权限不能随便赋予。
示例2:在目录/home/baishu
(baishu的家目录)下存在文件test_root.temp,其权限如下:
-rwx------ 3 root root 4096 Jun 1 test_root.temp
请问用户对该文件有何权限?可以删除该文件吗?
答:baishu不再用户组root内,因此它对于test_root.temp文件属于other用户组,因此baishu对该文件不可读,不可写,不可编辑。但由于该文件存在于baishu的家目录/home/baishu
内,他对此目录具有完整的rwx
权限,因此可以删除该文件!