[问题]如何让新建文件的group和other的访问权限为read-only??
发表于 : 2006-12-07 18:56
HI 各位。
默认建立的文件,other的访问权限为none.
所以我建立PHP文件后,还要手动改属性,才可以在浏览器测试。
有什么好办法吗?? 谢谢。
默认建立的文件,other的访问权限为none.
所以我建立PHP文件后,还要手动改属性,才可以在浏览器测试。
有什么好办法吗?? 谢谢。
umask命令用来设置限制新建文件权限的掩码。其一般格式是:umask mode
当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask来改变默认值,新的权限将会把旧的覆盖掉。
利用umask命令可以指定哪些权限将在新文件的默认权限中被删除。例如,可以使用下面的命令创建掩码,取消组用户的写权限以及其他用户的读、写和执行权限: umask u=,g=w,o=rwx
执行该命令以后,下面所建新文件的文件主权限未作任何改变,而组用户没有写权限,其它用户的所有权限都被取消。
应注意,在umask命令和chmod命令中,操作符=的作用恰恰相反。在chmod中,利用它来设置指定的权限,而其余权限都被取消;但是在umask命令中,它将在原有权限的基础上把指定的权限删除。
不能直接利用umask创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了下面命令:
umask u=,g=w,o=rwx
虽然在命令行中,文件主和组用户的执行权限没有被删去,但默认的文件权限还是640(即rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录,或者通过编译程序创建一个可执行文件,将不受此限制。在这种情况下,文件的执行权限会被设置。
此外,也可以使用八进制数值来设置mode。在umask中所指定的权限表示要删除的权限,所以,如果一个文件原来的初始权限是777,那么执行命令umask 022以后, 那么该文件的权限将变为 755;如果该文件原来的初始权限是666, 那么该文件的权限将变为644。
使用下面的命令可以检查新创建文件的默认权限:
umask -s
上面命令中,选项-s表示以字符形式显示当前的掩码。
如果直接输入umask命令,不带任何参数,那么将以八进制形式显示当前的掩码。系统默认的掩码是0022。
既然touch的有read屬性,問題應該出在你創建文件所用的程序yangjian05 写了:用touch新建的文件就有read属性。
听说改umask就行,改哪个文件的umask ??????????????????