一、属主与属组设置
属主:属主是文件或目录的所有者,可以是一个用户账号或一个进程。
属组:属组是文件或目录的所属组,可以是一个用户组或一个进程组。
1.chown:修改文件的属主与属组
语法:
chown [–R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
[root@www ~] cd ~ [root@www ~]# chown bin install.log [root@www ~]# ls -l -rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log [root@www ~]# ls -l -rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
2.chgrp:更改文件属组
语法:
chgrp [-R] 属组名 文件名
参数选项
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
一般来说 chown命令 只有root用户才可以使用 普通用户没有权限修改别人的文件所有者 也没有权限将自己文件的所有者修改为别人。
二、特殊权限
1.设置位s(set UID)
/usr/bin/passwd 在执行时 需要修改/etc/passwd /etc/shadow 等文件,这些文件除了root 其他用户都只有读权限,为了让普通用户修改密码 临时让他们拥有root权限,找个s权限 就是帮我们来完成这个任务的,s权限 只能应用在二进制的可执行文件上。
注:
which 查看二进制可执行文件所在的位置
用法:
#去除s位
chmod u-s /usr/bin/passwd
或
chmod 0755 /usr/bin/passwd
#添加s位
chmod u+s /usr/bin/passwd
或
chmod 4755 /usr/bin/passwd
2.粘滞位
在目录创建了此权限,除了root用户,其他用户只能对自己的文件进行删除、移动操作。仅有自己和 root 才有权力删除。
chmod o+t /opt #其他用户有执行权小写t,没有执行权,大写T
或者
chmod 1755 /tmp # 数字1 表示特殊权限位
三、ACL访问控制
ACL是Access Control List的缩写,表示访问控制列表。在Linux和其他一些操作系统中,ACL是一种用于控制文件和目录访问权限的机制,它允许用户对不同的文件和目录设置不同的权限,而不是仅仅使用传统的Unix权限模型。
基本命令
1.getfacl 查看文件的acl策略及权限 getfacl 文件名
2.setfacl 给文件针对某个用户 设置acl权限
-m 修改acl策略
-x 去掉某个用户或者某个组的权限
-b 删除所有acl策略
-R 递归 通常用于目录中
mask 定义除other以及所有者外最大的权限
给单个用户单独增加权限 setfacl -m u:user:rwx file
给单个组单独增加权限 setfacl -m g:groupname:rwx file
去掉某个用户的权限:setfacl -x u:user file
去掉某个组的权限:setfacl -x g:groupname file
删除所有acl策略:setfacl -b file
四、umask (进程掩码)
1.什么是umask?
在UNIX和类UNIX系统中,umask是一种掩码,用于在创建新文件或目录时设置默认权限。umask的值指定了掩码中要屏蔽的权限位,因此系统会自动将这些权限从新文件或目录的权限中去掉。
umask的默认值通常是0022,它屏蔽了其他用户(组和其他用户)的写权限,因此新文件和目录的默认权限是644和755。这意味着新文件的所有者可以读写文件,但其他用户只能读取文件。新目录的所有者可以读、写和执行目录,但其他用户只能读取目录。那么当我们创建一个目录时,正常情况下目录的权限应该是777,但是umask表示要减去的值,所以新目录文件的权限应该是777-022=755。至于文件的权限也依次类推:666-022=644
可以使用umask
命令来设置umask的值。umask值可以是三个八进制数字的形式,每个数字代表一个权限位,分别对应文件所有者、文件所属组和其他用户的权限。例如,umask值为022表示屏蔽其他用户写入权限,而umask值为027则表示屏蔽其他用户写入和执行权限。
注:0022中第一位0代表特殊权限位,可以不设置。
怎样查看umask
umask
当umask 011 创建文件默认权限应该是 655 实际运行时会变成666
666 —> rw-rw-rw-
011 —> -----x--x
相减得
666 —> rw-rw-rw-
这个特殊情况只出现于文件
2.修改umask值
临时修改:umask umask值
例如:umask 044
永久修改