一、文件和目录变更所有者和所属组
文件和目录变更所有者和所属组的命令 | 说明 |
---|---|
groupadd testgroup | 增加一个testgroup用户组。 |
chgrp groupname file | 更改文件所属组。 |
chgrp groupname dirb | 只更改dirb目录本身的所属组,子目录及子文件并没有更改。 |
chgrp -R groupname dirb | 级联更改dirb目录、子目录及子文件的所属组。 |
chown username file | 更改文件所属主。 |
chown username dirb | 只更改dirb目录本身的所属主,子目录及子文件并没有更改。 |
chown -R username dirb | 级联更改dirb目录、子目录及子文件的所属主。 |
chown -R username:groupname dirb | 级联更改子目录及子文件所属主、所属组。 |
二、文件和目录变更访问权限
文件和目录变更访问权限的命令 | 说明 |
---|---|
chmod 644 file | 更改文件的权限为-rw-r–r--,文件的默认权限644。 |
chmod 755 dict | 更改目录的权限为-rwxr-xr-x,目录的默认权限755。 |
chmod -R 641 dict | 级联更改dirb目录、子目录及子文件的权限为-rw-r----x。 |
chmod u=rwx,go=rx file | 更改文件的权限为-rwxr-xr-x,‘u’、‘g’、'o’表示user、group、others,'a’代表all(即全部)。 |
chmod u+w ,g-x file | 给file的user增加写入权限、group移除执行权限。 |
umask | 查看umask的预设值。 |
umask xxx | 自定义umask的预设值,'xxx’为3个数字。 |
三、文件的特殊属性
命令 | 说明 |
---|---|
chattr +A test | 表示增加属性后,文件(目录)的atime将不可被修改,’+’、’-’、’='表示增加、减掉、设定。 |
chattr +s test | 表示增加属性后,数据同步写入磁盘中。 |
chattr +a test | 表示增加属性后,文件只能追加内容不能删除文件,目录只能在里面新创建目录或文件不能删除目录,非root用户不能设定该属性。 |
chattr +c test | 表示增加属性后,自动压缩该文件(目录),读取时会自动解压。 |
chattr +i test | 表示增加属性后,文件(目录)不能被删除、重命名、设定链接、写入以及新增数据。 |
chatter -R +i dict | 表示增加属性后,目录及其子目录、子文件不能被删除、重命名、设定链接、写入以及新增数据。 |
lsattr -aR test | 读取文件或目录的特殊属性,-a表示所有文件,隐藏文件也一同列出,-R表示子目录的数据也一同列出。 |
四、文件和目录的特殊权限
1、set uid,只针对与二进制可执行文件,本权限仅在执行该程序的过程中有效,执行者将具有该程序所有者的权限。
设定方式:chmod u+s file 或 chmod 4xxx file
2、set gid,对文件:只针对二进制可执行文件,当文件上有sgid时任何用户执行此文件产成的进程都属于文件的所属组; 对目录:当目录上有sgid权限时任何用户在此目录中建立的文件都属于目录的所属组。
设定方式: chmod g+s file /dir 或 chnod 2xxx file/dir
3、sticky,只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除,不会被其他用户删除。
设定方式:chmod o+t dir 或 chmod 1xxx dir
4、特殊权限数字意义。
0、1(–t)、2(-s-)、3(-st)、4(s–)、5(s-t)、6(ss-)、7(sst)
0:没有高级权限
1(–t):sticky
2(-s-):gid
4(s–):uid