能够修改权限的只有文件所有者和超级管理员。
(1)使用数值方式修改
chmod 755 file
(2)使用字符方式修改
文件权限附属在文件所有者 u,文件所属组 g 和其他用户o 上。使用字符修改权限需要指明操作谁的权限,另外还要使用"+"或"-"指定增加权限还是删除权限,也可以使用"="。
chmod u+rx file
,chmod g-x file
,chmod [a]+rx file
,chmod o=g file
chmod -R g+w,o+w directory
选项
-R:递归修改
更改文件所属组的前提:组需要已经存在。
对于链接文件,修改组的作用对象是链接源文件,而非链接文件本身。
chgrp group path/to/file
,chgrp -R group /path/to/folder
chgrp --reference=/path/to/refer\_file /path/to/file
对于链接文件而言,默认不会穿过链接修改源文件,而是修改链接文件本身。
修改文件属主:
chown user path/to/file
修改文件属主和属组:
chown user:group path/to/file
或 chown user.group path/to/file
修改文件属组:
chown :group path/to/file
或 chown .group path/to/file
引用某文件得所有者和属组得值作为新文件得所有者和属组
chown --reference=path/to/rfile path/to/file
修改目录和其中的文件所有者和属组
chown -R user path/to/folder
穿过链接文件修改源文件的所有者和属组
chown -H user.group paht/to/link
对于文件(目录),其拥有所有者(u)、所属组(g)和其他人(o),具体分为读权限、写权限和执行权限。
对于文件:
对于目录:
普通文件的默认权限是644,没有执行权限。目录的默认权限755,必须有执行权限,不然无法进入目录。链接文件的默认权限是 777。默认文件的权限设置方法可以通过`umask`值修改。
权限可以使用数字或者字符表示。
权限 | 字符表示 | 数值表示(八进制) |
---|---|---|
读权限 | r | 4 |
写权限 | w | 2 |
执行权限 | x | 1 |
无权限 | - | 0 |
如:rwxrw-r--的数值表示是764;755的字符表示是 rwxr-xr-x
umask 值用于设置用户在创建文件时的默认权限,对于root(实际是 UID < 200 )用户,系统默认的 umask 值时022;对于普通用户和系统用户,系统默认的 umask 值时002。
用户 | umask |
---|---|
root(uid < 200) | 022 |
系统和普通用户 | 002 |
umask 默认写在`/etc/profile`和`/etc/bashrc`两个环境配置文件中
相关配置选项如下:
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
使用`umask`命令可以查看当前用户的 umask 值:
使用`umask num`可以临时修改 umask 值,一般情况下不会永久修改 umask 的默认值,如果需要修改,则根据需求情况修改/etc/profile或/etc/bashrc或~/bashrc或~/.bash_profile文件。
当用户创建一个目录时,目录的默认权限是`777-umask`,如果普通用户就是777-002=775,root 用户就是777-022=755。
当用户创建一个文件时,默认情况下都不允许计算出现可执行的权限。
文件的 owner/group/others 的权限是文件的基本 ACL。
扩展 ACL 是一种特殊权限,它是文件系统上的功能,用于解决单个用户权限的问题。扩展 ACL 可以针对单一使用者、单一文件或目录里的默认权限进行设定。
扩展 ACL 是文件系统的功能,且工作在内核,默认在 ext4/xfs 上都已经默认开启。
(待更新)
chatter 用于设置文件的隐藏属性,lsattr 用户查看文件隐藏属性。
一般用法:chattr [+|-|=] i 文件或目录
参数 i:文件将被锁定,不能向其中增删改内容,也不能删除修改文件等各种动作。只有 root 才能设置。
参数 a:文件只能追加内容,不能删除数据以及打开文件后的任何编辑命令。
(1)对/etc/shadow 文件设置 i 属性,任何用户包括 root 将不能修改密码,也不能创建用户
chattr +i /etc/shadow
lsattr /etc/shadow
(2)删除隐藏属性
chattr -i /etc/shadow
suid 只针对可执行文件,即二进制文件。它的作用是对某个命令(可执行文件)授予所有者的权限,命令执行完成权限失效。一般提权为 root 权限。
例如/etc/shadow 文件所有人都没有权限(root 除外),其他用户连看都不允许。
但用户可以修改自己的登录密码,就是由 suid 控制的。
其中"s"权限就是 suid,它出现在所有者位置上,其他用户执行 passwd 命令时,会暂时拥有所有者位的 rwx 权限,也就是 root 的权限,所以能向/etc/shadows 写入数据。
suid 必须与 x 配合,如果没有 x 的配合,则该 suid 是空 suid,仍然没有执行命令的权限,空 suid权限使用大写"S
"表示。数字4代表 suid,如4755。
sgid针对二进制文件和目录。
以2代表sgid,如2755,和suid组合如6755。
sbit只对目录有效。对目录设置sbit,将使得目录里的文件只有所有者能删除,即使其他用户在此目录上有rwx权限,即使是root用户。
以1代表sbit。
suid/sgid/sbit的标志位都作用在x位,当原来的x位有x权限时,这些权限位则为s/s/t,如果没有x权限,则变为S/S/T。例如,/tmp目录的权限有个t位,使得该目录里的文件只有其所有者本身能删除。
参考链接
http://www.cnblogs.com/f-ck-need-u/p/7011971.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。