linux权限位
Linux文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主权限、属组权限、其他用户权限。
r:read可读权限,对应数字4;
w:write可写权限,对应数字2;
x:execute执行权限,对应数字1;
-:没有任何权限,对应数字0。
-
#创建一个用户组
-
[root@oldboy ~]# groupadd incahome
-
#创建一个用户指定所属用户组
-
[root@oldboy ~]# useradd -g incahome oldboy
-
[root@oldboy ~]# useradd -g incahome oldgirl
-
#创建一个用户
-
[root@oldboy ~]# useradd test
-
#查看用户
-
[root@oldboy ~]# id oldboy
-
uid=502(oldboy) gid=502(incahome) groups=502(incahome)
-
[root@oldboy ~]# id oldgirl
-
uid=503(oldgirl) gid=502(incahome) groups=502(incahome)
-
[root@oldboy ~]# id test
-
uid=504(test) gid=504(test) groups=504(test)
创建一个test.sh,内容:echo "i am oldboy linux"。查看属性:
-
[root@oldboy oldboy]# ls test.sh -l
-
-rw-r--r-- 1 root root 25 Dec 25 21:10 test.sh
一个家庭(用户组)incahome,成员oldboy、oldgirl,非家庭用户test,超级用户root。
修改文件权限
-
[root@oldboy oldboy]# chown oldboy.incahome test.sh
-
[root@oldboy oldboy]# ls -l test.sh
-
-rw-r--r-- 1 oldboy incahome 25 Dec 25 21:10 test.sh
分别测试不同用户对该文件的权限。
linux普通文件的读写执行权限说明:
可读r:表示具有读取、阅读文件内容的权限。
可写w:表示具有新增、修改文件内容的权限(如果没有r,那么vi无法编辑,强制编辑会覆盖数据,echo可以写入)
可执行x:表示具有执行文件的权限(1、文件本身要能够执行;2、普通用户同时具备r权限才能执行;3、root都能执行)。
特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身的权限无关。
win下可执行文件:*.exe、*.bat、*.com
linux下可执行文件:*.sh、*.py、*.perl等
有关文件删除说明
linux中的文件名是存在于父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除文件并不清除inode节点和block的数据。只是在这个文件的父目录里面的block中删除这个文件的名字,从而使这个文件名消失,并且无法指定这个文件的inode节点,当没有文件名指向这个inode节点的时候会同时释放inode节点和存放这个文件的数据块,并更新inodeMAP和blockMAP,让这些位置用于放置其他文件数据。
linux目录的读写执行权限说明:
可读r:表示具有浏览目录下面文件及子目录的权限,即ls dir。不能进到目录里,即无法cd dir。如果没有x权限,ls列表时可以看到所有文件名。但是会提示无权访问目录下的文件。如果ls -l列表,所有的属性会带有问号,也会提示无权访问目录下文件,但是可以看到所有文件名。
可写w:表示具有增加、删除或修改目录内文件名的权限(需要x权限配合)。
可执行x:表示进入目录的权限,例如cd dir。但是没有r无法列表,没有w无法新建和删除。
linux文件与目录权限对比说明:
r(read,读取权限):
对文件表示具有读取阅读文件内容的权限。
对目录表示具有浏览目录下面文件及子目录的权限,即ls dir。
w(write,写入权限):
对文件表示具有新增、修改文件内容的权限。
对目录表示具有新增、删除、移动目录内文件名的权限。
x(execute,执行权限):
对文件表示具有执行文件的权限。
对目录表示具有进入目录的权限。
-(无任何权限):
若对应位置权限位为字符"-",表示对应用户没有读写执行的任何权限。
chmod修改文件权限
chmod:change mode改变文件权限
chmod数字式权限表示法
chmod [数字组合] 文件名
chmod的数字方法的说明:
r:4;w:2;x:1:;-:0。
rwxr-xr-x:755
-
[root@oldboy oldboy]# chmod 531 test.sh
-
[root@oldboy oldboy]# ls -l test.sh
-
-r-x-wx--x 1 oldboy incahome 25 Dec 25 21:10 test.sh
chmod字符式权限表示法
使用权限字符设置权限的命令格式如下。
chmod [用户类型] [+|-|=] [权限字符] 文件名,用表格表示如下:
chmod |
用户类型 |
操作字符 |
权限字符 |
文件或目录 |
u(user) |
+(加入) |
r |
g(group) |
|
- |
o(others) |
-(减去) |
w |
a(all) |
=(设置) |
x |
rw-rw-r-xàrwx--xr-x:chmod u+x,g=x test.sh
-
[root@oldboy oldboy]# ls -l test.sh
-
-r-x-wx--x 1 oldboy incahome 25 Dec 25 21:10 test.sh
-
[root@oldboy oldboy]# chmod u+w,g=rw,o+r test.sh
-
[root@oldboy oldboy]# ls -l test.sh
-
-rwxrw-r-x 1 oldboy incahome 25 Dec 25 21:10 test.sh
-
[root@oldboy oldboy]# chmod u+x,g=x test.sh
-
[root@oldboy oldboy]# ls -l test.sh
-
-rwx--xr-x 1 oldboy incahome 25 Dec 25 21:10 test.sh
默认权限分配的命令umask
-
[root@oldboy oldboy]# mkdir d755
-
[root@oldboy oldboy]# touch f644
-
[root@oldboy oldboy]# ls -lrt
-
drwxr-xr-x 2 root root 4096 Dec 26 09:15 d755
-
-rw-r--r-- 1 root root 0 Dec 26 09:15 f644
umask默认值
-
[root@oldboy oldboy]# umask
-
0022
umask的默认值的控制
-
[root@oldb