linux中的 umask 函数主要用于:在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限。
文件的访问允许权限共有9种,分别是:rwxrwxrwx
它们分别代表:用户读 用户写 用户执行 组读 组写 组执行 其它读 其它写 其它执行
屏蔽的规则如下:
1. 不管屏蔽码是多少,
·新创建的文件默认不具有可执行允可权限。
·新创建的目录默认具有可执行允可权限。
2. 屏蔽码的格式为八进制格式,共三个八进制数。可设置如下 002 或 022 或 ......
3. 其中的每一个八进制数由三位表示,分别是 读 写 执行
4 2 1
例如 002 用二进制表示为: 0 0 0 -- 0 0 0 -- 0 1 0
4 2 1 4 2 1 4 2 1
4. 产生的文件为 umask 值求反后的允可权限,即
对于文件: ~002 = 664(新创建文件所应具有的访问权限)
对于目录: ~002 = 775(新创建目录所应具有的访问权限)
㈡ 3-6 Linux中的默认权限 - umask
umask:查看当前用户的 umask 权限,root 和 普通用户的默认权限会有所不同。
-S: rwx 权限显示方式 (不加 -S 选项则用数字显示)
例:0022 --- 表示减去的权限
第一个 0 表示特殊权限
从第 2 位开始 022 代表 rwxr-xr-x
r=4 w=2 x=1
(0 代表拥有者的 rwx 权限全齐,2 代表所属组没有了 w 权限,第3个 2 代表其他人没有
了 w 权限)
默认创建的文件和目录,系统默认文件没有 x 权限。
临时修改 umask 值可以通过 umask 0000 格式进行,永久修改需要修改 /etc.bashrc (常规状态下不建议)
1、umask 对比root 用户 和 普通用户的默认权限
root 用户默认umask 0022,权限是 rwxr-xr-x
普通用户默认umask 0002,权限是 rwxrwxr-x
2、root 和 user1 分别新建目录,验证默认权限是否为 rwxr-xr-x 和 rwxrwxr-x。
root 用户默认权限0022,确定新建目录是 rwxr-xr-x
普通用户默认权限0002,确定新建目录是 rwxrwxr-x
另外,也可以用 umask -S 选项来列出数字对应的 rwx 。
3、前面提到文件会减去所有 x 权限。root 和 user1 分别新建文件,验
证默认权限是否为 rw-r--r-- 和 rw-rw-r--。
root 用户创建一个 root.txt 文件,查看 umask 是 0022,权限是 u=rwx,g=rx,o=rx。由于,创建的文件都会减去全部 x 权限。所以,文件的默认权限是 rw-r--r-- 。
普通用户创建一个 user1.txt 文件,查看 umask 是 0002,权限是 u=rwx,g=rwx,o=rx。由于,创建的文件都会减去全部 x 权限。所以,文件的默认权限是 rw-rw-r-- 。
4、umask 参数:修改默认权限。如,umask 0000 代表 默认全权限(相当于 777)。创建目录的默认权限就是rwxrwxrwx。而文件系统会默认减去 x 权限,所以文件的默认权限是 rw-rw-rw-。(建议不要随便更改默认权限)
㈢ 关于linux的umask命令
umask分配权限是对某个用户或用户组从权限中减去某个权限,这个权限指的是用户在创建新文件衫兄闷是对新建文件的权限在Linux中权限可以用数字来表示r=4,w=2,x=1,其中r表示读权限、w表示写权限、x表示执行权限,一个用户或用户组的权限是通过这些数字相加来表示的,比如只有读写权限,则权限数字为4 + 2 = 6所以,一个用户的最大权限是4 + 2 + 1 = 7,如果想从用户权限中减去某个权限,就用umask命令比如umask 1 删除文件创建者对新建文件的执行权限如果是删除读写权限,则umask后面的数字应该是4 + 2 = 6通常umask后或弯面的权限数字参数有3个权限位,每个权限位分别表示文件创建者、文件创建者所在用户组和其它用户比如umask 236 表示删除文件创建者对新建文件的写权限、删除文件创建者所在用户组对新建文件的写和执行权限、删除其它用户对新尘明建文件的读和写权限这是Linux的umask命令的含义但是对于php里面的umask我就不清楚了,因为我对php也不熟悉
㈣ LINUX中 我设置了umask 001 那么创建的默认文件和目录的权限是怎么样的呢
普通文件默认是644 也就是:
-rw-r--r-- 1 root root 0 May15 20:04 test
自已有读写(rw),同组人员有读(r),其它有读(r)
默认权笑禅唤限可通过umask 修改
默认umask 为022
文件:666 - 022 = 644
目录:777 - 022 = 755
如果你下碰凯了umask 011 的指令,则生成袭悉的文件目录权限就变成:
文件:666 - 011 = 655
目录:777 - 011 = 766
㈤ Linux里面umask为002表示什么意思
这个是常见的一种权限赋予参数回拿世显。
Umask 为022表示默认创建新文件权限为755,也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写) 。
Umask 为0027表示默认创建新文件权限为750,也就是rxwr-x---(所有者全部权限,属组读写清敬,其它人无答敏慎)。
umask 002
㈥ Linux基础知识之--umask掩码
• 每个用户建立文件时,此文件都会有默认权限
• 默认权限的值由环境中的umask值与文件与目录的基数来确定
• 用户可以自主改动umask值,并在改动后马上生效,系统重启后会恢复到默认值
• 一般用户(非系统用户)的默认umask值为002,系统用户的默认umask值为 022(root用户为系统用户)
• 默认文件权限666,默认文件夹权限777
cat /etc/login.defs (这里的只是针对家目录/home的UMASK)
UMASK:077 ,是针对文件夹(用户家目录)来说的。也就是文件夹权限777-077=700,拦山即在家目录里/home建的文件夹的权限都是drwx------
• 可以通过 umask 查看umask,通过 umask umask值 来修改umask,例如 umask 002 。但这种只能临时修改umask值,机器重启之后会恢复到默认值。想永久修改哪衡察umask值,需要修改/etc/profile里的umask值
•李茄 在系统的默认umask前提下,系统用户(如root用户)查看umask的值为022,普通用户查看umask的值为002
实验:
㈦ Linux下的umask、特殊权限与ACL权限
在了解到Linux系统上的文件目录权限,有时候你会发现为什么刚创建的文件是 -rw-r--r-- 这个权限,目录是 drwxr-xr-x 权限,有些是 -rwsr-xr-x ,又有些是 drwsrws--T ?这些则与umask、特殊权限有关。
什么是umask?umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、
或用户家目录下的.bash_profile或.profile中设置umask值。
默认的umask是0022,0022四个数字代表是赋值初始化准备丢弃的权限。(相对应文件来说,x权限就算没说明出来丢弃一样必须默认丢弃)
第一个0代表suid 丢弃的权限;
第二个0代表本文件/目录拥有者什么权限都没丢弃;
第三个2代表本文件/目录的用户组丢弃了w权限;
第四个2代表本文件/目录的文件/目录的用户组丢弃了w权限。
一般我们会这样表示:
umask +default permission(默认权限) =777(目录)/666(文件)
但存在特殊情况如果把umask设为135呢?
要了解特殊权限需对安全上下文有一个概念:
前提:进程有属主和属组;文件有属主和属组
(1) 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
(2) 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
(3) 进程访问文件时的权限,取决于进程的发起者
(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
(c) 应用文件“其它”权限
1.SUID 权限仅对二进制程序(binary program)有效;
2.执行者对于该程序需要具有x 的可执行权限;
3.本权限仅在执行该程序的过程中有效(run-time);
4.执行者将具有该程序拥有者(owner) 的权限。
5.SUID设置在目录上无意义
权限设定:
chmod u+s FILE...
chmod u-s FILE...
s 标志在文件拥有者的x 项目为SUID,那s 在群组的x 时则称为Set GID
[root@centos7 ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
与SUID 不同的是,SGID 可以针对文件或目录来设定!如果是对文件来说, SGID 有如下的功能:
-1.SGID 对二进制程序有用;
-2.程序执行者对于该程序来说,需具备x 的权限;
-3.执行者在执行的过程中将会获得该程序群组的支持!
[root@centos7 ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 40496 Jun 10 2014 /usr/bin/locate
-rw-r-----. 1 root slocate 2349055 Jun 15 03:44 /var/lib/mlocate/mlocate.db
与SUID 非常的类似,使用xiaoming 这个账号去执行locate 时,那xiaoming将会取得slocate 群组的支持, 因此就能够去读取 mlocate.db 。
SGID 也能够用在目录上,这也是非常常见的一种用途
目录设定了SGID 的权限后,他将具有如下的功能:
-1. 用户若对于此目录具有r 与x 的权限时,该用户能够进入此目录;
-2.用户在此目录下的有效群组(effective group)将会变成该目录的群组;
-3.用途:若用户在此目录下具有w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。
这个 Sticky Bit, SBIT 目前只针对目录有效,sticky 设置在文件上无意义。SBIT 对于目录的作用是:
-1.当用户对于此目录具有w, x 权限,亦即具有写入的权限时;
-2.当用户在该目录下建立文件或目录时,仅有自己与root 才有权力删除该文件
SUID/SGID/SBIT 权限设定
-rwSrwSrwT 1 root root 0 Jun 16 02:53 test
设定权限成为 -rws--x--x 的模样:
[root@centos7 tmp]# chmod u=rwxs,go=x test; ls -l test
-rws--x--x 1 root root 0 Jun 16 02:53 test
承上,加上 SGID 与 SBIT 在上述的文件权限中!
[root@centos7 tmp]# chmod g+s,o+t test; ls -l test
-rws--s--t 1 root root 0 Jun 16 02:53 test
1】ACL 是Access Control List 的缩写,主要的目的是在提供传统的owner,group,others 的read,write,execute 权限之外的细部权限设定。ACL 可以针对单一使用者,单一文件或目录来进行
ACL 主要可以针以下来控制权限呢:
1.使用者 (user):可以针对使用者来设定权限;
2.群组 (group):针对群组为对象来设定其权限;
3.默认属性(mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;
及1.ACL:Access Control List,实现灵活的权限管理;2.CentOS7默认创建的xfs和ext4文件系统具有ACL功能;3.CentOS7之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
4.ACL生效顺序:所有者,自定义用户,自定义组,其他人
为多用户或者组的文件和目录赋予访问权限rwx
2】ACL 的设定技巧: getfacl, setfacl
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除‘所有的’ ACL 设定参数;
-k :移除‘预设的’ ACL 参数,
-R :递归设定 acl ,亦即包括次目录都会被设定起来;
-d :设定‘预设 acl 参数’的意思!只对目录有效,在该目录新建的数据会引用此默认值
例:[root@centos7 ~]# touch acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r--r--. 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u:xiaoming:rx acl_test1
[root@centos7 ~]# ll acl_test1
-rw-r-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
[root@centos7 ~]# setfacl -m u::rwx acl_test1
[root@centos7 ~]# ll acl_test1
-rwxr-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
设定值中的 u 后面无使用者列表,代表设定该文件拥有者
2.getfacl 指令用法余setfacl一样
例:[root@centos7 ~]# getfacl acl_test1
file: acl_test1 <==说明档名而已!
owner: root <==说明此文件的拥有者,亦即 ls -l 看到的第三使用者字段
group: root <==此文件的所属群组,亦即 ls -l 看到的第四群组字段
user::rwx <==使用者列表栏是空的,代表文件拥有者的权限
user:xiaoming:r-x <==针对xiaoming 的权限设定为 rx ,与拥有者并不同!
group::r-- <==针对文件群组的权限设定仅有 r
mask::r-x <==此文件预设的有效权限 (mask)
other::r--
3】特定的单一群组的权限设定:‘g:群组名:权限’
4】主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
清除dir目录的ACL权限
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
㈧ Linux 中umask 用法 怎样设置初始值
直接知昌输入搭岩扒umask是查询你目前的预枣做设值
umask
0033
就是改变你的预设值,想要多少直接加在后面就好了
㈨ LINUX系统中的umask是什么意思
在Linux系统中,umask是一种文件模式的掩码禅则茄,它决定了在创建新文件或目录时所设置的默认权限。
umask值是一个三位数,它用来屏蔽掉文件权限中的一些位,使其不被设置。例如,umask值为022时,将屏蔽掉文件权贺察限中的组写和其他人写的位。因此,当创建新文件或目录时,默认权限会是644或755,而不是666或777。
umask值通常在shell中设置,可以使用umask命令来查看或修改它。例如,如果要将umask值设置为022,可以在shell中执行以下命令:
umask 022
这将使得在创建新文件或目录时,默认权限不包括组写和其他人写的权盯并限。
㈩ linux umask 使用讲解
umask 用来设置当前用户创建文件或者目录的默认权限。它与chmod的表示正好相反。
文件在创建的时候不允许赋予执行权限,必须使用chmod进行添加,而目录创建的时候允许赋予执行权限。
当前的umask值是0002,忽略第一位0,那就是002,因为与chmod正好相反,所以取反,目录的默认权限兄罩是775,文件创建的时候不允许设置执行权限,所以当目录拥有执行权限的时候,文件的权限中要去掉这个执行权限,也就是文件的默认权限是664。
当然如果目录并没有执行权限,那么文件的权限就没有必要去掉这个执行权限。例如umask的值是113,那么目录的默认权限是664,文件的默认权限也是664.
看下图,你会理解的更清楚明白模岩一些:旦尘御
https://blog.csdn.net/yangzhengquan19/article/details/83055686#commentBox